Merge pull request #926 from mengxinzxz/PR-Branch

胡金定、诸葛梦雪;素材补充;bugfix
This commit is contained in:
Spmario233 2024-02-06 21:36:57 +08:00 committed by GitHub
commit 46e617e93f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
33 changed files with 240 additions and 5 deletions

BIN
audio/die/ol_hujinding.mp3 Normal file

Binary file not shown.

Binary file not shown.

BIN
audio/die/sb_xunyu.mp3 Normal file

Binary file not shown.

BIN
audio/die/shen_lusu.mp3 Normal file

Binary file not shown.

BIN
audio/die/tianchou.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dingzhou1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/dingzhou2.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/olqingyuan1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/olqingyuan2.mp3 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
audio/skill/olsbweilin1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/olsbweilin2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/olshandao1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/olshandao2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/sbjieming1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/sbjieming2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/sbquhu1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/sbquhu2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/tamo1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/tamo2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/zhimeng1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/zhimeng2.mp3 Normal file

Binary file not shown.

View File

@ -102,7 +102,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
characterSort:{
huicui:{
sp_baigei:['re_panfeng','xingdaorong','caoxing','re_chunyuqiong','xiahoujie','dc_caiyang','zhoushan'],
sp_caizijiaren:['kongrong','re_dongbai','re_sunluyu','heyan','zhaoyan','wangtao','wangyue','zhangxuan','tengyin','zhangyao','xiahoulingnv','dc_sunru','pangshanmin','kuaiqi'],
sp_caizijiaren:['dc_kongrong','re_dongbai','re_sunluyu','heyan','zhaoyan','wangtao','wangyue','zhangxuan','tengyin','zhangyao','xiahoulingnv','dc_sunru','pangshanmin','kuaiqi'],
sp_zhilan:['dc_liuli','liuyong','wanniangongzhu','zhanghu','lvlingqi','tenggongzhu','panghui','dc_zhaotongzhaoguang','yuantanyuanxiyuanshang','yuechen','dc_lingcao'],
sp_guixin:['re_kanze','re_chendeng','caimaozhangyun','dc_lvkuanglvxiang','dc_gaolan','yinfuren','chengui','chenjiao','dc_sp_jiaxu','qinlang','dc_dongzhao'],
sp_daihan:['mamidi','dc_jiling','zhangxun','dc_yuejiu','wanglie','leibo','qiaorui','dongwan','yuanyin'],

View File

@ -663,6 +663,7 @@ window.noname_character_rank={
'dc_guansuo',
'dc_dongzhao',
'zhugeruoxue',
'zhugemengxue',
'dc_sb_lusu',
'mb_huban',
'jsrg_simayi',
@ -961,6 +962,7 @@ window.noname_character_rank={
'ol_dianwei',
'wangyan',
'chengui',
'ol_hujinding',
'dc_huangquan',
'dc_huban',
'dingshangwan',
@ -2143,6 +2145,7 @@ window.noname_character_rank={
'bailingjun',
],
rare:[
'zhugemengxue',
'ol_sb_taishici',
'clan_wuqiao',
'xin_huojun',
@ -2551,6 +2554,7 @@ window.noname_character_rank={
'dukui',
'ol_dianwei',
'chengui',
'ol_hujinding',
'dingshangwan',
're_zhuhuan',
'xin_zhuhuan',

View File

@ -18,7 +18,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_zhongdan:["cuiyan","huangfusong"],
sp_guozhan2:["sp_dongzhuo","liqueguosi","zhangren"],
sp_others:["hanba","caiyang"],
sp_waitforsort:['ol_luyusheng','ol_pengyang','ol_tw_zhangji','ol_liwan','ol_liuyan','caoyu','liyi','tianchou'],
sp_waitforsort:['ol_luyusheng','ol_pengyang','ol_tw_zhangji','ol_liwan','ol_liuyan','caoyu','liyi','tianchou','ol_hujinding'],
},
},
characterFilter:{
@ -30,6 +30,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
character:{
ol_hujinding:['female','shu',3,['olqingyuan','olchongshen']],
tianchou:['male','qun',4,['olshandao']],
liyi:['male','wu',4,['olchanshuang','olzhanjin']],
caoyu:['male','wei',3,['olgongjie','olxiangxv','olxiangzuo']],
@ -709,6 +710,134 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
skill:{
//胡金定
olqingyuan:{
audio:2,
trigger:{
global:['phaseBefore','gainAfter','loseAsyncAfter'],
player:['enterGame','damageEnd'],
},
filter(event,player){
const storage=player.getStorage('olqingyuan');
if(event.name=='gain'||event.name=='loseAsync'){
if(player.hasSkill('olqingyuan_used')) return false;
return storage.some(target=>event.getg(target).length)&&storage.some(target=>target.hasCard(card=>lib.filter.canBeGained(card,target,player),'he'));
}
if(!game.hasPlayer(target=>!storage.includes(target)&&target!=player)) return false;
if(event.name=='damage'&&player.getHistory('damage').indexOf(event)!=0) return false;
return event.name!='phase'||game.phaseNumber==0;
},
forced:true,
async content(event,trigger,player){
if(trigger.name=='gain'||trigger.name=='loseAsync'){
const target=player.getStorage('olqingyuan').filter(target=>target.hasCard(card=>lib.filter.canBeGained(card,target,player),'he')).randomGet();
player.line(target);
player.addTempSkill('olqingyuan_used');
player.gainPlayerCard(target,'he',true);
}
else{
const {result:{bool,targets}}=await player.chooseTarget((card,player,target)=>{
return target!=player&&!player.getStorage('olqingyuan').includes(target);
},true).set('prompt2','每回合限一次,当你以此法选择的角色获得牌后,你随机获得其中一名角色的一张牌')
.set('prompt','请选择【轻缘】的目标').set('ai',target=>{
const player=get.event('player');
return get.effect(target,new lib.element.VCard({name:'shunshou_copy2'}),player,player);
});
if(bool){
const target=targets[0];
player.line(target);
game.log(player,'选择了',target);
player.markAuto('olqingyuan',[target]);
}
}
},
subSkill:{used:{charlotte:true}},
intro:{content:'已选择$为目标'},
},
olchongshen:{
audio:2,
locked:false,
enable:'chooseToUse',
filterCard(card){
return get.itemtype(card)=='card'&&card.hasGaintag('olchongshen');
},
position:'h',
viewAs:{name:'shan'},
viewAsFilter(player){
if(!player.countCards('h',card=>card.hasGaintag('olchongshen'))) return false;
},
prompt:'将本轮得到的牌当作【闪】使用',
check(card){
return 7-get.value(card);
},
ai:{
order:2,
respondShan:true,
skillTagFilter(player,tag,arg){
if(arg=='respond'||!player.countCards('h',card=>card.hasGaintag('olchongshen'))) return false;
},
effect:{
target(card,player,target,current){
if(get.tag(card,'respondShan')&&current<0) return 0.6;
},
},
},
group:'olchongshen_mark',
mod:{
aiValue(player,card,num){
if(get.name(card)!='shan'&&!card.hasGaintag('olchongshen')) return;
var cards=player.getCards('hs',card=>get.name(card)=='shan'||card.hasGaintag('olchongshen'));
cards.sort((a,b)=>(get.name(b)=='shan'?1:2)-(get.name(a)=='shan'?1:2));
const geti=()=>{
if(cards.includes(card)) return cards.indexOf(card);
return cards.length;
};
if(get.name(card)=='shan') return Math.min(num,[6,4,3][Math.min(geti(),2)])*0.6;
return Math.max(num,[6.5,4,3][Math.min(geti(),2)]);
},
aiUseful(){
return lib.skill.olchongshen.mod.aiValue.apply(this,arguments);
},
ignoredHandcard(card,player){
if(card.hasGaintag('olchongshen')) return true;
},
cardDiscardable(card,player,name){
if(name=='phaseDiscard'&&card.hasGaintag('olchongshen')) return false;
},
},
init(player){
if(game.phaseNumber>0){
const hs=player.getCards('h'),history=player.getAllHistory();
let cards=[];
for(let i=history.length-1;i>=0;i--){
for(const evt of history[i].gain){
cards.addArray(evt.cards);
}
if(history[i].isRound) break;
}
cards=cards.filter(i=>hs.includes(i));
if(cards.length) player.addGaintag(cards,'olchongshen');
}
},
onremove(player){
player.removeGaintag('olchongshen');
},
subSkill:{
mark:{
charlotte:true,
trigger:{player:'gainBegin',global:'roundStart'},
filter(event,player){
return event.name=='gain'||game.roundNumber>1;
},
forced:true,
popup:false,
content(){
if(trigger.name=='gain') trigger.gaintag.add('olchongshen');
else player.removeGaintag('olchongshen');
},
},
},
},
//田畴
olshandao:{
audio:2,
@ -27112,6 +27241,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
tianchou:'田畴',
olshandao:'善刀',
olshandao_info:'出牌阶段限一次,你可以选择任意名角色,你选择这些角色的各一张牌,依次将这些牌放置到牌堆顶,然后你视为对这些角色使用【五谷丰登】,然后你视为对这些角色外的所有其他角色使用【万箭齐发】。',
ol_hujinding:'胡金定',
olqingyuan:'轻缘',
olqingyuan_info:'锁定技。①游戏开始时,或当你于本局游戏首次受到伤害后,你选择一名未以此法选择过的其他角色。②每回合限一次,你发动〖轻缘①〗选择过的角色得到牌后,你随机获得其中一名角色的一张牌。',
olchongshen:'重身',
olchongshen_info:'你可以将本轮得到的手牌当作【闪】使用,且这些牌不计入你的手牌上限。',
sp_tianji:'天极·皇室宗亲',
sp_sibi:'四弼·辅国文曲',

View File

@ -10817,7 +10817,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhujun:['ol_zhujun','zhujun','sp_zhujun','jsrg_zhujun'],
tw_liuhong:['liuhong','tw_liuhong','jsrg_liuhong'],
re_hejin:['hejin','re_hejin','tw_hejin','jsrg_hejin'],
hujinding:['dc_hujinding','hujinding'],
hujinding:['dc_hujinding','ol_hujinding','hujinding'],
caosong:['caosong','sp_caosong'],
re_niujin:['niujin','re_niujin','tw_niujin'],
haomeng:['haomeng','tw_haomeng'],
@ -11303,7 +11303,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
liyixiejing:'李异谢旌',
dcdouzhen:'斗阵',
dcdouzhen_info:'锁定技。①转换技。你的回合内当你使用非转化且对应的实体牌为一张黑色基本牌的【决斗】时你获得目标角色各一张牌并获得1枚“☯”当你使用或打出非转化且对应的实体牌为一张红色基本牌的【杀】时你获得1枚“☯”。②若你的“☯”数为偶数你的黑色基本牌均视为【决斗】奇数你的红色基本牌均视为无次数限制的普【杀】。',
dc_hujinding:'胡金定',
dc_hujinding:'新杀胡金定',
dc_hujinding_prefix:'新杀',
dcdeshi:'德释',
dcdeshi_info:'锁定技。当你受到【杀】的伤害时,若你已受伤,则你防止此伤害并令系统从弃牌堆/牌堆中检索一张【杀】你获得此【杀】然后减1点体力上限。',
dcwuyuan:'武缘',

View File

@ -4,6 +4,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'xianding',
connect:true,
character:{
zhugemengxue:['female','wei',3,['dcjichun','dchanying']],
bailingjun:['female','wei',3,['dclinghui','dcxiace','dcyuxin']],
dc_qinghegongzhu:['female','wei',3,['dczhangji','dczengou']],
caoxian:['female','wei',3,['dclingxi','dczhifou']],
@ -99,7 +100,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp2_bizhe:['dc_luotong','dc_wangchang','chengbing','dc_yangbiao','ruanji'],
sp2_huangjia:['caomao','liubian','dc_liuyu','quanhuijie','dingshangwan','yuanji','xielingyu','sunyu','ganfurenmifuren','dc_ganfuren','dc_mifuren','dc_shixie'],
sp2_zhangtai:['guozhao','fanyufeng','ruanyu','yangwan','re_panshu'],
sp2_jinse:['caojinyu','re_sunyi','re_fengfangnv','caohua','laiyinger','zhangfen','zhugeruoxue','caoxian','dc_qinghegongzhu'],
sp2_jinse:['caojinyu','re_sunyi','re_fengfangnv','caohua','laiyinger','zhangfen','zhugeruoxue','caoxian','dc_qinghegongzhu','zhugemengxue'],
sp2_yinyu:['zhouyi','luyi','sunlingluan','caoyi'],
sp2_wangzhe:['dc_daxiaoqiao','dc_sp_machao'],
sp2_doukou:['re_xinxianying','huaman','xuelingyun','dc_ruiji','duanqiaoxiao','tianshangyi','malingli','bailingjun'],
@ -112,6 +113,95 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
skill:{
//诸葛梦雪
dcjichun:{
audio:2,
enable:'phaseUse',
filter(event,player){
return player.countCards('he',card=>lib.skill.dcjichun.filterCard(card,player));
},
filterCard(card,player){
if(!get.cardNameLength(card)||ui.selected.cards.length) return false;
if(game.hasPlayer(target=>{
return target.countCards('h')<player.countCards('h');
})) return true;
if(lib.filter.cardDiscardable(card,player)&&game.hasPlayer(target=>{
return target.countCards('h')>player.countCards('h')&&target.countDiscardableCards(player,'hej');
})) return true;
return false;
},
selectCard:[1,2],
filterTarget(cardx,player,target){
if(!ui.selected.cards.length) return false;
const card=ui.selected.cards[0];
if(target.countCards('h')<player.countCards('h')) return true;
if(lib.filter.cardDiscardable(card,player)&&target.countCards('h')>player.countCards('h')&&target.countDiscardableCards(player,'hej')) return true;
return false;
},
usable:1,
position:'he',
check(card){
return get.cardNameLength(card);
},
complexCard:true,
complexSelect:true,
lose:false,
discard:false,
delay:false,
targetprompt(){
const target=ui.selected.targets[0],player=get.event('player');
return target.countCards('h')<player.countCards('h')?'给牌摸牌':'双双弃牌';
},
async content(event,trigger,player){
const card=event.cards[0],target=event.target;
const num=get.cardNameLength(card);
await player.showCards([card],get.translation(player)+'发动了【寄春】');
if(target.countCards('h')<player.countCards('h')){
await player.give(card,target);
await player.draw(num);
}
else{
await player.discard(card);
await player.discardPlayerCard(target,'hej',[1,num]);
}
},
ai:{
order:7,
result:{
target(player,target){
return target.countCards('h')<player.countCards('h')?get.attitude(player,target):-get.effect(target,{name:'guohe'},player,player);
},
},
},
},
dchanying:{
audio:2,
trigger:{player:'phaseZhunbeiBegin'},
frequent:true,
async content(event,trigger,player){
const card=get.cardPile(card=>get.type(card)=='equip'&&!get.cardtag(card,'gifts'));
if(!card){
player.chat('无牌可得?!');
game.log('但是牌堆已经没有装备牌了!');
return;
}
await player.showCards([card],get.translation(player)+'发动了【寒英】');
if(game.hasPlayer(target=>target.countCards('h')==player.countCards('h')&&target.hasUseTarget(card))){
const {result:{bool,targets}}=await player.chooseTarget('请选择使用'+get.translation(card)+'的目标角色',(card,player,target)=>{
return target.countCards('h')==player.countCards('h')&&target.hasUseTarget(get.event('card'));
},true).set('ai',target=>get.effect(target,get.event('card'),target,get.event('player'))).set('card',card);
if(bool){
const target=targets[0];
player.line(target);
target.chooseUseTarget(card,true,'nopopup');
}
}
else{
player.chat('无人可装?!');
game.log('但是场上没有角色可以使用',card,'');
}
},
},
//柏灵筠
dclinghui:{
audio:2,
@ -13700,6 +13790,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
tianshangyi:'田尚衣,一作陈尚衣,魏文帝曹丕宫中著名宫人。能歌善舞,一时冠绝于世,私以为比之汉宫飞燕也不遑多让。',
malingli:'马伶俐,游卡桌游原创角色,设定上为,马超之女,其身形虽娇小,却继承了马超英勇略带冲动的个性,活泼阳光,调皮伶俐,爱摆弄爆竹烟花一类的小器具,包包里经常放置用五色彩纸包装的小炸弹球。马伶俐从小跟随马超和马云騄学习战斗技巧,战斗力超强,坚强的意志和勇气也得到了提升,同时擅长马术,有一匹可爱的小白马伴随其身边。后马伶俐成年,嫁与刘备之子刘理,获封梁王妃。两人琴瑟相和,极为恩爱,常结伴出游,被人誉为天作之合。',
zhugeruoxue:'诸葛氏(“若雪”为网络小说虚构),诸葛亮的二姐,庞山民之妻。',
zhugemengxue:'诸葛氏(“梦雪”为网络小说虚构),诸葛亮的大姐。',
caoyi:'曹轶,游卡桌游旗下产品《三国杀》原创角色。设定上为曹纯所收养的孙女,从小受到曹纯的教导,在军营中长大,性情坚毅有担当,军事谋略丰富,战斗能力超强。曹轶喜欢美食,特别是甜食,并且擅长制作各种点心。她身边跟随的雪白小老虎是曹纯在她及笄时送的生辰礼物,希望她如小老虎一样,英勇无畏。曹轶与曹婴交好,两人以姐妹相称。曹轶成年后继承祖父衣钵,接手精锐部队“虎豹骑”,成为新的虎豹骑的统领者。',
},
characterTitle:{
@ -14339,6 +14430,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dcxiace_info:'每回合每项各限一次。当你造成/受到伤害后你可以弃置一张牌并回复1点体力/令一名其他角色的非锁定技于本回合失效。',
dcyuxin:'御心',
dcyuxin_info:'限定技一名角色进入濒死状态时你可以令其将体力回复至X点X为1若该角色不为你则X为你的体力值。',
zhugemengxue:'诸葛梦雪',
dcjichun:'寄春',
dcjichun_info:'出牌阶段限一次你可以展示一张手牌并选择一项①将此牌交给一名手牌数小于你的角色然后摸X张牌。②弃置此牌并弃置一名手牌数大于你的角色区域里至多X张牌。X为此牌牌名字数',
dchanying:'寒英',
dchanying_info:'准备阶段,你可以展示牌堆里的一张非赠物装备牌,然后令一名手牌数等于你的角色使用此牌。',
sp2_yinyu:'隐山之玉',
sp2_huben:'百战虎贲',

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB