新杀孟获、清河公主

This commit is contained in:
mengxinzxz 2024-01-22 01:22:59 +08:00
parent 83d7d2937b
commit 902863f591
3 changed files with 208 additions and 2 deletions

View File

@ -4,6 +4,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'huicui',
connect:true,
character:{
dc_sp_menghuo:['male','qun',4,['dcmanwang']],
dc_lingcao:['male','wu','4/5',['dcdufeng']],
yue_xiaoqiao:['female','wu',3,['dcqiqin','dcweiwan']],
dc_dongzhao:['male','wei',3,['dcyijia','dcdingji']],
@ -107,11 +108,94 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_yanhan:['dc_liuba','dc_huangquan','furongfuqian','xianglang','dc_huojun','gaoxiang','dc_wuban'],
sp_jishi:['dc_jiben','zhenghun','dc_sunhanhua','liuchongluojun'],
sp_raoting:['dc_huanghao','dc_sunziliufang','dc_sunchen','dc_jiachong'],
sp_yijun:['gongsundu','mengyou'],
sp_yijun:['gongsundu','mengyou','dc_sp_menghuo'],
sp_zhengyin:['yue_caiwenji','yue_zhoufei','yue_caiyong','yue_xiaoqiao'],
}
},
skill:{
//新服SP孟获
dcmanwang:{
audio:'spmanwang',
inherit:'spmanwang',
check:function(card){
var player=_status.event.player;
var max=Math.min(player.isDamaged()?3:2,4-player.countMark('dcmanwang'));
if(!max&&!player.hasSkill('dcpanqin')) return 0;
if(max==0&&ui.selected.length>0) return 0;
return 7-ui.selected.cards.length-get.value(card);
},
content:function(){
var num=Math.min(cards.length,4-player.countMark('dcmanwang'));
if(num>=1) player.addSkill('dcpanqin');
if(num>=2) player.draw();
if(num>=3) player.recover();
if(num>=4){
player.draw(2);
player.removeSkill('dcpanqin');
}
},
ai:{
order:2,
result:{
player:function(player,target){
if(player.getUseValue({name:'nanman'})<=0) return 0;
if(player.getStat('skill').spmanwang&&player.hasSkill('dcpanqin')) return 0;
return 1;
},
},
},
derivation:'dcpanqin',
},
dcpanqin:{
audio:'sppanqin',
inherit:'sppanqin',
content:function(){
var cards=[];
player.getHistory('lose',function(evt){
if(evt.type!='discard'||evt.getParent(trigger.name)!=trigger) return false;
for(var i of evt.cards2){
if(get.position(i,true)=='d'){
cards.add(i);
}
}
});
player.chooseUseTarget(true,{name:'nanman'},cards);
player.addTempSkill('dcpanqin_eff');
},
subSkill:{
eff:{
charlotte:true,
trigger:{player:'useCard'},
filter:function(event,player){
return event.card.name=='nanman'&&event.getParent(2).name=='dcpanqin'&&player.countMark('dcmanwang')<4&&player.hasSkill('dcmanwang',null,null,false)&&event.cards.length<=event.targets.length;
},
forced:true,
popup:false,
content:function(){
'step 0'
player.addMark('dcmanwang',1,false);
switch(player.countMark('dcmanwang')){
case 1:
player.draw(2);
player.removeSkill('dcpanqin');
break;
case 2:
player.recover();
break;
case 3:
player.draw();
break;
case 4:
player.addSkill('dcpanqin');
break;
}
'step 1'
player.gainMaxHp();
player.recover();
},
}
}
},
//凌操
dcdufeng:{
audio:2,
@ -11115,6 +11199,24 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dcporui:function(player){
return '每轮限'+(player.hasMark('dcgonghu_basic')?'两':'一')+'次。其他角色的结束阶段你可以弃置一张牌并选择另一名于此回合内失去过牌的其他角色你视为对其依次使用X+1张【杀】'+(player.hasMark('dcgonghu_damage')?'':'然后你交给其X张手牌')+'X为其本回合失去的牌数且至多为5。';
},
dcmanwang:function(player){
var num=4-player.countMark('dcmanwang');
var str='出牌阶段你可以弃置任意张牌。然后你依次执行以下选项中的前X项';
var list=[
'⒈获得〖叛侵〗。',
'⒉摸一张牌。',
'⒊回复1点体力。',
'⒋摸两张牌并失去〖叛侵〗。',
];
for(var i=0;i<4;i++){
if(i==num){
str+='<span style="text-decoration: line-through;">';
}
str+=list[i];
}
if(num<4) str+='</span>';
return str;
},
},
perfectPair:{},
characterReplace:{
@ -11139,6 +11241,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhangxuan:['zhangxuan','jsrg_zhangxuan'],
gaoxiang:['gaoxiang','jsrg_gaoxiang'],
lingcao:['lingcao','dc_lingcao'],
sp_menghuo:['sp_menghuo','dc_sp_menghuo'],
},
translate:{
re_panfeng:'潘凤',
@ -11606,6 +11709,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dc_lingcao_prefix:'新杀',
dcdufeng:'独锋',
dcdufeng_info:'锁定技。出牌阶段开始时你失去1点体力或废除一个装备栏摸X张牌然后你的攻击范围与使用【杀】的次数上限均为X直到回合结束X为你已废除的装备栏数与损失的体力值之和至多为你的体力上限。',
dc_sp_menghuo:'群孟获',
dc_sp_menghuo_prefix:'群',
dcmanwang:'蛮王',
dcmanwang_info:'出牌阶段你可以弃置任意张牌。然后你依次执行以下选项中的前X项⒈获得〖叛侵〗。⒉摸一张牌。⒊回复1点体力。⒋摸两张牌并失去〖叛侵〗。',
dcpanqin:'叛侵',
dcpanqin_info:'出牌阶段或弃牌阶段结束时你可将你于本阶段内弃置且位于弃牌堆的所有牌当做【南蛮入侵】使用。然后若此牌被使用时对应的实体牌数不大于此牌的目标数则你执行并移除〖蛮王〗中的最后一个选项然后加1点体力上限并回复1点体力。',
sp_baigei:'无双上将',
sp_caizijiaren:'才子佳人',

View File

@ -590,6 +590,8 @@ window.noname_character_rank={
'tengfanglan',
'tenggongzhu',
'sp_menghuo',
'dc_sp_menghuo',
'dc_qinghegongzhu',
'ruiji',
're_liuchen',
'dc_gongsunzan',
@ -2484,6 +2486,8 @@ window.noname_character_rank={
'jin_guohuai',
'liuba',
'sp_menghuo',
'dc_sp_menghuo',
'dc_qinghegongzhu',
'tenggongzhu',
'tengfanglan',
'dc_bulianshi',

View File

@ -4,6 +4,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'xianding',
connect:true,
character:{
dc_qinghegongzhu:['female','wei',3,['dczhangji','dczengou']],
caoxian:['female','wei',3,['dclingxi','dczhifou']],
dc_sb_zhouyu:['male','wu',4,['dcsbronghuo','dcsbyingmou']],
dc_sb_lusu:['male','wu',3,['dcsbmingshi','dcsbmengmou']],
@ -97,7 +98,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'],
sp2_jinse:['caojinyu','re_sunyi','re_fengfangnv','caohua','laiyinger','zhangfen','zhugeruoxue','caoxian','dc_qinghegongzhu'],
sp2_yinyu:['zhouyi','luyi','sunlingluan','caoyi'],
sp2_wangzhe:['dc_daxiaoqiao','dc_sp_machao'],
sp2_doukou:['re_xinxianying','huaman','xuelingyun','dc_ruiji','duanqiaoxiao','tianshangyi','malingli'],
@ -110,6 +111,91 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
skill:{
//清河公主
dczhangji:{
audio:2,
trigger:{global:'useCard'},
filter:function(event,player){
return event.targets&&event.targets.length>1&&event.targets.includes(player);
},
forced:true,
logTarget:'player',
content:function*(event,map){
const player=map.player;
let trigger=map.trigger,targets=trigger.targets.slice();
targets.remove(player);
player.when({global:'useCardToTargeted'}).filter(evt=>targets.length&&evt.getParent()==trigger&&evt.targets.length==evt.getParent().triggeredTargets4.length).then(()=>{
trigger.getParent().targets=[player].concat(targets);
trigger.getParent().triggeredTargets4=[player].concat(targets);
}).vars({targets:targets});
player.when({target:['useCardToEnd','useCardToExcluded']}).filter(evt=>targets.length&&evt.getParent()==trigger).then(()=>{
player.draw(targets.length);
}).vars({targets:targets});
},
},
dczengou:{
audio:2,
enable:'phaseUse',
filter:function(event,player){
return player.maxHp>0&&player.countCards('he')>0;
},
filterCard:true,
selectCard:()=>[1,_status.event.player.maxHp],
position:'he',
filterTarget:lib.filter.notMe,
discard:false,
lose:false,
delay:false,
usable:1,
check:function(card){
if(card.name=='tao'||card.name=='jiu') return 0;
return 1/(get.value(card)||0.5);
},
content:function*(event,map){
const player=map.player,cards=event.cards,target=event.target;
yield player.give(cards,target).gaintag.add('dczengou_debuff');
yield player.draw(cards.length);
target.addSkill('dczengou_debuff');
},
ai:{
order:10,
result:{target:-1},
},
subSkill:{
debuff:{
charlotte:true,
mark:true,
intro:{content:'下次体力值增加或使用牌结算完毕后展示所有手牌,然后失去手牌中“谮构”牌数的体力值'},
trigger:{player:['changeHp','useCardAfter']},
filter:function(event,player){
return event.name=='useCard'||event.num>0;
},
forced:true,
popup:false,
content:function(){
player.removeSkill('dczengou_debuff');
const cards=player.getCards('h',card=>card.hasGaintag('dczengou_debuff'));
player.showHandcards();
if(cards.length) player.loseHp(cards.length);
},
mod:{
aiValue:function(player,card,num){
if(get.itemtype(card)=='card'&&card.hasGaintag('dczengou_debuff')) return -1;
},
aiUseful:function(){
return lib.skill.dczengou.subSkill.debuff.mod.aiValue.apply(this,arguments);
},
aiOrder:function(player,card,num){
if(get.itemtype(card)=='card'&&card.hasGaintag('dczengou_debuff')){
const cards=player.getCards('h',card=>card.hasGaintag('dczengou_debuff'));
if(cards.length==1) return num+10;
return 0;
}
},
},
},
},
},
//曹宪
dclingxi:{
audio:2,
@ -13528,6 +13614,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dc_wangchang:['dc_wangchang','tw_wangchang'],
guozhao:['guozhao','xin_guozhao','jsrg_guozhao'],
dingshangwan:['dingshangwan','ol_dingshangwan'],
qinghegongzhu:['qinghegongzhu','dc_qinghegongzhu'],
},
translate:{
puyuan:'蒲元',
@ -14044,6 +14131,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dclingxi_info:'出牌阶段开始和结束时你可以将至多X张牌称为“翼”置于你的武将牌上X为你的体力上限。当你失去武将牌上的“翼”时你将手牌数调整至Y张Y为你武将牌上的“翼”所含有的花色数的两倍。',
dczhifou:'知否',
dczhifou_info:'当你使用牌结算完毕后你可以移去至少X张武将牌上的“翼”X为本回合此前发动此技能的次数+1然后选择一名角色并选择一项令其执行每个选项每回合限选择一次①将一张牌称为“翼”置于你的武将牌上②弃置两张牌③失去1点体力。',
dc_qinghegongzhu:'新杀清河公主',
dc_qinghegongzhu_prefix:'新杀',
dczhangji:'长姬',
dczhangji_info:'锁定技一名角色使用多目标牌时若你是此牌的目标之一则你先结算此牌的效果然后你摸X张牌X为此牌的其他目标数。',
dczengou:'谮构',
dczengou_info:'出牌阶段限一次你可以将至多体力上限张牌称为“谮构”交给一名其他角色并摸等量张牌。若如此做其下次体力值增加或使用牌结算完毕后其展示所有手牌然后失去Y点体力Y为其手牌中的“谮构”牌数。',
sp2_yinyu:'隐山之玉',
sp2_huben:'百战虎贲',