Sasasasasasami!

This commit is contained in:
Spmario233 2020-05-16 13:03:13 +08:00 committed by GitHub
parent ab47fbb72c
commit d5eb51e107
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
32 changed files with 888 additions and 84 deletions

BIN
audio/die/re_caozhi.mp3 Normal file

Binary file not shown.

BIN
audio/die/wangshuang.mp3 Normal file

Binary file not shown.

BIN
audio/skill/chengzhang1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/chengzhang2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/rejiushi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/rejiushi2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/reluoying1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/reluoying2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spzhuilie1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spzhuilie2.mp3 Normal file

Binary file not shown.

View File

@ -58,8 +58,9 @@ game.import('card',function(lib,game,ui,get,ai,_status){
return target==player;
},
content:function(){
if(typeof event.baseDamage!='number') event.baseDamage=1;
if(target.isDying()||event.getParent(2).type=='dying'){
target.recover();
target.recover(event.baseDamage);
if(_status.currentPhase==target){
target.getStat().card.jiu--;
}
@ -70,7 +71,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
card=cards[0];
}
if(!target.storage.jiu) target.storage.jiu=0;
target.storage.jiu++;
target.storage.jiu+=event.baseDamage;
game.broadcastAll(function(target,card,gain2){
target.addSkill('jiu');
if(!target.node.jiu&&lib.config.jiu_effect){

View File

@ -81,7 +81,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
var equips=[];
for(var i=0;i<event.dialog.buttons.length;i++){
var card=event.dialog.buttons[i].link;
if(!player.isDisabled(get.subtype(card))) equips.push(card);
if(!target.isDisabled(get.subtype(card))) equips.push(card);
}
if(equips.length>1){
var next=target.chooseButton(true,function(button){

View File

@ -7,6 +7,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
character:{
ns_zhangwei:['female','wei',3,['nsqiyue','nsxuezhu']],
ns_chendao:['male','shu',4,['nsjianglie']],
yj_caoang:['male','wei',4,['yjxuepin']],
diy_wenyang:['male','wei','4/6',['lvli','choujue']],
key_lucia:['female','key','1/2',['lucia_duqu','lucia_zhenren']],
key_kyousuke:['male','key',4,['nk_shekong','key_huanjie']],
@ -30,6 +31,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_harukakanata:['female','key',3,['haruka_shuangche']],
key_inari:['female','key',2,['inari_baiwei','inari_huhun']],
key_shiina:['female','key',3,['shiina_qingshen','shiina_feiyan']],
key_sunohara:['unknown','key',3,['sunohara_chengshuang','sunohara_tiaoyin','sunohara_jianren']],
key_rin:['female','key',3,['rin_baoqiu']],
key_sasami:['female','key',3,['sasami_miaobian']],
// diy_caocao:['male','wei',4,['xicai','diyjianxiong','hujia']],
// diy_hanlong:['male','wei',4,['siji','ciqiu']],
diy_feishi:['male','shu',3,['shuaiyan','moshou']],
@ -95,6 +99,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ns_xinnanhua:['male','qun',3,['ns_xiandao','ns_xiuzheng','ns_chuanshu'],[]],
},
characterFilter:{
key_sunohara:function(mode){
return mode!='guozhan';
},
ns_duangui:function(mode){
return mode=='identity'&&_status.mode=='normal';
},
@ -104,15 +111,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
characterSort:{
diy:{
diy_tieba:["diy_wenyang","ns_zuoci","ns_lvzhi","ns_wangyun","ns_nanhua","ns_nanhua_left","ns_nanhua_right","ns_huamulan","ns_huangzu","ns_jinke","ns_yanliang","ns_wenchou","ns_caocao","ns_caocaosp","ns_zhugeliang","ns_wangyue","ns_yuji","ns_xinxianying","ns_guanlu","ns_simazhao","ns_sunjian","ns_duangui","ns_zhangbao","ns_masu","ns_zhangxiu","ns_lvmeng","ns_shenpei","ns_yujisp","ns_yangyi","ns_liuzhang","ns_xinnanhua","ns_zhangwei","ns_chendao"],
diy_tieba:["diy_wenyang","ns_zuoci","ns_lvzhi","ns_wangyun","ns_nanhua","ns_nanhua_left","ns_nanhua_right","ns_huamulan","ns_huangzu","ns_jinke","ns_yanliang","ns_wenchou","ns_caocao","ns_caocaosp","ns_zhugeliang","ns_wangyue","ns_yuji","ns_xinxianying","ns_guanlu","ns_simazhao","ns_sunjian","ns_duangui","ns_zhangbao","ns_masu","ns_zhangxiu","ns_lvmeng","ns_shenpei","ns_yujisp","ns_yangyi","ns_liuzhang","ns_xinnanhua","ns_zhangwei"],
diy_default:["diy_feishi","diy_liuyan","diy_yuji","diy_caiwenji","diy_lukang","diy_zhenji","diy_liufu","diy_xizhenxihong","diy_liuzan","diy_zaozhirenjun","diy_yangyi","diy_tianyu"],
diy_key:["key_lucia","key_kyousuke","key_yuri","key_haruko","key_kagari","key_umi","key_rei","key_komari","key_yukine","key_yusa","key_misa","key_masato","key_iwasawa","key_kengo","key_yoshino","key_yui","key_tsumugi","key_saya","key_harukakanata","key_inari","key_shiina"],
diy_key:["key_lucia","key_kyousuke","key_yuri","key_haruko","key_kagari","key_umi","key_rei","key_komari","key_yukine","key_yusa","key_misa","key_masato","key_iwasawa","key_kengo","key_yoshino","key_yui","key_tsumugi","key_saya","key_harukakanata","key_inari","key_shiina","key_sunohara","key_rin","key_sasami"],
diy_yongjian:["ns_chendao","yj_caoang"],
},
},
characterIntro:{
ns_zhangwei:'血骑教习·张葳,三国杀集换式卡牌游戏《阵面对决》中的帝畿系列卡牌。游卡桌游官方原创的三国时期女性角色。',
diy_feishi:'字公举,生卒年不详,益州犍为郡南安县(今四川省乐山市)人。刘璋占据益州时,以费诗为绵竹县县令。刘备进攻刘璋夺取益州,费诗举城而降,后受拜督军从事,转任牂牁郡太守,再为州前部司马。',
//diy_liuyan:'字元海,新兴(今山西忻州北)人,匈奴族,匈奴首领冒顿单于之后[1] 南匈奴单于于夫罗之孙左贤王刘豹之子母呼延氏十六国时期前赵政权开国皇帝304年310年在位。',
//diy_liuyan:'字元海,新兴(今山西忻州北)人,匈奴族,匈奴首领冒顿单于之后南匈奴单于于夫罗之孙左贤王刘豹之子母呼延氏十六国时期前赵政权开国皇帝304年310年在位。',
diy_lukang:'字幼节,吴郡吴县(今江苏苏州)人。三国时期吴国名将,丞相陆逊次子。',
diy_liufu:'字元颖,沛国相县(今安徽濉溪县西北)人。东汉末年名守。在汉末避难于淮南,说服袁术将戚寄和秦翊率部投奔曹操,曹操大悦,使司徒辟其为掾属。',
diy_xizhenxihong:'习珍,襄阳人。三国时蜀汉将领。先主刘备时曾任零陵北部都尉,加裨将军。建安二十四年,关羽率荆州大军攻打樊城,唯有习珍据城不降。被困月余,直到箭尽粮绝,拔剑自刎而死。习宏,生卒年不详,习珍之弟。曾在东吴入侵蜀汉时建议哥哥习珍伪降,约樊胄举兵。习珍死后,弟弟习宏落在东吴,有问必不答,终身不为孙权发一言。',
@ -121,6 +129,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
diy_tianyu:'字国让,渔阳雍奴(今天津市武清区东北)人。三国时期曹魏将领。初从刘备,因母亲年老回乡,后跟随公孙瓒,公孙瓒败亡,劝说鲜于辅加入曹操。曹操攻略河北时,田豫正式得到曹操任用,历任颖阴、郎陵令、弋阳太守等。',
},
characterTitle:{
key_sasami:'#bLittle Busters!',
key_rin:'#bLittle Busters!',
key_shiina:'#rAngel Beats!',
key_inari:'#bSummer Pockets',
key_saya:'#bLittle Busters!',
@ -142,7 +152,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_kyousuke:'#bLittle Busters!',
key_yuri:'#rAngel Beats!',
key_haruko:'#bAIR',
ns_chendao:'#g三国杀·用间篇',
diy_wenyang:'#g最粗的梦想XD',
ns_zuoci:'#bskystarwuwei',
ns_lvzhi:'#bskystarwuwei',
@ -178,6 +187,274 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yuji:['zuoci']
},
skill:{
sasami_miaobian:{
derivation:['sasami_gongqing','sasami_funan','sasami_baoqiu'],
init2:function(player){
if(player.hp<=3) player.addSkill('sasami_gongqing');
if(player.hp<=2) player.addSkill('sasami_funan');
if(player.hp<=1) player.addSkill('sasami_baoqiu');
},
trigger:{player:'changeHp'},
firstDo:true,
silent:true,
content:function(){
lib.skill.sasami_miaobian.init2(player);
},
},
sasami_baoqiu:{
line:{color:[173,149,206]},
inherit:'rin_baoqiu'
},
"sasami_gongqing":{
audio:true,
trigger:{
player:["damageBegin3","damageBegin4"],
},
forced:true,
filter:function (event,player,name){
if(!event.source) return false;
var range=event.source.getAttackRange();
if(name=='damageBegin3') return range>3;
return event.num>1&&range<3;
},
content:function (){
trigger.num=event.triggername=='damageBegin4'?1:trigger.num+1;
},
ai:{
filterDamage:true,
skillTagFilter:function(player,tag,arg){
if(arg&&arg.player){
if(arg.player.hasSkillTag('jueqing',false,player)) return false;
if(arg.player.getAttackRange()<3) return true;
}
return false;
}
},
},
sasami_funan:{
audio:2,
trigger:{global:['respond','useCard']},
line:{color:[173,149,206]},
filter:function(event,player){
if(!event.respondTo) return false;
if(event.player==player) return false;
if(player!=event.respondTo[0]) return false;
if(!player.hasSkill('sasami_funan_jiexun')){
var cards=[]
if(get.itemtype(event.respondTo[1])=='card') cards.push(event.respondTo[1]);
else if(event.respondTo[1].cards) cards.addArray(event.respondTo[1].cards);
return cards.filterInD('od').length>0;
}
else return event.cards.filterInD('od').length>0;
},
logTarget:'player',
check:function(event,player){
if(get.attitude(player,event.player)>=0) return true;
if(player.hasSkill('sasami_funan_jiexun')) return true;
if(event.cards.length>1) return true;
return get.value(event.cards[0])>get.value(event.respondTo[1]);
},
content:function(){
'step 0'
if(!player.hasSkill('sasami_funan_jiexun')){
var cards=[]
if(get.itemtype(trigger.respondTo[1])=='card') cards.push(trigger.respondTo[1]);
else if(trigger.respondTo[1].cards) cards.addArray(trigger.respondTo[1].cards);
cards=cards.filterInD('od');
trigger.player.gain(cards,'gain2','log');
trigger.player.addTempSkill('sasami_funan_use');
if(!trigger.player.storage.sasami_funan_use){
trigger.player.storage.sasami_funan_use=[];
}
trigger.player.storage.sasami_funan_use.addArray(cards);
}
'step 1'
var cards=trigger.cards.filterInD('od');
player.gain(cards,'log','gain2');
},
subSkill:{
jiexun:{
charlotte:true,
mark:true,
intro:{
content:'你发动“复难”时,无须令其他角色获得你使用的牌'
},
},
use:{
onremove:true,
mod:{
cardEnabled2:function(card,player){
if(player.storage.sasami_funan_use&&player.storage.sasami_funan_use.contains(card)){
return false;
}
}
}
}
}
},
rin_baoqiu:{
mod:{
attackFrom:function(rin,riki,ball){
return ball-2;
},
},
trigger:{player:'useCardToPlayered'},
forced:true,
logTarget:'target',
filter:function(event,player){
return event.card.name=='sha';
},
line:{color:[194,117,92]},
content:function(){
'step 0'
player.judge(function(){return 0});
'step 1'
var target=trigger.target;
var map=trigger.customArgs;
var id=target.playerid;
if(!map[id]) map[id]={};
if(result.color=='red'){
if(!map[id].extraDamage) map[id].extraDamage=0;
map[id].extraDamage++;
}
if(result.color=='black'){
trigger.directHit.add(target);
}
if(result.suit=='spade'||result.suit=='heart'){
var evt=event.getParent();
if(evt.addCount!==false){
evt.addCount=false;
player.getStat().card.sha--;
}
player.draw();
}
if(result.suit=='diamond'||result.suit=='club'){
target.addTempSkill('fengyin');
if(target.countDiscardableCards(player,'he')>0) player.discardPlayerCard(target,'he',true);
}
},
},
sunohara_chengshuang:{
trigger:{
global:'gameDrawAfter',
player:'enterGame',
},
group:'sunohara_chengshuang_phase',
forced:true,
content:function(){
'step 0'
var evt=event.getParent('phase');
if(evt&&evt.player==player) evt.sunohara_chengshuang=true;
player.chooseControl('male','female').set('prompt','成双:请选择自己的性别');
'step 1'
var sex=result.control;
game.broadcastAll(function(player,sex){
player.sex=sex;
if(player.marks&&player.marks.sunohara_chengshuang) player.marks.sunohara_chengshuang.firstChild.innerHTML=sex=='male'?'♂':'♀';
},player,sex);
game.log(player,'将性别变更为','#g'+get.translation(sex));
},
mark:true,
intro:{
content:function(storage,player){
if(player.sex=='unknown') return '当前性别未确定';
return '当前性别:'+get.translation(player.sex);
},
},
},
sunohara_chengshuang_phase:{
trigger:{
player:'phaseBegin',
},
filter:function(event,player){
if(event.sunohara_chengshuang) return false;
return game.phaseNumber>1;
},
prompt2:function(event,player){
if(player.sex=='unknown') return '选择自己的性别';
return '将自己的性别变更为'+(player.sex=='male'?'女性':'男性');
},
content:function(){
'step 0'
if(player.sex=='unknown') player.chooseControl('male','female').set('prompt','成双:请选择自己的性别');
else event._result={control:player.sex=='male'?'female':'male'};
'step 1'
var sex=result.control;
game.broadcastAll(function(player,sex){
player.sex=sex;
if(player.marks&&player.marks.sunohara_chengshuang) player.marks.sunohara_chengshuang.firstChild.innerHTML=sex=='male'?'♂':'♀';
},player,sex);
game.log(player,'将性别变更为','#g'+get.translation(sex));
},
},
sunohara_tiaoyin:{
enable:'phaseUse',
usable:1,
filterTarget:function(card,player,target){
return target!=player&&target.countGainableCards(player,'hej')>0;
},
selectCard:[1,4],
filterCard:function(card){
for(var i=0;i<ui.selected.cards.length;i++){
if(get.suit(ui.selected.cards[i])==get.suit(card)) return false;
}
return true;
},
complexSelect:true,
complexCard:true,
complexTarget:true,
selectTarget:function(){
return [ui.selected.cards.length,ui.selected.cards.length];
},
line:{color:[239,204,96]},
content:function(){
if(target.countGainableCards(player,'hej')>0) player.gainPlayerCard(target,'hej','visible');
},
contentAfter:function(){
var bool=false;
for(var i=0;i<targets.length;i++){
if(targets[i].sex!=player.sex){
bool=true;break;
};
}
if(bool) player.loseHp();
},
ai:{
order:6,
result:{
target:function(player,target){
return lib.card.shunshou.ai.result.target.apply(this,arguments);
},
player:function(player,target){
if(target.sex==player.sex) return 0;
for(var i=0;i<ui.selected.targets.length;i++){
if(ui.selected.targets[i].sex!=player.sex) return 0;
}
return (get.attitude(player,target)<0&&target.countCards('h','tao')>0)?1:-2;
},
}
},
},
sunohara_jianren:{
trigger:{player:'damageEnd'},
direct:true,
content:function(){
'step 0'
event.num=(!trigger.source||trigger.source.isDead()||trigger.source.sex!=player.sex)?3:1;
player.chooseTarget(get.prompt('sunohara_jianren'),'令一名角色摸'+get.cnNumber(event.num)+'张牌。').set('ai',function(target){
var att=get.attitude(player,target);
if(att<=0) return 0;
if(target.hasSkillTag('nogain')&&target!=_status.currentPhase) return 0.1;
return att/(1+0.1*target.countCards('h'));
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('sunohara_jianren',target,{color:[145,149,179]});
target.draw(event.num);
}
},
},
shiina_qingshen:{
trigger:{
player:'damageEnd',
@ -534,7 +811,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
num+=player.getUseValue(cards[i]);
}
return player.countCards('h',function(card){
return (card.name!='sha'||!player.countUsed('sha'))&&player.getUseValue(card)>num;
return player.getUseValue(card,null,true)>num;
})==0;
}();
player.chooseTarget(get.prompt2('saya_shouji'),lib.filter.notMe).set('ai',function(target){
@ -1086,6 +1363,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
else trigger.cancel();
},
ai:{
effect:{
player:function(card,player,target){
if(get.attitude(player,target)>0&&get.tag(card,'damage')) return 'zeroplayertarget';
},
},
},
},
yusa_yanyi:{
enable:'phaseUse',
@ -1967,6 +2251,37 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
},
yjxuepin:{
enable:'phaseUse',
usable:1,
filterTarget:function(event,player,target){
return player.inRange(target);
},
content:function(){
'step 0'
player.loseHp();
'step 1'
if(target.countDiscardableCards(player,'he')>0) player.discardPlayerCard(target,2,'he',true);
else event.finish();
'step 2'
if(result.bool&&result.cards.length==2&&get.type2(result.cards[0],result.cards[0].original=='h'?target:false)==get.type2(result.cards[1],result.cards[1].original=='h'?target:false)) player.recover();
},
ai:{
order:4,
result:{
player:function(player,target){
if(player.hp==1) return -4;
if(target.countCards('e')>1) return 0;
if(player.hp>2||target.countCards('h')>1) return -0.5;
return -2;
},
target:function(player,target){
return -2;
},
},
},
},
nsjianglie:{
trigger:{player:'useCardToPlayered'},
filter:function(event,player){
@ -6681,7 +6996,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ns_xinnanhua:'南华老仙',
key_lucia:'此花露西娅',
key_kyousuke:'恭介',
key_kyousuke:'恭介',
key_yuri:'仲村ゆり',
key_haruko:'神尾晴子',
key_kagari:'篝',
@ -6703,6 +7018,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
key_harukakanata_ab:'三枝二木',
key_inari:'稻荷',
key_shiina:'椎名',
key_sunohara:'春原阳平&春原芽衣',
key_sunohara_ab:'阳平芽衣',
//该武将国战模式下不可用
key_rin:'枣铃',
key_sasami:'笹濑川佐佐美',
lucia_duqu:'毒躯',
lucia_duqu_info:'锁定技,①当你对其他角色造成伤害或受到其他角色的伤害时,你和对方各获得一张花色点数随机的【毒】。<br>②当你因【毒】失去体力时,你改为回复等量的体力。<br>③当你处于濒死状态时,你可以使用一张【毒】(每回合限一次)。',
lucia_zhenren:'振刃',
@ -6777,7 +7097,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
haruka_shuangche:'双掣',
kanata_shuangche:'双掣',
haruka_shuangche_backup:'双掣',
haruka_shuangche_info:'出牌阶段,你可以将一张牌当做任意基本牌或锦囊牌使用。此牌结算完成后你选择一项1.弃置X张牌。2.失去1点体力且本回合内不能再发动〖双掣〗。',
haruka_shuangche_info:'出牌阶段,你可以视为使用任意基本牌或普通锦囊牌。此牌结算完成后你选择一项1.弃置X张牌。2.失去1点体力且本回合内不能再发动〖双掣〗。',
//你不能以此法使用【回魂】
saya_shouji:'授计',
saya_shouji_info:'每回合限一次,当你使用的牌结算完成后,你可以将此牌对应的所有实体牌交给一名其他角色。其可以使用这些牌中的一张,若如此做,你摸一张牌。',
@ -6800,7 +7120,27 @@ game.import('character',function(lib,game,ui,get,ai,_status){
shiina_feiyan_info:'一名其他角色的回合开始时,若其在你的攻击范围内,则你可以将一张「轻」置于弃牌堆,然后视为对其使用一张【杀】。若此【杀】未造成伤害,你摸一张牌。你于此【杀】的结算流程中视为拥有技能【铁骑】。',
shiina_retieji:'铁骑',
//你不能对稻荷发动【飞燕】
sunohara_chengshuang:'成双',
sunohara_chengshuang_phase:'成双',
sunohara_chengshuang_info:'锁定技,游戏开始时,你选择你的性别。回合开始时,你可以切换你的性别。',
sunohara_tiaoyin:'挑引',
sunohara_tiaoyin_info:'出牌阶段限一次你可以弃置任意张花色各不相同的手牌然后获得等量角色区域内的各一张牌。若你以此法获得了异性角色区域内的牌则你失去1点体力。',
sunohara_jianren:'坚忍',
sunohara_jianren_info:'当你受到伤害后,你可以令一名角色摸一张牌。若伤害无来源或来源与你性别不同,则改为摸三张牌。',
rin_baoqiu:'暴球',
rin_baoqiu_info:'锁定技,你的攻击范围+2。当你使用【杀】指定目标后你进行判定。若结果为红色此【杀】对其的伤害值基数+1为黑色其无法闪避此【杀】为♠/♥,此【杀】不计入使用次数限制且你摸一张牌;为♦/♣,目标角色的所有非锁定技失效直到回合结束,且你弃置其一张牌。',
sasami_miaobian:'喵变',
sasami_miaobian_info:'当你的体力值变为3以下时你获得技能〖公清〗2以下时你获得技能〖复难〗1以下时你获得技能〖暴球〗',
"sasami_gongqing":"公清",
"sasami_gongqing_info":"锁定技。当你受到伤害时,若伤害来源的攻击范围:<3则你令此伤害的数值减为1。>3你令此伤害+1。",
sasami_funan:'复难',
sasami_funan_info:'其他角色使用或打出牌响应你使用的牌时,你可令其获得你使用的牌(其本回合不能使用或打出这些牌),然后你获得其使用或打出的牌。',
sasami_baoqiu:'暴球',
sasami_baoqiu_info:'锁定技,你的攻击范围+2。当你使用【杀】指定目标后你进行判定。若结果为红色此【杀】对其的伤害值基数+1为黑色其无法闪避此【杀】为♠/♥,此【杀】不计入使用次数限制且你摸一张牌;为♦/♣,目标角色的所有非锁定技失效直到回合结束,且你弃置其一张牌。',
yj_caoang:'SP曹昂',
yjxuepin:'血拼',
yjxuepin_info:'出牌阶段限一次你可以选择攻击范围内的一名角色并失去1点体力。你弃置其两张牌。若这两张牌类型相同你回复1点体力。',
ns_chendao:'SP陈到',
nsjianglie:'将烈',
nsjianglie_info:'当你使用【杀】指定目标后,你可以令其展示所有手牌,然后弃置其中一种颜色的牌。',
@ -7033,6 +7373,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
diy_tieba:'吧友设计',
diy_default:'常规',
diy_key:'论外',
diy_yongjian:'用间篇',
},
};
});

View File

@ -127,7 +127,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(event.getParent('phaseUse').skipped) return true;
var nd=player.needsToDiscard();
return player.countCards('h',function(card){
return (nd?true:get.tag(card,'damage'))&&player.getUseValue(card)>0;
return player.getUseValue(card,null,true)>0&&(nd?true:get.tag(card,'damage')>0);
})==0;
},
logTarget:'player',

View File

@ -2026,24 +2026,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
silent:true,
popup:false,
content:function(){
trigger.xinzhanyi=true;
if(!trigger.baseDamage) trigger.baseDamage=1;
trigger.baseDamage++;
player.storage.xinzhanyi_basic1=true;
},
},
xinzhanyi_basic2:{
trigger:{source:['damageBegin','recoverBegin']},
forced:true,
silent:true,
popup:false,
filter:function(event){
return event.getParent(2).xinzhanyi==true;
},
content:function(){
trigger.num++
},
},
xinzhanyi_basic:{
group:['xinzhanyi_basic1','xinzhanyi_basic2'],
group:['xinzhanyi_basic1'],
onremove:function(p,s){
delete p.storage[s+1];
},

View File

@ -4,7 +4,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'old',
characterSort:{
old:{
old_shenhua:["yuji","zhangjiao","old_zhugezhan","old_guanqiujian","xiahouyuan"],
old_shenhua:["yuji","zhangjiao","old_zhugezhan","old_guanqiujian","xiahouyuan","weiyan","xiaoqiao"],
old_refresh:["old_zhangfei","old_huatuo"],
old_yijiang1:["masu","xushu","fazheng","yujin","xin_yujin","old_xusheng","old_lingtong","ol_yujin"],
old_yijiang2:["old_madai","old_zhonghui","old_wangyi","old_guanzhang","ol_liaohua"],
@ -12,11 +12,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
old_yijiang4:["old_caozhen","old_chenqun","old_zhuhuan","ol_wuyi"],
old_yijiang5:["old_caoxiu","old_quancong","old_zhuzhi"],
old_yijiang67:["ol_xinxianying","ol_zhangrang","ol_liuyu"],
old_sp:["old_lingju","old_maliang","old_machao","zhangliang","jsp_caoren","ol_guansuo","old_zhangxingcai","old_huangfusong","ol_maliang"],
old_sp:["old_lingju","old_maliang","old_machao","zhangliang","jsp_caoren","ol_guansuo","old_zhangxingcai","old_huangfusong","ol_maliang","panfeng"],
old_mobile:["old_caochun","old_majun"],
},
},
character:{
panfeng:['male','qun',4,['kuangfu']],
xiaoqiao:['female','wu',3,['tianxiang','hongyan']],
weiyan:['male','shu',4,['kuanggu']],
xiahouyuan:['male','wei',4,['shensu']],
ol_maliang:['male','shu',3,['zishu','yingyuan']],
old_huangfusong:['male','qun',4,['fenyue']],

View File

@ -5,15 +5,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
characterSort:{
refresh:{
refresh_standard:["re_caocao","re_simayi","re_guojia","re_lidian","re_zhangliao","re_xuzhu","re_xiahoudun","re_zhangfei","re_zhaoyun","re_guanyu","re_machao","re_xushu","re_zhouyu","re_lvmeng","re_ganning","re_luxun","re_daqiao","re_huanggai","re_lvbu","re_gongsunzan","re_huatuo","re_liubei","re_diaochan","re_huangyueying","re_sunquan","re_sunshangxiang","re_zhenji","re_zhugeliang","re_huaxiong"],
refresh_feng:['caoren','ol_xiahouyuan','re_huangzhong','re_weiyan','re_xiaoqiao','zhoutai','re_zhangjiao','xin_yuji'],
refresh_feng:['caoren','ol_xiahouyuan','re_huangzhong','ol_weiyan','ol_xiaoqiao','zhoutai','re_zhangjiao','xin_yuji'],
refresh_huo:["ol_sp_zhugeliang","re_xunyu","re_dianwei","re_yanwen","ol_pangtong","ol_yuanshao","re_pangde"],
refresh_lin:['re_zhurong','re_menghuo','re_dongzhuo','re_sunjian','re_caopi','re_xuhuang'],
refresh_shan:['re_dengai','re_jiangwei','re_caiwenji','ol_liushan','re_zhangzhang','re_zuoci','re_sunce'],
refresh_yijiang:['re_xusheng','re_wuguotai','re_gaoshun','re_zhangyi'],
refresh_yijiang:['re_xusheng','re_wuguotai','re_gaoshun','re_zhangyi','re_caozhi'],
},
},
connect:true,
character:{
re_caozhi:['male','wei',3,['reluoying','rejiushi','chengzhang']],
ol_pangtong:['male','shu',3,['xinlianhuan','olniepan'],[]],
re_zhangyi:['male','shu',4,['rewurong','shizhi']],
re_xusheng:['male','wu',4,['repojun']],
@ -56,8 +57,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ol_xiahouyuan:['male','wei',4,['xinshensu','shebian']],
caoren:['male','wei',4,['xinjushou','xinjiewei']],
re_huangzhong:['male','shu',4,['xinliegong']],
re_weiyan:['male','shu',4,['xinkuanggu','qimou']],
re_xiaoqiao:['female','wu',3,['retianxiang','hongyan']],
ol_weiyan:['male','shu',4,['xinkuanggu','reqimou']],
ol_xiaoqiao:['female','wu',3,['retianxiang','rehongyan']],
zhoutai:['male','wu',4,['buqu','fenji']],
re_pangde:['male','qun',4,['mashu','jianchu']],
re_xuhuang:['male','wei',4,['duanliang','jiezi']],
@ -93,6 +94,368 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sunben:['zhouyu','taishici','daqiao'],
},
skill:{
reluoying:{
audio:2,
group:['reluoying_discard','reluoying_judge'],
subfrequent:['judge'],
subSkill:{
discard:{
audio:'reluoying',
trigger:{global:'loseAfter'},
filter:function(event,player){
if(event.type!='discard') return false;
if(event.player==player) return false;
for(var i=0;i<event.cards2.length;i++){
if(get.suit(event.cards2[i],event.player)=='club'&&get.position(event.cards2[i],true)=='d'){
return true;
}
}
return false;
},
direct:true,
content:function(){
"step 0"
if(trigger.delay==false) game.delay();
"step 1"
var cards=[];
for(var i=0;i<trigger.cards2.length;i++){
if(get.suit(trigger.cards2[i],trigger.player)=='club'&&get.position(trigger.cards2[i],true)=='d'){
cards.push(trigger.cards2[i]);
}
}
if(cards.length){
player.chooseButton(['落英:选择要获得的牌',cards],[1,cards.length]).ai=get.buttonValue;
}
"step 2"
if(result.bool){
player.logSkill(event.name);
player.gain(result.links,'gain2','log');
}
},
},
judge:{
audio:'reluoying',
trigger:{global:'cardsDiscardAfter'},
direct:true,
check:function(event,player){
return event.cards[0].name!='du';
},
filter:function(event,player){
var evt=event.getParent().relatedEvent;
if(!evt||evt.name!='judge') return;
if(evt.player==player) return false;
if(get.position(event.cards[0],true)!='d') return false;
return (get.suit(event.cards[0])=='club');
},
content:function(){
"step 0"
player.chooseButton(['落英:选择要获得的牌',trigger.cards],[1,trigger.cards.length]).ai=get.buttonValue;
"step 1"
if(result.bool){
player.logSkill(event.name);
player.gain(result.links,'gain2','log');
}
}
}
}
},
jiushi:{
audio:'jiushi1',
group:['jiushi1','jiushi2','jiushi3'],
},
chengzhang:{
trigger:{player:'phaseZhunbeiBegin'},
derivation:'rejiushi_mark',
forced:true,
unique:true,
juexingji:true,
skillAnimation:true,
animationColor:'water',
filter:function(event,player){
var num=0;
player.getAllHistory('sourceDamage',function(evt){
num+=evt.num;
});
if(num>=7) return true;
player.getAllHistory('damage',function(evt){
num+=evt.num;
});
return num>7;
},
content:function(){
player.markSkill('rejiushi_mark');
player.awakenSkill('chengzhang');
player.storage.chengzhang=true;
player.recover();
player.draw();
},
},
rejiushi:{
audio:2,
group:['rejiushi1','rejiushi2','rejiushi3','rejiushi_gain'],
subfrequent:['gain'],
subSkill:{
gain:{
audio:'rejiushi',
trigger:{player:'turnOverAfter'},
frequent:true,
filter:function(event,player){
return player.storage.chengzhang==true;
},
content:function(){
var card=get.cardPile2(function(card){
return get.type2(card)=='trick';
});
if(card) player.gain(card,'gain2','log');
},
},
},
},
rejiushi1:{
audio:'rejiushi',
enable:'chooseToUse',
filter:function(event,player){
if(player.classList.contains('turnedover')) return false;
if(event.parent.name=='phaseUse'){
return lib.filter.filterCard({name:'jiu'},player,event);
}
if(event.type!='dying') return false;
if(player!=event.dying) return false;
return true;
},
content:function(){
if(_status.event.getParent(2).type=='dying'){
event.dying=player;
event.type='dying';
}
player.turnOver();
player.useCard({name:'jiu',isCard:true},player);
},
ai:{
save:true,
skillTagFilter:function(player){
return player.hp<=0&&!player.isTurnedOver();
},
order:5,
result:{
player:function(player){
if(_status.event.parent.name=='phaseUse'){
if(player.countCards('h','jiu')>0) return 0;
if(player.getEquip('zhuge')&&player.countCards('h','sha')>1) return 0;
if(!player.countCards('h','sha')) return 0;
var targets=[];
var target;
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(get.attitude(player,players[i])<0){
if(player.canUse('sha',players[i],true,true)){
targets.push(players[i]);
}
}
}
if(targets.length){
target=targets[0];
}
else{
return 0;
}
var num=get.effect(target,{name:'sha'},player,player);
for(var i=1;i<targets.length;i++){
var num2=get.effect(targets[i],{name:'sha'},player,player);
if(num2>num){
target=targets[i];
num=num2;
}
}
if(num<=0) return 0;
var e2=target.getEquip(2);
if(e2){
if(e2.name=='tengjia'){
if(!player.countCards('h',{name:'sha',nature:'fire'})&&!player.getEquip('zhuque')) return 0;
}
if(e2.name=='renwang'){
if(!player.countCards('h',{name:'sha',color:'red'})) return 0;
}
if(e2.name=='baiyin') return 0;
}
if(player.getEquip('guanshi')&&player.countCards('he')>2) return 1;
return target.countCards('h')>3?0:1;
}
if(player==_status.event.dying||player.isTurnedOver()) return 3;
}
},
effect:{
target:function(card,player,target){
if(card.name=='guiyoujie') return [0,0.5];
if(target.isTurnedOver()){
if(get.tag(card,'damage')){
if(player.hasSkillTag('jueqing',false,target)) return [1,-2];
if(target.hp==1) return;
return [1,target.countCards('h')/2];
}
}
}
}
},
},
rejiushi2:{
trigger:{player:'damageBegin3'},
silent:true,
firstDo:true,
filter:function(event,player){
return player.classList.contains('turnedover');
},
content:function(){
trigger.rejiushi=true;
}
},
rejiushi3:{
audio:'rejiushi',
trigger:{player:'damageEnd'},
check:function(event,player){
return player.isTurnedOver();
},
filter:function(event,player){
if(event.rejiushi){
return true;
}
return false;
},
content:function(){
delete trigger.rejiushi;
player.turnOver();
if(!player.storage.chengzhang){
var card=get.cardPile2(function(card){
return get.type2(card)=='trick';
});
if(card) player.gain(card,'gain2','log');
}
}
},
rejiushi_mark:{
mark:true,
marktext:'改',
intro:{
content:'当你需要使用【酒】时,若你的武将牌正面向上,你可以翻面,视为使用一张【酒】。当你受到伤害后,若你的武将牌背面向上,你可以翻面。当你翻面时,你获得牌堆中的一张随机锦囊。',
},
},
rehongyan:{
mod:{
suit:function(card,suit){
if(suit=='spade') return 'heart';
}
},
trigger:{player:'loseEnd'},
filter:function(event,player){
if(player==_status.currentPhase) return false;
for(var i=0;i<event.cards2.length;i++){
if(get.suit(event.cards2[i],player)=='heart') return true;
}
return false;
},
frequent:true,
content:function(){
player.draw();
},
},
reqimou:{
unique:true,
limited:true,
audio:2,
enable:'phaseUse',
filter:function(event,player){
return !player.storage.reqimou;
},
init:function(player){
player.storage.reqimou=false;
},
mark:true,
intro:{
content:'limited'
},
skillAnimation:true,
animationColor:'orange',
content:function(){
'step 0'
var shas=player.getCards('h','sha');
var num;
if(player.hp>=4&&shas.length>=3){
num=3;
}
else if(player.hp>=3&&shas.length>=2){
num=2;
}
else{
num=1
}
var map={};
var list=[];
for(var i=1;i<=player.hp;i++){
var cn=get.cnNumber(i,true);
map[cn]=i;
list.push(cn);
}
event.map=map;
player.awakenSkill('reqimou');
player.storage.reqimou=true;
player.chooseControl(list,function(){
return get.cnNumber(_status.event.goon,true);
}).set('prompt','失去任意点体力').set('goon',num);
'step 1'
var num=event.map[result.control]||1;
player.storage.reqimou2=num;
player.loseHp(num);
player.draw(num);
player.addTempSkill('reqimou2');
},
ai:{
order:2,
result:{
player:function(player){
if(player.hp==1) return 0;
var shas=player.getCards('h','sha');
if(!shas.length) return 0;
var card=shas[0];
if(!lib.filter.cardEnabled(card,player)) return 0;
if(lib.filter.cardUsable(card,player)) return 0;
var mindist;
if(player.hp>=4&&shas.length>=3){
mindist=4;
}
else if(player.hp>=3&&shas.length>=2){
mindist=3;
}
else{
mindist=2;
}
if(game.hasPlayer(function(current){
return (current.hp<=mindist-1&&
get.distance(player,current,'attack')<=mindist&&
player.canUse(card,current,false)&&
get.effect(current,card,player,player)>0);
})){
return 1;
}
return 0;
}
}
}
},
reqimou2:{
onremove:true,
mod:{
cardUsable:function(card,player,num){
if(typeof player.storage.reqimou2=='number'&&card.name=='sha'){
return num+player.storage.reqimou2;
}
},
globalFrom:function(from,to,distance){
if(typeof from.storage.reqimou2=='number'){
return distance-from.storage.reqimou2;
}
}
}
},
olniepan:{
audio:2,
unique:true,
@ -5619,6 +5982,25 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ol_pangtong:'界庞统',
olniepan:'涅槃',
olniepan_info:'限定技当你处于濒死状态时你可以弃置你区域内的所有牌并复原你的武将牌然后摸三张牌并将体力回复至3点。然后你选择获得以下技能中的一个〖八阵〗/〖火计〗/〖看破〗',
ol_weiyan:'界魏延',
reqimou:'奇谋',
reqimou_info:'限定技,出牌阶段,你可以失去任意点体力并摸等量的牌,然后直到回合结束,你计算与其他角色的距离时-X且你可以多使用X张【杀】X为你失去的体力值',
ol_xiaoqiao:'界小乔',
rehongyan:'红颜',
rehongyan_info:'锁定技,你区域内的黑桃牌和黑桃判定牌均视为红桃。当你于回合外失去红桃牌后,你摸一张牌。',
re_caozhi:'界曹植',
reluoying:'落英',
reluoying_discard:'落英',
reluoying_judge:'落英',
reluoying_info:'当其他角色的梅花牌因弃置或判定而进入弃牌堆时,你可以获得之。',
rejiushi:'酒诗',
rejiushi_info:'当你需要使用【酒】时,若你的武将牌正面向上,你可以翻面,视为使用一张【酒】。当你受到伤害后,若你的武将牌背面向上,你可以翻面并获得牌堆中的一张随机锦囊。',
rejiushi1:'酒诗',
rejiushi3:'酒诗',
rejiushi_mark:'酒诗·改',
rejiushi_mark_info:'当你需要使用【酒】时,若你的武将牌正面向上,你可以翻面,视为使用一张【酒】。当你受到伤害后,若你的武将牌背面向上,你可以翻面。当你翻面时,你获得牌堆中的一张随机锦囊。',
chengzhang:'成章',
chengzhang_info:'觉醒技准备阶段开始时若你造成伤害与受到伤害值之和累计7点或以上则你回复1点体力并摸1张牌然后改写〖酒诗〗。',
refresh_standard:'界限突破·标',
refresh_feng:'界限突破·风',

View File

@ -6,7 +6,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
connectBanned:['zuoci'],
characterSort:{
shenhua:{
shenhua_feng:["sp_zhangjiao","re_yuji","old_zhoutai","old_caoren","re_xiahouyuan","xiaoqiao","huangzhong","weiyan"],
shenhua_feng:["sp_zhangjiao","re_yuji","old_zhoutai","old_caoren","re_xiahouyuan","re_xiaoqiao","huangzhong","re_weiyan"],
shenhua_huo:['dianwei','xunyu','pangtong','sp_zhugeliang','taishici','yanwen','re_yuanshao','pangde'],
shenhua_lin:['caopi','xuhuang','menghuo','zhurong','re_lusu','sunjian','dongzhuo','jiaxu'],
shenhua_shan:['dengai','zhanghe','liushan','jiangwei','zhangzhang','sunce','caiwenji','zuoci'],
@ -21,8 +21,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
pangde:['male','qun',4,['mashu','mengjin']],
re_xiahouyuan:['male','wei',4,['xinshensu']],
huangzhong:['male','shu',4,['liegong']],
weiyan:['male','shu',4,['kuanggu']],
xiaoqiao:['female','wu',3,['tianxiang','hongyan']],
re_weiyan:['male','shu',4,['xinkuanggu','qimou']],
re_xiaoqiao:['female','wu',3,['retianxiang','hongyan']],
sp_zhangjiao:['male','qun',3,['releiji','guidao','huangtian'],['zhu']],
re_yuji:["male","qun",3,["xinfu_guhuo"],["forbidai"]],
// yuji:['male','qun',3,['guhuo']],
@ -7384,8 +7384,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_xiahouyuan:'夏侯渊',
re_huangzhong:'界黄忠',
re_weiyan:'魏延',
re_xiaoqiao:'小乔',
re_weiyan:'魏延',
re_xiaoqiao:'小乔',
gz_xiahouyuan:'夏侯渊',
gz_huangzhong:'黄忠',
@ -7404,8 +7404,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
caoren:'界曹仁',
huangzhong:'黄忠',
sp_zhangjiao:'张角',
weiyan:'魏延',
xiaoqiao:'小乔',
weiyan:'魏延',
xiaoqiao:'小乔',
zhoutai:'界周泰',
zhangjiao:'张角',
yuji:'于吉',

View File

@ -16,7 +16,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_zhongdan:["cuiyan","huangfusong"],
sp_star:["sp_xiahoushi","jsp_zhaoyun","huangjinleishi","sp_pangtong","sp_daqiao","sp_ganning","sp_xiahoudun","sp_lvmeng","sp_zhangfei","sp_liubei"],
sp_sticker:['sp_gongsunzan','sp_simazhao','sp_wangyuanji','sp_xinxianying','sp_liuxie'],
sp_guozhan:["shamoke","ganfuren","yuejin","hetaihou","dingfeng","panfeng","jianggan"],
sp_guozhan:["shamoke","ganfuren","yuejin","hetaihou","dingfeng","re_panfeng","jianggan"],
sp_guozhan2:["mifuren","mateng","tianfeng","chendong","sp_dongzhuo","jiangfei","jiangqing","kongrong","bianfuren","liqueguosi","lvfan","cuimao","jiling","zangba","zhangren","zoushi"],
sp_guandu:["sp_zhanghe","xunchen","sp_shenpei","gaolan"],
sp_single:["hejin","hansui","niujin"],
@ -24,12 +24,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
character:{
re_panfeng:['male','qun',4,['xinkuangfu']],
gaolan:['male','qun',4,['xiying']],
sp_shenpei:['male','qun',3,['gangzhi','beizhan']],
xunchen:['male','qun',3,['fenglve','mouzhi']],
sp_zhanghe:['male','qun',4,['yuanlve']],
sunshao:['male','wu',3,['bizheng','yidian']],
wangshuang:['male','wei',5,['spzhuilie'],['unseen']],
wangshuang:['male','wei',8,['spzhuilie']],
sp_gongsunzan:['male','qun',4,['spyicong','sptuji']],
sp_simazhao:['male','wei',3,['spzhaoxin','splanggu']],
sp_wangyuanji:['female','wei',3,['spfuluan','spshude']],
@ -160,7 +161,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
hetaihou:['female','qun',3,['zhendu','qiluan']],
kongrong:['male','qun',3,['lirang','mingshi']],
dingfeng:['male','wu',4,['fenxun','duanbing']],
panfeng:['male','qun',4,['kuangfu']],
bianfuren:['female','wei',3,['wanwei','yuejian']],
shamoke:['male','shu',4,['gzjili']],
liqueguosi:['male','qun',4,['xiongsuan']],
@ -512,6 +512,60 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
skill:{
//新潘凤
xinkuangfu:{
enable:'phaseUse',
usable:1,
filterTarget:function(card,player,target){
if(player==target) return player.countCards('e',function(card){
return lib.filter.cardDiscardable(card,player);
})>0;
return target.countDiscardableCards(player,'e')>0;
},
filter:function(event,player){
return game.hasPlayer(function(current){
return current.countCards('e')>0;
});
},
content:function(){
'step 0'
if(player==target) player.chooseToDiscard('e',true);
else player.discardPlayerCard(target,'e',true);
'step 1'
player.chooseUseTarget('sha',true,false,'nodistance');
'step 2'
var bool=game.hasPlayer2(function(current){
return current.getHistory('damage',function(evt){
return evt.getParent(4)==event;
}).length>0
});
if(player==target&&bool) player.draw(2);
else if(player!=target&&!bool) player.chooseToDiscard('h',2,true);
},
ai:{
order:function(){
return get.order({name:'sha'})+0.3;
},
result:{
target:function(player,target){
var att=get.attitude(player,target);
var max=0;
var min=1;
target.countCards('e',function(card){
var val=get.value(card);
if(val>max) max=val;
if(val<min) min=val;
});
if(att>0&&min<=0) return target.hasSkillTag('noe')?3:1;
if(att<0&&max>0){
if(target.hasSkillTag('noe')) return max>6?(-max/3):0;
return -max;
}
return 0;
},
},
},
},
//官渡之战
xiying:{
trigger:{player:'phaseUseBegin'},
@ -932,7 +986,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){
'step 0'
player.judge(function(card){
var type=get.type(card,'trick');
var type=get.subtype(card);
return ['equip1','equip4','equip3','equip6'].contains(type)?6: -6;
switch(type){
case 'equip': return 4;
case 'trick': return -4;
@ -13760,7 +13815,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(event.type!='discard') return false;
if(event.cards2){
for(var i=0;i<event.cards2.length;i++){
if(get.color(event.cards2[i],event.hs.contains(event.cards2[i])?player:false)=='red') return true;
if(get.color(event.cards2[i],player)=='red') return true;
}
}
return false;
@ -13771,7 +13826,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(trigger.name=='lose'){
event.count=0;
for(var i=0;i<trigger.cards2.length;i++){
if(get.color(trigger.cards2[i],trigger.hs.contains(trigger.cards2[i])?player:false)=='red') event.count++;
if(get.color(trigger.cards2[i],player)=='red') event.count++;
}
}
"step 1"
@ -17016,7 +17071,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhuling:'朱灵',
sunluyu:'孙鲁育',
hanba:'旱魃',
panfeng:'潘凤',
panfeng:'潘凤',
zumao:'祖茂',
daxiaoqiao:'大小乔',
sp_daqiao:'☆SP大乔',
@ -17786,7 +17841,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
wangshuang:'王双',
spzhuilie:'追猎',
spzhuilie2:'追猎',
spzhuilie_info:'锁定技,你使用【杀】无距离限制;当你使用【杀】指定目标后,若其不在你的攻击范围内,此【杀】不计入使用次数限制且你判定。若判定结果为装备牌此【杀】的伤害基数改为XX为其体力值锦囊牌你失去1点体力。',
spzhuilie_info:'锁定技,你使用【杀】无距离限制;当你使用【杀】指定目标后,若其不在你的攻击范围内,此【杀】不计入使用次数限制且你判定。若判定结果为武器牌或坐骑牌此【杀】的伤害基数改为XX为其体力值。否则你失去1点体力。',
sunshao:'孙邵',
bizheng:'弼政',
bizheng_info:'摸牌阶段结束时,你可以令一名其他角色摸两张牌。然后,若你的手牌数大于体力上限,你弃置两张牌。若其的手牌数大于体力上限,其弃置两张牌。',
@ -17812,6 +17867,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xiying:'袭营',
xiying2:'袭营',
xiying_info:'出牌阶段开始时,你可以弃置一张牌,然后令所有其他角色依次选择一项:弃置一张牌,或本回合内不能使用或打出牌。',
re_panfeng:'潘凤',
xinkuangfu:'狂斧',
xinkuangfu_info:'出牌阶段限一次你可选择1弃置装备区里的一张牌你使用无对应实体牌的普【杀】。若此【杀】造成伤害你摸两张牌。2弃置一名其他角色装备区里的一张牌你使用无对应实体牌的普【杀】。若此【杀】未造成伤害你弃置两张牌。',
sp_default:"常规",
sp_whlw:"文和乱武",

View File

@ -9446,7 +9446,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
//unique:true,
//gainable:true,
group:['luoying_discard','luoying_judge'],
subfrequent:['discard','judge'],
subfrequent:['judge'],
subSkill:{
discard:{
audio:2,
@ -9455,40 +9455,39 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(event.type!='discard') return false;
if(event.player==player) return false;
for(var i=0;i<event.cards2.length;i++){
if(get.suit(event.cards2[i],event.hs.contains(event.cards2[i])?event.player:false)=='club'&&get.position(event.cards2[i],true)=='d'){
if(get.suit(event.cards2[i],event.player)=='club'&&get.position(event.cards2[i],true)=='d'){
return true;
}
}
return false;
},
frequent:'check',
check:function(event,player){
for(var i=0;i<event.cards2.length;i++){
if(get.suit(event.cards2[i],event.hs.contains(event.cards2[i])?event.player:false)=='club'&&get.position(event.cards2[i],true)=='d'){
if(event.cards2[i].name=='du') return false;
}
}
return true;
},
direct:true,
//frequent:'check',
content:function(){
"step 0"
if(trigger.delay==false) game.delay();
"step 1"
var cards=[];
for(var i=0;i<trigger.cards2.length;i++){
if(get.suit(trigger.cards2[i],trigger.hs.contains(trigger.cards2[i])?trigger.player:false)=='club'&&get.position(trigger.cards2[i],true)=='d'){
if(get.suit(trigger.cards2[i],trigger.player)=='club'&&get.position(trigger.cards2[i],true)=='d'){
cards.push(trigger.cards2[i]);
}
}
if(cards.length){
player.gain(cards,'log','gain2');
player.chooseButton(['落英:选择要获得的牌',cards],[1,cards.length]).ai=get.buttonValue;
}
"step 2"
if(result.bool){
player.logSkill(event.name);
player.gain(result.links,'gain2','log');
}
},
},
judge:{
audio:2,
trigger:{global:'cardsDiscardAfter'},
frequent:'check',
//frequent:'check',
direct:true,
check:function(event,player){
return event.cards[0].name!='du';
},
@ -9500,7 +9499,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return (get.suit(event.cards[0])=='club');
},
content:function(){
player.gain(trigger.cards,'gain2','log');
"step 0"
player.chooseButton(['落英:选择要获得的牌',trigger.cards],[1,trigger.cards.length]).ai=get.buttonValue;
"step 1"
if(result.bool){
player.logSkill(event.name);
player.gain(result.links,'gain2','log');
}
}
}
}
@ -9597,8 +9602,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
jiushi2:{
trigger:{player:'damage'},
trigger:{player:'damageBegin3'},
silent:true,
firstDo:true,
filter:function(event,player){
return player.classList.contains('turnedover');
},

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[
'v1.9.98.7.1',
'v1.9.99',
'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3',
@ -558,6 +558,8 @@ window.noname_asset_list=[
'audio/die/sp_shenpei.mp3',
'audio/die/sp_zhanghe.mp3',
'audio/die/xunchen.mp3',
'audio/die/re_caozhi.mp3',
'audio/die/wangshuang.mp3',
'audio/skill/anguo1.mp3',
'audio/skill/anguo2.mp3',
@ -2439,7 +2441,14 @@ window.noname_asset_list=[
'audio/skill/xiying1.mp3',
'audio/skill/xiying2.mp3',
'audio/skill/yuanlve1.mp3',
'audio/skill/yuanlve2.mp3',
'audio/skill/yuanlve2.mp3','audio/skill/chengzhang1.mp3',
'audio/skill/chengzhang2.mp3',
'audio/skill/rejiushi1.mp3',
'audio/skill/rejiushi2.mp3',
'audio/skill/reluoying1.mp3',
'audio/skill/reluoying2.mp3',
'audio/skill/spzhuilie1.mp3',
'audio/skill/spzhuilie2.mp3',
'font/huangcao.ttf',
'font/shousha.ttf',
@ -2961,6 +2970,15 @@ window.noname_asset_list=[
'image/character/ns_chendao.jpg',
'image/character/ol_zhangliao.jpg',
'image/character/sunshao.jpg',
'image/character/key_rin.jpg',
'image/character/key_sasami.jpg',
'image/character/key_sunohara.jpg',
'image/character/ol_weiyan.jpg',
'image/character/ol_xiaoqiao.jpg',
'image/character/re_caozhi.jpg',
'image/character/re_panfeng.jpg',
'image/character/wangshuang.jpg',
'image/character/yj_caoang.jpg',
'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg',

View File

@ -7636,7 +7636,7 @@
}
};
game.removeFile=function(filename,callback){
lib.node.fs.unlink(__dirname+'/'+filename);
lib.node.fs.unlink(__dirname+'/'+filename,callback||function(){});
};
game.getFileList=function(dir,callback){
var files=[],folders=[];
@ -9752,7 +9752,7 @@
qunColor:"#f6f6f6",
shenColor:"#ffe14c",
westernColor:"#ffe14c",
keyColor:"#ffc9b1fd",
keyColor:"#c9b1fd",
basic:'基本',
equip:'装备',
trick:'锦囊',
@ -14857,6 +14857,7 @@
},
changeHp:function(){
player.hp+=num;
if(isNaN(player.hp)) player.hp=0;
if(player.hp>player.maxHp) player.hp=player.maxHp;
player.update();
if(event.popup!==false){
@ -15032,9 +15033,8 @@
}
event.cards=player.getCards('hej');
if(event.cards.length){
player.lose(event.cards,'visible').forceDie=true;
player.$throw(event.cards,1000);
game.log(player,'弃置了',event.cards,event.logvid);
player.discard(event.cards).forceDie=true;
//player.$throw(event.cards,1000);
}
}
"step 4"
@ -17690,7 +17690,7 @@
next.nodelayx=true;
}
else if(lib.card[arguments[i]]&&!next.card){
next.card={name:arguments[i]};
next.card={name:arguments[i],isCard:true};
}
else get.evtprompt(next,arguments[i]);
}
@ -22413,8 +22413,10 @@
node.classList.add('normal-font');
}
if(typeof num=='number'&&num>0){
num='+'+num;
if(num==Infinity) num='+∞'
else num='+'+num;
}
else if(num==-Infinity) num='-∞';
node.innerHTML=num;
this.damagepopups.push(node);
node.dataset.nature=nature||'soil';
@ -30814,6 +30816,7 @@
else if(info.enable=='phaseUse') enable=(event.type=='phase');
else if(typeof info.enable=='string') enable=(info.enable==event.name);
if(enable){
if(info.noHidden&&!game.expandSkills(player.getSkills()).contains(skills2[i])) enable=false;
if(info.filter&&!info.filter(event,player)) enable=false;
if(info.viewAs&&event.filterCard&&!event.filterCard(info.viewAs,player,event)) enable=false;
if(info.viewAs&&info.viewAsFilter&&info.viewAsFilter(player)==false) enable=false;
@ -42464,14 +42467,17 @@
}
}
else{
if(typeof infoitem[2]=='string'||infoitem[2]>14){
var hp=get.infoHp(infoitem[2]);
var maxHp=get.infoMaxHp(infoitem[2]);
if(maxHp>14){
if(typeof infoitem[2]=='string') node.node.hp.innerHTML=infoitem[2];
else node.node.hp.innerHTML=get.numStr(infoitem[2]);
node.node.hp.classList.add('text');
}
else{
for(var i=0;i<infoitem[2];i++){
ui.create.div('',node.node.hp);
for(var i=0;i<maxHp;i++){
var next=ui.create.div('',node.node.hp);
if(i>=hp) next.classList.add('exclude');
}
}
}

View File

@ -1,14 +1,14 @@
window.noname_update={
version:'1.9.98.7.1',
update:'1.9.98.7',
version:'1.9.99',
update:'1.9.98.7.1',
changeLog:[
'孙邵OL神张辽',
'王双,新潘凤,界小乔,界魏延,界曹植',
'bug修复',
],
files:[
//'card/extra.js',
'card/extra.js',
//'card/huanlekapai.js',
'card/sp.js',
//'card/sp.js',
//'card/standard.js',
//'card/swd.js',
//'card/mtg.js',
@ -25,15 +25,15 @@ window.noname_update={
//'character/hearth.js',
'character/mobile.js',
//'character/mtg.js',
//'character/old.js',
////'character/old.js',
'character/refresh.js',
'character/shenhua.js',
'character/sp.js',
//'character/tw.js',
'character/standard.js',
//'character/standard.js',
//'character/swd.js',
//'character/xianjian.js',
'character/xinghuoliaoyuan.js',
//'character/xinghuoliaoyuan.js',
'character/yijiang.js',
//'character/yxs.js',
//'extension/boss/extension.js',
@ -48,7 +48,7 @@ window.noname_update={
//'mode/stone.js',
//'mode/brawl.js',
//'mode/versus.js',
'mode/boss.js',
//'mode/boss.js',
'game/game.js',
//'game/NoSleep.js',
//'game/config.js',

BIN
image/character/key_rin.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 242 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 199 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 277 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 298 KiB