Merge branch 'libccy:PR-Branch' into PR-Branch
This commit is contained in:
commit
72f1b237ef
|
@ -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:'赵云',
|
||||
|
|
|
@ -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'},
|
||||
|
|
|
@ -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(){
|
||||
|
|
|
@ -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:'转换技,阴,每轮限一次,你可以废除你的一个装备栏,视为使用一张未以此法使用过的普通锦囊牌;阳,每轮限一次,你可以废除你的一个装备栏,视为使用一张未以此法使用过的基本牌。',
|
||||
|
|
129
character/sp2.js
129
character/sp2.js
|
@ -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:"逐鹿中原",
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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:'钟灵毓秀',
|
||||
|
|
|
@ -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'],
|
||||
|
|
27
game/game.js
27
game/game.js
|
@ -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 |
Loading…
Reference in New Issue