Merge branch 'libccy:PR-Branch' into PR-Branch

This commit is contained in:
nonameShijian 2023-09-27 21:41:50 +08:00 committed by GitHub
commit 72f1b237ef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 315 additions and 60 deletions

View File

@ -15,7 +15,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
old_yijiang4:["old_caozhen","old_chenqun","old_zhuhuan",'old_caorui'],
old_yijiang5:["old_caoxiu","old_zhuzhi"],
old_yijiang67:["ol_zhangrang",'old_huanghao','old_liyan'],
old_sp:["old_wanglang","old_maliang","old_machao","zhangliang","jsp_caoren","ol_guansuo","old_zhangxingcai","old_huangfusong","old_wangyun",'old_dingfeng'],
old_sp:["old_wanglang","old_maliang","old_machao","zhangliang","jsp_caoren","old_zhangxingcai","old_wangyun",'old_dingfeng'],
old_yingbian:['junk_simayi','old_yangyan','old_yangzhi'],
old_mobile:["old_caochun",'old_majun'],
},
@ -49,7 +49,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
old_xiaoqiao:['female','wu',3,['tianxiang','hongyan']],
weiyan:['male','shu',4,['kuanggu']],
xiahouyuan:['male','wei',4,['shensu']],
old_huangfusong:['male','qun',4,['fenyue']],
old_majun:["male","wei",3,["xinfu_jingxie1","xinfu_qiaosi"],[]],
old_zhangxingcai:['female','shu',3,['oldshenxian','qiangwu']],
old_fuhuanghou:['female','qun',3,['oldzhuikong','oldqiuyuan']],
@ -82,7 +81,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
old_zhugezhan:["male","shu",3,["old_zuilun","old_fuyin"]],
zhangliang:["male","qun",4,["old_jijun","old_fangtong"]],
ol_zhangrang:['male','qun',3,['xintaoluan'],['sex:male_castrated']],
ol_guansuo:['male','shu',4,['zhengnan','xiefang']],
//ol_manchong:['male','wei',3,['yuce','junxing']],
old_guanqiujian:["male","wei",4,["drlt_zhenrong","drlt_hongju"],[]],
old_wanglang:['male','wei',3,['gushe','jici']],
@ -1039,12 +1037,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ol_zhangrang:'旧张让',
ol_liaohua:'OL廖化',
ol_zhuran:'OL朱然',
ol_guansuo:'OL关索',
ol_manchong:'OL满宠',
old_fuhuanghou:'旧伏寿',
old_caochong:'旧曹冲',
old_guanqiujian:'旧毌丘俭',
old_huangfusong:'旧皇甫嵩',
old_wangyun:'旧王允',
old_zhaoyun:'新杀赵云',
old_zhaoyun_ab:'赵云',

View File

@ -11566,6 +11566,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
locked:false,
audio:"wusheng",
audioname:['re_guanyu','guanzhang','jsp_guanyu','guansuo','re_guanzhang','dc_jsp_guanyu'],
audioname2:{
ol_guansuo:'wusheng_guansuo',
},
enable:["chooseToRespond","chooseToUse"],
filterCard:function(card,player){
if(get.zhu(player,'shouyue')) return true;
@ -11601,6 +11604,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
},
wusheng_guansuo:{audio:2},
"new_yijue":{
audio:"yijue",
enable:"phaseUse",
@ -11698,6 +11702,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
audioname2:{
old_guanzhang:'old_fuhun',
xin_zhangfei:'paoxiao_re_zhangfei',
dc_xiahouba:'paoxiao_xiahouba',
},
audioname:['re_zhangfei','guanzhang','xiahouba','re_guanzhang'],
trigger:{player:'useCard1'},

View File

@ -3216,6 +3216,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
tiaoxin:{
audio:2,
audioname:['sp_jiangwei','xiahouba','re_jiangwei','gz_jiangwei','ol_jiangwei'],
audioname2:{
dc_xiahouba:'tiaoxin_xiahouba',
},
enable:'phaseUse',
usable:1,
filterTarget:function(card,player,target){
@ -3254,6 +3257,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
threaten:1.1
}
},
tiaoxin_xiahouba:{audio:2},
zhiji:{
skillAnimation:true,
animationColor:'fire',
@ -6245,11 +6249,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xinshensu:{
audio:'shensu1',
audioname:['xiahouba','re_xiahouyuan','ol_xiahouyuan'],
audioname2:{
dc_xiahouba:'shensu1_xiahouba',
},
group:['shensu1','shensu2','shensu4']
},
shensu1_xiahouba:{audio:2},
shensu1:{
audio:2,
audioname:['xiahouba','re_xiahouyuan','ol_xiahouyuan'],
audioname2:{
dc_xiahouba:'shensu1_xiahouba',
},
trigger:{player:'phaseJudgeBefore'},
direct:true,
content:function(){
@ -6274,6 +6285,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
shensu2:{
audio:'shensu1',
audioname:['xiahouba','re_xiahouyuan','ol_xiahouyuan'],
audioname2:{
dc_xiahouba:'shensu1_xiahouba',
},
trigger:{player:'phaseUseBefore'},
direct:true,
filter:function(event,player){
@ -6318,6 +6332,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
shensu4:{
audio:'shensu1',
audioname:['xiahouba','re_xiahouyuan','ol_xiahouyuan'],
audioname2:{
dc_xiahouba:'shensu1_xiahouba',
},
trigger:{player:'phaseDiscardBefore'},
direct:true,
content:function(){

View File

@ -110,7 +110,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
panfeng:['male','qun',4,['kuangfu']],
sunshao:['male','wu',3,['bizheng','yidian']],
huangfusong:['male','qun',4,['xinfenyue']],
huangfusong:['male','qun',4,['fenyue']],
yuantanyuanshang:['male','qun',4,['neifa']],
xujing:['male','shu',3,['yuxu','xjshijian']],
@ -123,7 +123,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yangxiu:['male','wei',3,['jilei','danlao']],
chenlin:['male','wei',3,['bifa','songci']],
caohong:['male','wei',4,['yuanhu']],
xiahouba:['male','shu',4,['rebaobian']],
xiahouba:['male','shu',4,['baobian']],
yuanshu:['male','qun',4,['yongsi','weidi']],
sp_diaochan:['female','qun',3,['lihun','rebiyue']],
sp_zhaoyun:['male','qun',3,['ollongdan','chongzhen']],
@ -161,7 +161,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
wenpin:['male','wei',4,['zhenwei']],
daxiaoqiao:['female','wu',3,['new_xingwu','new_luoyan']],
guansuo:['male','shu',4,['xinzhengnan','xiefang']],
guansuo:['male','shu',4,['zhengnan','xiefang']],
tadun:['male','qun',4,['reluanzhan']],
yanbaihu:['male','qun',4,['zhidao','jili']],
chengyu:['male','wei',3,['shefu','benyu']],
@ -177,7 +177,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dongbai:['female','qun',3,['lianzhu','xiehui']],
zhaoxiang:['female','shu',4,['refanghun','refuhan']],
zhaoxiang:['female','shu',4,['fanghun','fuhan']],
mazhong:['male','shu',4,['fuman']],
dongyun:['male','shu',3,['bingzheng','sheyan']],
kanze:['male','wu',3,['xiashu','kuanshi']],
@ -8926,7 +8926,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
}
},
derivation:['oltiaoxin','new_repaoxiao','xinshensu'],
derivation:['tiaoxin','new_repaoxiao','xinshensu'],
},
//范强张达
yuanchou:{
@ -17784,44 +17784,36 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.popup(result.control);
game.log(player,'获得了技能','#g【'+get.translation(result.control)+'】');
},
ai:{
threaten:1.3
},
ai:{threaten:2.5},
intro:{
content:'已因$发动过技能',
},
derivation:['new_rewusheng','xindangxian','rezhiman'],
},
zhengnan:{
audio:1,
derivation:['new_rewusheng','dangxian','rezhiman'],
audio:2,
trigger:{global:'dieAfter'},
frequent:true,
content:function(){
'step 0'
player.draw(3);
var list=[];
if(!player.hasSkill('new_rewusheng')){
list.push('new_rewusheng');
}
if(!player.hasSkill('dangxian')){
list.push('dangxian');
}
if(!player.hasSkill('rezhiman')){
list.push('rezhiman');
}
if(list.length){
player.chooseControl(list).set('prompt','选择获得一项技能');
var list=lib.skill.zhengnan.derivation.filter(skill=>!player.hasSkill(skill));
if(list.length==1) event._result={control:list[0]};
else if(list.length){
player.chooseControl(list).set('prompt','选择获得一项技能').set('ai',function(){
if(_status.event.controls.contains('dangxian')) return 'dangxian';
return _status.event.controls[0];
});
}
else event.finish();
'step 1'
if(result.control){
player.addSkillLog(result.control);
player.popup(result.control);
}
},
ai:{
threaten:2.4
},
derivation:['new_rewusheng','dangxian','rezhiman'],
ai:{threaten:2},
},
xiefang:{
mod:{
@ -23823,7 +23815,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.line(target,'fire');
event.draws=game.filterPlayer(function(current){
if(current==target) return true;
return ['guansuo','old_guansuo'].contains(current.name)||['guansuo','old_guansuo'].contains(current.name2);
return current.name=='guansuo'||current.name2=='guansuo';
});
player.gainPlayerCard(target,'he',true);
}
@ -24293,7 +24285,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
caoshuang:['caoshuang','ns_caoshuang'],
caoang:['caoang','yj_caoang','tw_caoang'],
caohong:['tw_re_caohong','caohong','tw_caohong','yj_caohong'],
xiahouba:['xiahouba','tw_xiahouba'],
xiahouba:['xiahouba','tw_xiahouba','dc_xiahouba'],
maliang:['maliang','re_maliang','tw_maliang','ol_maliang','old_maliang'],
dingfeng:['dingfeng','tw_dingfeng','old_dingfeng'],
zumao:['zumao','tw_zumao'],
@ -24311,7 +24303,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
fuwan:['fuwan','sp_fuwan','tw_fuwan'],
huaxin:['ol_huaxin','huaxin','sp_huaxin'],
xujing:['xujing','tw_xujing','sp_xujing'],
zhaoxiang:['zhaoxiang','tw_zhaoxiang'],
zhaoxiang:['zhaoxiang','tw_zhaoxiang','dc_zhaoxiang'],
dengzhi:['ol_dengzhi','re_dengzhi','tw_dengzhi','dengzhi'],
wangrong:['wangrong','ol_wangrong'],
zongyu:['tw_zongyu','sp_zongyu','zongyu'],
@ -24330,7 +24322,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
huojun:['dc_huojun','huojun','tw_huojun'],
zhaoyǎn:['dc_zhaoyǎn','zhaoyǎn'],
furong:['ol_furong','tw_furong','furong'],
daxiaoqiao:['tw_daxiaoqiao','daxiaoqiao'],
daxiaoqiao:['tw_daxiaoqiao','daxiaoqiao','dc_daxiaoqiao'],
zhugeguo:['tw_zhugeguo','zhugeguo'],
wanglang:['wanglang','ol_wanglang','old_wanglang'],
tengfanglan:['dc_tengfanglan','tengfanglan'],
@ -24470,7 +24462,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
panfeng:'OL潘凤',
gz_panfeng:'潘凤',
zumao:'祖茂',
daxiaoqiao:'大小乔',
daxiaoqiao:'大小乔',
cuiyan:'崔琰',
wenpin:'文聘',
jsp_huangyueying:'SP黄月英',
@ -24501,7 +24493,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
caoying:"曹婴",
simahui:"司马徽",
baosanniang:"OL鲍三娘",
baosanniang:"鲍三娘",
pangdegong:"手杀庞德公",
zhaotongzhaoguang:"手杀赵统赵广",
majun:"马钧",
@ -25080,7 +25072,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
spyanhuo_info:'当你死亡时,你可增加如下全局技能:当有角色使用【杀】时,此【杀】的伤害值基数+1。',
xiaoxi:'骁袭',
xiaoxi_info:'当你登场时,你可以视为使用一张【杀】。',
quyi:'OL麴义',
quyi:'麴义',
wolongfengchu:'卧龙凤雏',
youlong:'游龙',
youlong_info:'转换技,阴,每轮限一次,你可以废除你的一个装备栏,视为使用一张未以此法使用过的普通锦囊牌;阳,每轮限一次,你可以废除你的一个装备栏,视为使用一张未以此法使用过的基本牌。',

View File

@ -4,6 +4,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'sp2',
connect:true,
character:{
dc_zhaoxiang:['female','shu',4,['refanghun','refuhan']],
ol_guansuo:['male','shu',4,['xinzhengnan','xiefang']],
dc_jikang:['male','wei',3,['new_qingxian','dcjuexiang']],
dc_jsp_guanyu:['male','wei',4,['new_rewusheng','dcdanji']],
dc_mengda:['male','wei',4,['dclibang','dcwujie']],
dc_zhangmancheng:['male','qun',4,['dclvecheng','dczhongji'],['unseen']],
@ -107,10 +110,103 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_xuzhou:['re_taoqian','caosong','zhangmiao','qiuliju'],
sp_zhongyuan:['re_hucheer','re_zoushi','caoanmin','re_dongcheng'],
sp_xiaohu:['haomeng','yanfuren','yanrou','dc_zhuling'],
sp_decade:['caobuxing','re_maliang','xin_baosanniang'],
sp_decade:['caobuxing','re_maliang','xin_baosanniang','dc_jikang','ol_guansuo','dc_zhaoxiang'],
}
},
skill:{
//十周年嵇康
dcjuexiang: {
derivation: 'dccanyun',
audio: 'juexiang',
trigger: { player: 'die' },
forced: true,
forceDie: true,
skillAnimation: true,
animationColor: 'water',
content: function () {
'step 0'
if (trigger.source && trigger.source.isIn()) {
trigger.source.discard(trigger.source.getCards('e'));
trigger.source.loseHp();
}
'step 1'
player.chooseTarget('绝响:是否令一名其他角色获得技能〖残韵〗?', lib.filter.notMe).set('ai', function (target) {
return get.attitude(_status.event.player, target);
}).set('forceDie', true);
'step 2'
if (result.bool) {
var target = result.targets[0];
player.line(target, 'thunder');
target.addSkillLog('dccanyun');
}
},
},
dccanyun: {
enable: 'phaseUse',
filter: function (event, player) {
return game.hasPlayer(function (target) {
return lib.skill.dccanyun.filterTarget(null, player, target);
});
},
filterTarget: function (card, player, target) {
var list = [player];
player.getAllHistory('useSkill', function (evt) {
if (evt.skill == 'dccanyun') list.addArray(evt.targets);
});
return !list.includes(target) && !ui.selected.targets.length;
},
selectTarget: [1, 2],
targetprompt: function (target) {
var pe = _status.event.player.countCards('e', function (card) {
return ui.selected.cards.includes(card) == false;
});
var te = target.countCards('e');
if (pe > te) return '回复体力';
else if (pe == te) return '摸一张牌';
else if (pe < te) return '失去体力';
},
filterCard: true,
position: 'he',
check: function (cardx) {
var player = _status.event.player;
var number = game.countPlayer(function (target) {
if (player == target) return false;
var pe = player.countCards('e', function (card) {
return card != cardx && ui.selected.cards.includes(card) == false;
});
var te = target.countCards('e');
if (pe > te && target.isDamaged() && get.attitude(player, target) > 2) return true;
else if (pe < te && get.attitude(player, target) < 0) return true;
return false;
});
if (ui.selected.cards.length < number) return 6 - get.value(cardx);
else return 0;
},
usable: 1,
content: function () {
var pe = player.countCards('e');
var te = target.countCards('e');
if (pe > te) target.recover();
else if (pe == te) target.draw();
else if (pe < te) target.loseHp();
},
contentAfter: function () {
if (player.hp == 1) player.draw();
},
ai: {
order: 10,
result: {
target: function (player, target) {
var pe = player.countCards('e');
var te = target.countCards('e');
if (pe > te && target.isDamaged()) return 2;
else if (pe == te) return 1;
else if (pe < te) return -2.5;
else return 0;
},
},
},
},
//董翓
dcjiaoxia:{
mod:{
@ -5439,7 +5535,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
else event.finish();
'step 2'
var list=game.filterPlayer(function(current){
return current.name=='guansuo'||current.name2=='guansuo';
return current.name=='ol_guansuo'||current.name2=='ol_guansuo';
});
if(list.length) game.asyncDraw(list);
else event.finish();
@ -5761,13 +5857,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
charlotte:true,
filter:function(event,player){
return event.decadexushen==true&&!game.hasPlayer(function(current){
return current.name=='guansuo'||current.name2=='guansuo';
return current.name=='ol_guansuo'||current.name2=='ol_guansuo';
});
},
content:function(){
'step 0'
player.chooseTarget(lib.filter.notMe,'许身:是否令一名其他角色选择是否将其武将牌替换为“关索”并令其摸三张牌?').set('ai',function(target){
return get.attitude(_status.event.player,target)-4;
return get.attitude(_status.event.player,target);
});
'step 1'
if(!result.bool){
@ -5787,11 +5883,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
else event.goto(4);
'step 3'
target.reinit(result.control,'guansuo');
if(target.name=='guansuo'&&target.group!='shu') target.changeGroup('shu');
target.reinit(result.control,'ol_guansuo');
if(target.name=='ol_guansuo'&&target.group!='shu') target.changeGroup('shu');
if(_status.characterlist){
_status.characterlist.add(result.control);
_status.characterlist.remove('guansuo');
_status.characterlist.remove('ol_guansuo');
}
'step 4'
target.draw(3);
@ -10216,7 +10312,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
juanhui2:'绢绘',
juanhui2_backup:'绢绘',
juanhui_info:'结束阶段,你可以选择一名其他角色。记录该角色下回合的出牌阶段里使用的基本牌和普通锦囊牌(每种牌名限记一次),你的下回合出牌阶段,可将一张手牌当这些牌里的任意一张牌使用(每张限使用一次,且【杀】不计次数)。当"绢绘"的牌全部用完时你回复1点体力并将手牌摸至三张。',
re_maliang:'马良',
re_maliang:'新杀马良',
rexiemu:'协穆',
rexiemu_info:'结束阶段,若全场没有“协穆”标记,你可以选择一名角色获得“协穆”标记直到你的下回合开始。你或该角色在各自的回合外使用或打出手牌时,你与其各摸一张牌(每回合限一次)。',
heli:'贺励',
@ -10236,8 +10332,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
tuxing:'图兴',
tuxing2:'图兴',
tuxing_info:'锁定技当你废除一个装备栏时你加1点体力上限并回复1点体力。然后若你所有的装备栏均已被废除则你减4点体力上限且本局游戏内造成的伤害+1。',
re_hejin:'何进',
xin_baosanniang:'鲍三娘',
re_hejin:'新杀何进',
xin_baosanniang:'新杀鲍三娘',
decadexushen:"许身",
decadexushen2:'许身',
decadexushen_info:"限定技当你进入濒死状态后你可以回复1点体力并获得技能“镇南”然后如果你脱离濒死状态且“关索”不在场你可令一名其他角色选择是否用“关索”代替其武将并令其摸三张牌。",
@ -10278,8 +10374,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
quanbian:'权变',
quanbian2:'权变',
quanbian_info:'当你于出牌阶段内使用/打出手牌时,若此牌有花色且你本回合内未使用/打出过该花色的其他手牌则你可以选择一项①摸一张牌。②将牌堆顶X张牌中的一张置于牌堆底X为你的体力上限。若你发动此技能则你本回合内不能再使用与此牌花色相同的手牌。',
re_hansui:'韩遂',
re_quyi:'麴义',
re_hansui:'新杀韩遂',
re_quyi:'新杀麴义',
refuqi:'伏骑',
refuqi_info:'锁定技当你使用牌时你令所有距离为1的其他角色不能使用或打出牌响应此牌。',
hanfu:'韩馥',
@ -10322,7 +10418,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zongfan_info:'觉醒技。结束阶段若你本回合内因〖谋逆〗使用过【杀】且未跳过本回合的出牌阶段则你将任意张牌交给一名其他角色然后加X点体力上限并回复X点体力X为你以此法给出的牌数且至多为5。最后失去〖谋逆〗并获得〖战孤〗。',
zhangu:'战孤',
zhangu_info:'锁定技准备阶段若你的体力上限大于1且没有手牌/装备区内没有牌则你减1点体力上限然后从牌堆中获得三张类型不同的牌。',
re_niujin:'牛金',
re_niujin:'新杀牛金',
recuorui:'摧锐',
recuorui_info:'限定技出牌阶段你可以依次获得至多X名角色的各一张手牌X为你的体力值。',
reliewei:'裂围',
@ -10531,6 +10627,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dcdanji_info:'觉醒技。准备阶段若你的手牌数大于体力值你减1点体力上限将体力回复至体力上限然后获得〖马术〗和〖怒嗔〗。',
dcnuchen:'怒嗔',
dcnuchen_info:'出牌阶段限一次。你可以展示一名其他角色的一张手牌然后选择一项1.弃置任意张该花色的牌对其造成等量伤害2.获得该角色手牌中所有此花色的牌。',
dc_jikang:'新杀嵇康',
dcjuexiang:'绝响',
dcjuexiang_info:'当你死亡时杀死你的角色弃置其装备区内的所有牌并失去1点体力然后你可以令一名其他角色获得〖残韵〗。',
dccanyun:'残韵',
dccanyun_info:'每名角色限一次。出牌阶段你可以弃置一张牌并选择一名其他角色然后若其装备区里的牌数小于你其回复1点体力大于你其失去1点体力等于你其摸一张牌。若你的体力值为1你摸一张牌。',
ol_guansuo:'新杀关索',
dc_zhaoxiang:'新杀赵襄',
sp_whlw:"文和乱武",
sp_zlzy:"逐鹿中原",

View File

@ -1087,6 +1087,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
firstDo:true,
audioname2:{old_guanzhang:'old_fuhun'},
audioname:['re_zhangfei','guanzhang','xiahouba'],
audioname2:{
dc_xiahouba:'paoxiao_xiahouba',
},
trigger:{player:'useCard1'},
forced:true,
filter:function(event,player){
@ -1109,6 +1112,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
}
},
paoxiao_xiahouba:{audio:2},
guanxing_fail:{},
guanxing:{
audio:2,

View File

@ -4,6 +4,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'xianding',
connect:true,
character:{
old_huangfusong:['male','qun',4,['xinfenyue']],
dc_xiahouba:['male','shu',4,['rebaobian']],
dc_daxiaoqiao:['female','wu',3,['dcxingwu','dcluoyan']],
tianshangyi:['female','wei',3,['dcposuo','dcxiaoren'],['unseen']],
sunlingluan:['female','wu',3,['dclingyue','dcpandi']],
dc_wangjun:['male','qun',4,['dctongye','dcchangqu']],
@ -75,13 +78,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
characterSort:{
xianding:{
sp2_huben:['wangshuang','wenyang','re_liuzan','dc_huangzu','wulan','leitong','chentai','dc_duyu','dc_wangjun'],
sp2_huben:['wangshuang','wenyang','re_liuzan','dc_huangzu','wulan','leitong','chentai','dc_duyu','dc_wangjun','dc_xiahouba','old_huangfusong'],
sp2_shengun:["puyuan","guanlu","gexuan",'wufan','re_zhangbao','dukui','zhaozhi','zhujianping','dc_zhouxuān','zerong'],
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'],
sp2_zhangtai:['guozhao','fanyufeng','ruanyu','yangwan','re_panshu'],
sp2_jinse:['caojinyu','re_sunyi','re_fengfangnv','caohua','laiyinger','zhangfen'],
sp2_yinyu:['zhouyi','luyi','sunlingluan'],
sp2_wangzhe:['dc_daxiaoqiao'],
sp2_doukou:['re_xinxianying','huaman','xuelingyun','dc_ruiji','duanqiaoxiao','tianshangyi'],
sp2_jichu:['zhaoang','dc_liuye','dc_wangyun','yanghong','huanfan','xizheng'],
sp2_yuxiu:['dongguiren','dc_tengfanglan','zhangjinyun','zhoubuyi'],
@ -90,6 +94,113 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
skill:{
//十周年二乔
dcxingwu: {
intro: {
content: 'expansion',
markcount: 'expansion',
onunmark: function (storage, player) {
player.removeAdditionalSkill('dcluoyan');
},
},
onremove: function (player, skill) {
var cards = player.getExpansions(skill);
if (cards.length) player.loseToDiscardpile(cards);
},
audio: 'xingwu',
trigger: { player: 'phaseDiscardBegin' },
filter: function (event, player) {
return player.countCards('h');
},
direct: true,
content: function () {
'step 0'
player.chooseCard('h', get.prompt('dcxingwu'), '将一张手牌作为“舞”置于武将牌上').set('ai', function (card) {
var att = 1, list = [];
for (var i of player.getExpansions('dcxingwu')) {
if (!list.includes(get.suit(i))) list.push(get.suit(i));
}
if (!list.includes(get.suit(card))) att = 2;
if (_status.event.goon) return (20 - get.value(card)) * att;
return (7 - get.value(card)) * att;
}).set('goon', player.needsToDiscard() || player.getStorage('dcxingwu').length == 2);
'step 1'
if (result.bool) {
player.logSkill('dcxingwu');
var cards = result.cards;
player.addToExpansion(cards, player, 'give').gaintag.add('dcxingwu');
}
'step 2'
game.delayx();
if (player.getExpansions('dcxingwu').length > 2) {
player.chooseButton(['是否移去三张“舞”并发射核弹?', player.getExpansions('dcxingwu')], 3).ai = (button) => {
if (game.hasPlayer(function (current) {
return get.attitude(player, current) < 0;
})) return 1;
return 0;
}
}
else event.finish();
'step 3'
if (result.bool) {
event.cards = result.links;
var list = [], str = [
'<span class=\'texiaotext\' style=\'color:#66FF00\'>小型</span>',
'<span class=\'texiaotext\' style=\'color:#6666FF\'>中型</span>',
'<span class=\'texiaotext\' style=\'color:#FF0000\'>巨型</span>'
];
for (var i of event.cards) {
if (!list.includes(get.suit(i))) list.push(get.suit(i));
}
player.chooseTarget('请选择' + str[list.length - 1] + '核弹的投射的目标(伤害:' + list.length + '点)', lib.filter.notMe, true).ai = (target) => {
var att = 1;
if (target.sex == 'male') att = 1.5;
if (target.hp == target.sex == 'male' ? 2 : 1) att *= 1.2;
if (get.mode() == 'identity' && player.identity == 'fan' && target.isZhu) att *= 3;
return (-get.attitude(player, target)) * att * (Math.max(1, target.countCards('e')));
}
}
'step 4'
if (result.bool) {
var list = [];
for (var i of event.cards) {
if (!list.includes(get.suit(i))) list.push(get.suit(i));
}
player.loseToDiscardpile(event.cards);
player.logSkill('dcxingwu', result.targets[0]);
player.discardPlayerCard(result.targets[0], 'e', result.targets[0].countCards('e'), true);
result.targets[0].damage(result.targets[0].sex == 'female' ? 1 : list.length);
}
},
},
dcluoyan: {
derivation: ['retianxiang', 'liuli'],
init: function (player) {
if (player.getStorage('dcxingwu').length) player.addAdditionalSkill('dcluoyan', ['retianxiang_daxiaoqiao', 'liuli_daxiaoqiao']);
else player.removeAdditionalSkill('dcluoyan');
},
onremove: function (player) {
player.removeAdditionalSkill('dcluoyan');
},
trigger: {
player: ['loseAfter', 'loseAsyncAfter', 'addToExpansionAfter'],
},
filter: function (event, player) {
var cards = player.getExpansions('dcxingwu'), skills = player.additionalSkills.dcluoyan;
if ((cards.length && skills && skills.length) || (!cards.length && (!skills || !skills.length))) {
return false;
}
return true;
},
forced: true,
content: function () {
lib.skill.twpingting.init(player, 'dcluoyan');
},
},
retianxiang_daxiaoqiao: {
audio: 'tianxiang_daxiaoqiao',
inherit: 'retianxiang',
},
//田尚衣
dcposuo:{
onChooseToUse:function(event){
@ -12141,6 +12252,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dcposuo_info:'出牌阶段,若你本阶段未造成过伤害,则你可以将一张你本阶段未以此法使用过的花色的手牌当作任意一张存在于游戏的同花色伤害牌使用。',
dcxiaoren:'绡刃',
dcxiaoren_info:'每回合限一次当你造成伤害后你可以进行判定若结果为红色你可以令一名角色回复1点体力黑色你可以对受伤角色的上家或下家造成1点伤害然后你可以重复此方向的伤害流程直到有角色因此死亡或下个目标角色为你。',
dc_daxiaoqiao:'新杀大乔小乔',
dcxingwu:'星舞',
dcxingwu_info:'弃牌阶段开始时你可以将一张手牌置于武将牌上称为“星舞”。若你的“星舞”牌达到三张则你可移去三张“星舞”弃置一名其他角色装备区里的所有牌然后对其造成X点伤害X为移去的“星舞”牌的花色数若为女性角色则改为1点伤害。',
dcluoyan:'落雁',
dcluoyan_info:'锁定技,若你有“星舞”牌,你视为拥有技能〖天香〗和〖流离〗。',
dc_xiahouba:'新杀夏侯霸',
old_huangfusong:'新杀皇甫嵩',
sp2_yinyu:'隐山之玉',
sp2_huben:'百战虎贲',
@ -12149,6 +12267,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp2_zhangtai:'章台春望',
sp2_jinse:'锦瑟良缘',
sp2_bizhe:'笔舌如椽',
sp2_wangzhe:'往者可荐',
sp2_doukou:'豆蔻梢头',
sp2_jichu:'计将安出',
sp2_yuxiu:'钟灵毓秀',

View File

@ -2202,6 +2202,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
forced:true,
audio:'dangxian',
audioname:['guansuo','xin_liaohua','re_liaohua'],
audioname2:{
ol_guansuo:'dangxian_guansuo',
},
content:function(){
var next=player.phaseUse();
next.xindangxian=true;
@ -2242,6 +2245,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
},
dangxian_guansuo:{audio:2},
xinjunxing:{
inherit:'junxing',
audio:'junxing',
@ -9881,6 +9885,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
rezhiman:{
audio:'zhiman',
audioname:['guansuo','re_masu'],
audioname2:{
ol_guansuo:'zhiman_guansuo',
},
trigger:{source:'damageBegin2'},
filter:function(event,player){
return player!=event.player;
@ -9907,6 +9914,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger.cancel();
}
},
zhiman_guansuo:{audio:2},
resanyao:{
audio:2,
enable:'phaseUse',
@ -13630,7 +13638,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhuzhi:['re_zhuzhi','zhuzhi','xin_zhuzhi','old_zhuzhi'],
liuyu:['dc_liuyu','liuyu','ol_liuyu'],
zhangrang:['zhangrang','ol_zhangrang','junk_zhangrang'],
jikang:['re_jikang','jikang'],
jikang:['re_jikang','jikang','dc_jikang'],
xinxianying:['re_xinxianying','xinxianying','ol_xinxianying','sp_xinxianying'],
gongsunyuan:['re_gongsunyuan','gongsunyuan'],
zhoucang:['re_zhoucang','xin_zhoucang','zhoucang'],

View File

@ -39872,14 +39872,25 @@
});
}
if(info.inherit){
const skill=lib.skill[info.inherit];
if(skill) Object.keys(skill).forEach(value=>{
if(info[value]!=undefined) return;
if(value=='audio'&&(typeof info[value]=='number'||typeof info[value]=='boolean')) info[value]=info.inherit;
else info[value]=skill[value];
});
if(lib.translate[i]==undefined) lib.translate[i]=lib.translate[info.inherit];
if(lib.translate[iInfo]==undefined) lib.translate[iInfo]=lib.translate[`${info.inherit}_info`];
var inheritHistory=[];
doInherit(i);
function doInherit(i){
const info=lib.skill[i],iInfo=`${i}_info`;
if(!info.inherit) return;
if(inheritHistory.includes(info.inherit)) return;
inheritHistory.push(info.inherit);
const inheritInfo=lib.skill[info.inherit];
if(inheritInfo) Object.keys(inheritInfo).forEach(value=>{
if(info[value]!=undefined) return;
if(value=='audio'&&(typeof info[value]=='number'||typeof info[value]=='boolean')) info[value]=info.inherit;
else info[value]=inheritInfo[value];
});
if(lib.translate[i]==undefined) lib.translate[i]=lib.translate[info.inherit];
if(lib.translate[iInfo]==undefined) lib.translate[iInfo]=lib.translate[`${info.inherit}_info`];
doInherit(info.inherit);
}
}
if(info.limited){
if(info.mark===undefined) info.mark=true;

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 306 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 287 KiB