统率模式

This commit is contained in:
libccy 2015-10-21 01:44:00 +08:00
parent 3157efb94b
commit d594ad0b80
28 changed files with 2582 additions and 173 deletions

View File

@ -3,3 +3,4 @@
单人控制改进
新武将
修bug
统率模式(战棋子模式)

View File

@ -397,8 +397,14 @@ card.hearth={
}
if(!targets.length) event.finish();
'step 1'
var current=targets.randomGet(event.current);
event.current.line(current);
var current;
if(targets.length>1){
current=targets.randomGet(event.current);
event.current.line(current);
}
else{
current=targets[0];
}
var hs=current.get('h');
if(hs.length){
current.discard(hs.randomGet());

View File

@ -163,7 +163,7 @@ character.diy={
var cards=player.get('he',{color:'black'});
for(var i=0;i<cards.length;i++){
var type=get.type(cards[i]);
if(type=='basic'||type=='equip') return true;
if(type=='basic') return true;
}
return false;
},
@ -174,7 +174,7 @@ character.diy={
filterCard:function(card){
if(get.color(card)!='black') return false;
var type=get.type(card);
return type=='basic'||type=='equip';
return type=='basic';
},
filterTarget:function(card,player,target){
return lib.filter.filterTarget({name:'bingliang'},player,target);
@ -780,7 +780,7 @@ character.diy={
jiaoxia_info:'每当你成为红色牌的目标,你可以摸一张牌',
diykuanggu_info:'锁定技,每当你造成一点伤害,你在其攻击范围内,你回复一点体力,否则你摸一张牌',
diyqiangxi_info:'出牌阶段,你可以自减一点体力或弃一张武器牌,然后你对你攻击范围内的一名角色造成一点伤害并弃置其一张牌,每回合限一次。',
diyduanliang_info:'出牌阶段限一次,你可以将一张黑色的基本牌或装备牌当兵粮寸断对一名角色使用然后摸一张牌。你的兵粮寸断可以指定距离2以内的角色作为目标',
diyduanliang_info:'出牌阶段限一次,你可以将一张黑色的基本牌当兵粮寸断对一名角色使用然后摸一张牌。你的兵粮寸断可以指定距离2以内的角色作为目标',
guihan_info:'限定技,当你进入濒死状态时,可以指定一名男性角色与其各回复一点体力并摸两张牌',
luweiyan_info:'你可以将一张装备牌当水淹七军使用',
xiongzi_info:'锁定技你于摸牌阶段额外摸X+1张牌X为你装备区牌数的一半向下取整',

View File

@ -25,7 +25,7 @@ character.hearth={
hs_malorne:['male','wu',3,['enze','chongsheng'],['fullskin']],
hs_ronghejuren:['male','shu',8,[],['fullskin']],
hs_wujiyuansu:['male','qun',3,['wujiwuji'],['fullskin']],
hs_edwin:['male','qun',3,['lianzhan'],['fullskin']],
hs_mijiaojisi:['female','qun',3,['kuixin'],['fullskin']],
hs_huzhixiannv:['female','wu',3,['jingmeng','qingliu'],['fullskin']],
// hs_tgolem:['male','qun',4,['guozai'],['fullskin']],
@ -230,6 +230,17 @@ character.hearth={
}
},
shengdun:{
trigger:{player:'phaseBegin'},
forced:true,
filter:function(event,player){
return !player.hujia;
},
content:function(){
player.changeHujia();
player.update();
},
},
shengdun_old:{
trigger:{player:'phaseBegin'},
forced:true,
silent:true,
@ -249,7 +260,7 @@ character.hearth={
},
group:'shengdun2'
},
shengdun2:{
shengdun_old2:{
trigger:{player:'damageBegin'},
forced:true,
filter:function(event,player){
@ -332,7 +343,7 @@ character.hearth={
threaten:1.5
}
},
wujiwuji:{
lianzhan:{
trigger:{player:'phaseUseEnd'},
frequent:true,
filter:function(event,player){
@ -1802,7 +1813,7 @@ character.hearth={
hs_malorne:'玛洛恩',
hs_ronghejuren:'熔核巨人',
hs_wujiyuansu:'无羁元素',
hs_edwin:'艾德温',
hs_mijiaojisi:'秘教祭司',
hs_huzhixiannv:'湖之仙女',
hs_tgolem:'图腾魔像',
@ -1826,16 +1837,16 @@ character.hearth={
huanwu:'唤雾',
huanwu_info:'出牌阶段限一次,你可以令一名角色增加一点体力上限,回复一点体力,并摸两张牌(每名角色限发动一次)',
fengnu:'风怒',
fengnu_info:'锁定技,你使用的任何卡牌无数量及距离限制;当你于回合内重复使用卡牌时,你摸一张牌',
fengnu_info:'锁定技,你使用的任何卡牌无数量及距离限制;当你于回合内重复使用同名卡牌时,你摸一张牌',
shengdun:'圣盾',
shengdun2:'圣盾',
shengdun_info:'锁定技,你受到的首次伤害-1此技能于你回合开始阶段重置',
shengdun_info:'锁定技,回合开始阶段,若你没有护甲,你获得一点护甲',
jingmeng:'镜梦',
jingmeng_info:'每当你于回合内使用第一张牌时,你可以从牌堆中随机获得一张与之类型相同的牌',
kuixin:'窥心',
kuixin_info:'回合结束阶段你可以将你的手牌与一名其他角色交换手牌数之差不能多于1',
wujiwuji:'无羁',
wujiwuji_info:'出牌阶段结束时你可以摸X张牌X为你本回合使用的卡牌数',
lianzhan:'连斩',
lianzhan_info:'出牌阶段结束时你可以摸X张牌X为你本回合使用的卡牌数',
yanshu:'炎术',
yanshu_info:'出牌阶段限一次,你可以弃置一张非基本牌,并获得一张流星火雨',
bingshuang:'冰霜',

View File

@ -1060,7 +1060,8 @@ character.mountain={
trigger:{player:'damageEnd'},
frequent:true,
filter:function(event,player){
return player.storage.huashen&&player.storage.huashen.unowned;
return player.storage.huashen&&player.storage.huashen.unowned&&
player.storage.huashen.unowned.length>0;
},
content:function(){
for(var i=0;i<trigger.num;i++){

View File

@ -1,4 +1,4 @@
window.rank={
window.characterRank={
s:[
'swd_muyun',
'swd_zhaoyun',
@ -45,10 +45,13 @@ window.rank={
'pal_zixuan',
'shen_lvmeng',
'swd_tuwei',
'liufeng',
'swd_kangnalishi',
'swd_xiarou',
],
a:[
'yxs_diaochan',
'swd_linyue',
'swd_wangsiyue',
'swd_lanyin',
'swd_hengai',
'jg_liubei',
@ -58,11 +61,10 @@ window.rank={
'shen_zhugeliang',
'gjqt_fanglansheng',
'gjqt_xiayize',
'swd_fuyan',
'hs_yngvar',
're_huanggai',
're_zhangliao',
'hs_wujiyuansu',
'hs_edwin',
'hs_antonidas',
'chenlin',
'swd_chenjingchou',
@ -77,11 +79,18 @@ window.rank={
'yxs_wuzetian',
'yxs_caocao',
'sp_pangtong',
'liubiao',
'jianyong',
'zhoutai',
],
am:[
'manchong',
'swd_linyue',
'swd_fuyan',
'pal_xuejian',
'swd_maixing',
'hs_zhouzhuo',
'xunyou',
're_daqiao',
'swd_fengyu',
'swd_xuanyuanjiantong',
@ -92,10 +101,10 @@ window.rank={
'gjqt_xiangling',
'diy_zhenji',
'gjqt_yuewuyi',
'diy_xuhuang',
'hs_magni',
're_zhouyu',
'dengai',
'zhonghui',
'hs_ronghejuren',
'hs_wvelen',
'swd_yuchiyanhong',
@ -118,10 +127,19 @@ window.rank={
'zhangzhang',
'xk_guyuexuan',
'pal_zhaoliner',
'swd_xiarou',
'caozhi',
'caochong',
'xin_fazheng',
'wuguotai',
'chengong',
'bulianshi',
'caifuren',
'yj_jushou',
],
bp:[
'yxs_mozi',
'zhangsong',
'zhuhuan',
'yxs_aijiyanhou',
'yxs_bole',
'swd_zhiyin',
@ -172,9 +190,22 @@ window.rank={
'jiaxu',
'xk_jinji',
'maliang',
'zhangchunhua',
'xushu',
'xin_xushu',
'lingtong',
'wangyi',
'chenqun',
'guyong',
'jg_huangyueying',
'diy_xuhuang',
],
b:[
'pal_linyueru',
'fuhuanghou',
'xin_masu',
'masu',
'handang',
'swd_youzhao',
'swd_fu',
'swd_yeyaxi',
@ -188,7 +219,6 @@ window.rank={
'ganfuren',
'hs_huzhixiannv',
'jg_simayi',
'jg_huangyueying',
'jg_zhugeliang',
'diy_dianwei',
'sp_sunshangxiang',
@ -217,8 +247,16 @@ window.rank={
'diy_zhangjiao',
'dongzhuo',
'niutou',
'fazheng',
'yufan',
'guanzhang',
'diy_yuji',
'yuejin',
],
bm:[
'guohuai',
'sunluban',
'caozhang',
'pal_lixiaoyao',
'zhouyu',
'guanyinping',
@ -228,11 +266,9 @@ window.rank={
'shen_guanyu',
'diy_feishi',
'jiangfei',
'yuejin',
're_caocao',
're_lvbu',
'chendong',
'diy_yuji',
're_ganning',
'xiahouba',
'simayi',
@ -251,8 +287,12 @@ window.rank={
'hs_guldan',
'diy_lukang',
'old_zhonghui',
'xusheng',
'madai',
'liru',
],
c:[
'huaxiong',
'xiahouyuan',
'caoren',
'huangzhong',
@ -267,10 +307,11 @@ window.rank={
'caocao',
'lvbu',
'xiaoqiao',
'yanwen',
'dianwei',
],
d:[
'menghuo',
'zhoutai',
'weiyan',
'guanyu',
'xuzhu',
@ -280,8 +321,183 @@ window.rank={
'zhangbao',
'gongsunzan',
'yangxiu',
'yanwen',
'dianwei',
'pangde',
]
'yujin',
],
legend:[
'swd_muyun',
'shen_caocao',
'swd_zhaoyun',
'swd_septem',
'hs_sthrall',
'hs_malorne',
'swd_yuwentuo',
'swd_duguningke',
'swd_guyue',
'swd_yuxiaoxue',
'swd_huanglei',
'pal_liumengli',
'pal_yuntianhe',
'swd_xuanyuanjianxian',
'diaochan',
'gjqt_aruan',
'hs_neptulon',
'shen_lvbu',
'swd_qi',
'swd_huzhongxian',
'jg_liubei',
'hs_medivh',
'shen_zhugeliang',
'yxs_wuzetian',
'sp_pangtong',
'swd_murongshi',
'shen_lvmeng',
'chenlin',
'hs_zhouzhuo',
'diy_caiwenji',
're_luxun',
'shen_zhaoyun',
'zhangchunhua',
'shen_zhouyu',
'shen_simayi',
'shen_guanyu',
],
epic:[
'xk_fujianhan',
'diy_zhenji',
'swd_jipeng',
'swd_cheyun',
'pal_xuanxiao',
'old_zhonghui',
'swd_tuobayuer',
'gjqt_bailitusu',
'xunyu',
'swd_jiliang',
'liuxie',
'hs_totemic',
'zhangxingcai',
'swd_muyue',
'pal_zixuan',
'hs_bchillmaw',
'swd_lanyin',
'gjqt_xiayize',
'hs_edwin',
'hs_antonidas',
'swd_chenjingchou',
'yxs_yangyuhuan',
'gjqt_fengqingxue',
'pal_xuejian',
'xunyou',
're_daqiao',
're_zhouyu',
'hs_wvelen',
'zhugeke',
'jg_xiahouyuan',
'swd_kama',
'swd_anka',
'xk_guyuexuan',
'caozhi',
'wuguotai',
'yxs_aijiyanhou',
'swd_zhiyin',
're_guanyu',
'sp_diaochan',
'swd_huanyuanzhi',
'swd_kangnalishi',
're_huanggai',
'hs_alakir',
'swd_xiarou',
'pal_murongziying',
'swd_wangsiyue',
'gjqt_fanglansheng',
'swd_qiner',
'hs_anduin',
],
rare:[
'yxs_diaochan',
'swd_hengai',
'hs_wuther',
'jg_pangtong',
'lusu',
'bulianshi',
'swd_shuijing',
'swd_sikongyu',
'zhangliao',
'liufeng',
'diy_yuji',
're_zhangliao',
'caoang',
'pal_jingtian',
'swd_shanxiaoxiao',
'yxs_caocao',
'jianyong',
'manchong',
'swd_linyue',
'swd_xuanyuanjiantong',
'swd_maixing',
'diy_xuhuang',
'dengai',
'hs_jaina',
'zhonghui',
'gjqt_xiangling',
'zhugejin',
'swd_jiuyou',
'diy_zhouyu',
'pal_changqing',
'swd_yuchiyanhong',
'swd_duopeng',
'swd_yuli',
'swd_rongshuang',
'taishici',
'pal_zhaoliner',
're_machao',
'zhanghe',
'zhangzhang',
'xin_fazheng',
'caochong',
'caifuren',
'jg_caozhen',
'jg_zhanghe',
'xin_masu',
'swd_situqiang',
'hs_malfurion',
'yxs_bole',
'yj_jushou',
'gjqt_yuewuyi',
'hs_mijiaojisi',
'yxs_mozi',
'gjqt_hongyu',
'hs_waleera',
'zhangsong',
'sp_dongzhuo',
'jiangwei',
'swd_chunyuheng',
'hetaihou',
'swd_jiangziya',
'liushan',
'zhugedan',
'sp_zhaoyun',
're_huatuo',
'swd_nicole',
'sp_jiangwei',
'swd_zhuoshanzhu',
'swd_shaowei',
'caopi',
'jiaxu',
'maliang',
'lingtong',
'wangyi',
'chenqun',
'mifuren',
'pal_linyueru',
'jg_simayi',
'jg_huangyueying',
'jg_zhugeliang',
'swd_jialanduo',
'sp_machao',
'caiwenji',
'hs_yngvar',
're_xushu',
're_huangyueying',
],
};

View File

@ -939,7 +939,7 @@ character.refresh={
trigger:{global:'phaseEnd'},
direct:true,
filter:function(event,player){
return event.player.getStat('damage')&&
return event.player.isAlive()&&event.player.getStat('damage')&&
lib.filter.targetEnabled({name:'sha'},player,event.player)&&
!lib.filter.autoRespondSha.call({player:player});
},

View File

@ -759,6 +759,9 @@ character.sp={
filter:function(event,player){
return event.player!=player&&!player.storage.wangzun;
},
prompt:function(event,player){
return '是否对'+get.translation(event.player)+'发动【妄尊】?';
},
content:function(){
player.draw();
player.markSkill('wangzun');
@ -2176,7 +2179,7 @@ character.sp={
player.storage.songci=false;
},
filterTarget:function(card,player,target){
return (!target.storage.songci&&target.num('h')!=target.hp&&target.hp!=0);
return (!target.storage.songci&&target.num('h')!=target.hp);
},
content:function(){
if(target.num('h')>target.hp){

View File

@ -8,7 +8,7 @@ character.swd={
swd_kama:['female','qun',3,['yueren','shangshi'],['fullskin']],
swd_miles:['male','qun',4,['aojian','miles_xueyi','mohua2']],
swd_nicole:['female','wu',3,['minjing','lingwu','huanjian'],['fullskin']],
swd_wangsiyue:['female','wei',3,['duishi','guisi','biyue']],
swd_wangsiyue:['female','wei',3,['duishi','biyue'],['fullskin']],
swd_weida:['female','qun',3,['yueren','zhenlie']],
swd_xuanyuanjianxian:['male','qun',4,['pozhou','huajian'],['fullskin']],
@ -92,6 +92,31 @@ character.swd={
swd_luchengxuan:['swd_xiarou'],
},
skill:{
kongmo:{
trigger:{player:'useCardAfter'},
forced:true,
filter:function(event,player){
if(event.parent.name=='kongmo') return false;
if(!event.targets||!event.card) return false;
var type=get.type(event.card);
if(type!='basic'&&type!='trick') return false;
var card=game.createCard(event.card.name,event.card.suit,event.card.number);
for(var i=0;i<event.targets.length;i++){
if(!event.targets[i].isAlive()) return false;
if(!player.canUse({name:event.card.name},event.targets[i],false,false)){
return false;
}
}
return true;
},
content:function(){
var card=game.createCard(trigger.card.name,trigger.card.suit,trigger.card.number);
player.useCard(card,trigger.targets);
},
ai:{
threaten:2
}
},
miaobi:{
enable:'phaseUse',
viewAs:{name:'wugu'},
@ -106,10 +131,12 @@ character.swd={
huajing:{
trigger:{source:'damageEnd'},
filter:function(event,player){
return event.card&&get.type(event.card,'trick')=='trick'&&player.hp<player.maxHp;
return event.card&&get.type(event.card,'trick')=='trick';
},
frequent:true,
content:function(){
player.recover();
player.draw();
}
},
pingxu:{
@ -2275,19 +2302,19 @@ character.swd={
dangping2:{},
duishi:{
enable:'phaseUse',
usable:1,
usable:2,
filter:function(event,player){
return player.num('h')>0
return player.num('h')>0&&!player.skills.contains('duishi3');
},
filterTarget:function(card,player,target){
return player!=target&&target.num('he');
return player!=target&&target.num('h')&&!target.skills.contains('duishi2');
},
filterCard:true,
check:function(card){return 8-ai.get.value(card)},
content:function(){
"step 0"
var suit=get.suit(cards[0]);
target.chooseToDiscard({suit:suit},'he','弃置一张'+get.translation(suit)+
target.chooseToDiscard({suit:suit},'h','弃置一张'+get.translation(suit)+
'牌,或令'+get.translation(player)+'获得你的一张牌').ai=function(card){
if(ai.get.attitude(target,player)>0){
return -1;
@ -2297,10 +2324,14 @@ character.swd={
"step 1"
if(!result.bool){
player.addTempSkill('duishi3','phaseAfter');
if(target.num('he')){
player.gainPlayerCard(target,'he',true,ai.get.buttonValue);
}
}
else{
target.addTempSkill('duishi2','phaseAfter');
}
},
ai:{
order:9,
@ -2312,6 +2343,8 @@ character.swd={
expose:0.2
}
},
duishi2:{},
duishi3:{},
guisi:{
trigger:{target:'shaBefore'},
popup:false,
@ -6612,10 +6645,35 @@ character.swd={
},
yueren2:{},
busi:{
trigger:{player:'dying'},
priority:7,
unique:true,
forced:true,
filter:function(event,player){
return player.hp<=0;
},
content:function(){
'step 0'
player.judge(function(card){
return get.suit(card)=='spade'?-1:1;
});
'step 1'
if(result.bool){
player.recover(1-player.hp);
if(!player.isTurnedOver()){
player.turnOver();
}
}
},
ai:{
threaten:0.8
}
},
busi_old:{
unique:true,
global:'busi2',
},
busi2:{
busi_old2:{
trigger:{player:'phaseAfter'},
forced:true,
popup:false,
@ -6665,7 +6723,10 @@ character.swd={
},
content:function(){
"step 0"
var go=ai.get.attitude(player,trigger.player)>0&&ai.get.attitude(player,trigger.source)<0;
var go=ai.get.attitude(player,trigger.player)>0&&
ai.get.attitude(player,trigger.source)<0&&
ai.get.damageEffect(trigger.player,trigger.source,player)<
ai.get.damageEffect(trigger.source,trigger.player,player);
player.chooseToDiscard('是否将伤害来源('+get.translation(trigger.source)+
')和目标('+get.translation(trigger.player)+')对调?','he').ai=function(card){
if(go){
@ -6704,7 +6765,7 @@ character.swd={
}
}
if(source&&source.num('he')){
if(ai.get.attitude(player,source)<0&&ai.get.attitude(player,target)<0){
if(ai.get.attitude(source,player)<0&&ai.get.attitude(source,target)>0){
return [0,0,0,-1];
}
}
@ -7582,13 +7643,15 @@ character.swd={
swd_lanmoshen:'蓝魔神',
swd_wushi:'巫师',
kongmo:'恐魔',
kongmo_info:'锁定技,你使用基本牌或非延时锦囊牌后将额外结算一次卡牌效果',
miaobi:'妙笔',
miaobi_info:'出牌阶段限一次,你可以将一张红桃牌当作五谷丰登使用',
zhexian:'谪仙',
jufu:'巨斧',
jufu_info:'锁定技,当你有武器牌时,杀造成的伤害+1',
huajing:'化精',
huajing_info:'每当你使用锦囊牌造成伤害,可以回复一点体力',
huajing_info:'每当你使用锦囊牌造成伤害,可以回复一点体力并摸一张牌',
pingxu:'冯虚',
pingxu_info:'锁定技,当你没有武器牌时,与其他角色的距离-1当你没有防具牌时其他角色与你的距离+1',
yudun:'愚钝',
@ -7696,7 +7759,7 @@ character.swd={
guisi:'归思',
guisi_info:'每当你成为杀的目标,你可以交给对方一张手牌并取消之',
duishi:'对诗',
duishi_info:'出牌阶段限一次,你可以弃置一张手牌,并指定一名角色弃置一张与之花色相同的牌,否则你获得其一张牌',
duishi_info:'出牌阶段,你可以弃置一张手牌,并指定一名有手牌的角色弃置一张与之花色相同的牌,否则你获得其一张牌。若其弃置了手牌,你可对一名其他目标再发动一次',
anlianying:'连营',
anlianying_info:'每当你失去最后一张手牌,可摸两张牌',
lianwu:'连舞',
@ -7935,7 +7998,7 @@ character.swd={
mailun_info:'回合开始阶段,你可以选择一个脉轮效果直到下一回合开始',
yunshen_info:'每当你打出一张闪,你可以令其他角色与你的距离+1回合开始阶段你将累计的防御距离清零然后摸等量的牌',
guiyan_info:'出牌阶段,你可以观看一名角色的手牌,并获得其中一张梅花牌,每阶段限一次。当你首次进入濒死状态时,你须回复一点体力并失去技能鬼眼',
busi_info:'锁定技,你死亡后每次轮过你时你自动复活',
busi_info:'锁定技,当你进入濒死状态时你进行一次判定若结果不为黑桃你将体力回复至1并将武将牌翻至背面',
xuying_info:'锁定技,每当你即将受到伤害,你防止此伤害,若你此时有手牌,你流失一点体力',
yinguo_info:'除你之外的任意一名角色即将受到受到伤害时,若有伤害来源,你可以弃置一张牌将伤害来源和目标对调',
yueren_info:'每当你使用一张杀,可以进行一次判定,若结果为黑色,你弃置目标一张牌,若结果为红色,你将此杀收回,每回合限发动一次',

View File

@ -1,6 +1,6 @@
character.xswd={
character:{
swd_wushi:['male','wei',3,['zhoufu','yingbin','xuying']],
// swd_wushi:['male','wei',3,['zhoufu','yingbin','xuying']],
// swd_lanmoshen:['female','wei',3,['bingjian','lieren'],['fullskin']],
swd_huanglei:['male','qun',3,['jilve','gongshen'],['fullskin']],
swd_libai:['female','qun',3,['miaobi','zhexian']],
@ -10,7 +10,7 @@ character.xswd={
swd_linming:['male','qun',3,['shelie','bifa']],
swd_philis:['male','qun',4,['yicong','wangxi']],
swd_pepin:['male','qun',4,['rejianxiong','quhu']],
// swd_kangnalishi:['male','qun',1,['busi','xuying','yinguo']],
swd_kangnalishi:['male','qun',1,['busi','xuying','yinguo'],['fullskin']],
swd_xuanyuanjiantong:['male','qun',3,['chengjian','huanling'],['fullskin']],
// swd_huiyan:['male','qun',3,['wendao','xiaozhan','xunzhi']],

View File

@ -1358,7 +1358,7 @@ character.yijiang={
if(result.bool){
trigger.untrigger();
trigger.finish();
player.logSkill('xuanhuo',result.targets);
player.logSkill('xinxuanhuo',result.targets);
event.target=result.targets[0];
event.target.draw(2);
player.chooseTarget('选择出杀的目标',true,function(card,player,target){
@ -2265,7 +2265,7 @@ character.yijiang={
usable:1,
content:function(){
"step 0"
var cards=get.cards(3+player.maxHp-player.hp);
var cards=get.cards(3);
event.cards=cards;
player.chooseCardButton(cards,'选择获得的红桃牌',[1,Infinity]).filterButton=function(button){
return get.suit(button.link)=='heart';
@ -3346,7 +3346,7 @@ character.yijiang={
shiyong_info:'锁定技每当你受到一次红色【杀】或【酒】【杀】造成的伤害后你减1点体力上限。',
danshou_info:'每当你造成一次伤害后,你可以摸一张牌。若如此做,终止一切结算,当前回合结束。',
yizhong_info:'锁定技,当你没有防具时,黑色的杀对你无效',
xinzhan_info:'出牌阶段限一次你可以观看牌堆顶的3+X张牌,然后展示其中任意数量♥的牌并获得之其余以任意顺序置于牌堆顶。X为你已损失的体力值',
xinzhan_info:'出牌阶段限一次你可以观看牌堆顶的3张牌,然后展示其中任意数量♥的牌并获得之',
huilei_info:'锁定技,杀死你的角色立即弃置所有的牌。',
enyuan_info:'锁定技,其他角色每令你回复一点体力,该角色摸一张牌;其他角色每对你造成一次伤害须给你一张♥手牌否则该角色失去1点体力。',
xuanhuo_info:'你每次获得一名其他角色两张或更多的牌时可以令其摸一张牌每当你受到1点伤害后你可以令伤害来源选择一项交给你一张手牌或失去1点体力。',

View File

@ -304,15 +304,19 @@ window.config={
['xiaoji','zhiheng'],
['relianying','zhiheng'],
['lianying','rende'],
['lianying','yinguo'],
['lianying','sajin'],
['lianying','qingjian'],
['shanbshi','rende'],
['shanbshi','qingjian'],
['shangshi','rende'],
['shangshi','yinguo'],
['shangshi','qingjian'],
['rende','relianying'],
['yinguo','relianying'],
['sajin','relianying'],
['shenxing','relianying'],
['qingjian','relianying'],
['rende','yuling'],
['yinguo','yuling'],
['qingjian','yuling'],
['qingnang','yiji'],
['qingnang','reyiji'],

View File

@ -224,6 +224,7 @@
var script=document.createElement('script');
script.src = path+'/'+file+".js";
document.head.appendChild(script);
return script;
}
},
parse:function(func){
@ -1908,7 +1909,7 @@
game.playAudio('effect','die_'+(player.sex==='female'?'female':'male'));
}
}
if(player==game.me&&!_status.over){
if(player==game.me&&!_status.over&&!game.controlOver){
ui.control.show();
if(get.config('swap')&&lib.config.mode_choice.contains('swap')){
ui.swap=ui.create.control('换人',ui.click.dieswap);
@ -1920,7 +1921,7 @@
ui.restart=ui.create.control('restart',game.reload);
}
}
if(player==game.me){
if(player==game.me&&!game.modeSwapPlayer){
if(ui.auto) ui.auto.hide();
if(ui.wuxie) ui.wuxie.hide();
}
@ -4286,6 +4287,53 @@
game.animate.flame(left+this.offsetWidth/2,
top+this.offsetHeight-30,700,'thunder');
},
$rare:function(){
var left=this.offsetLeft-ui.arena.offsetLeft;
var top=this.offsetTop-ui.arena.offsetTop;
if(this.classList.contains('minskin')){
top+=15;
}
game.animate.flame(left+this.offsetWidth/2,
top+this.offsetHeight-30,700,'rare');
},
$epic:function(){
var left=this.offsetLeft-ui.arena.offsetLeft;
var top=this.offsetTop-ui.arena.offsetTop;
if(this.classList.contains('minskin')){
top+=15;
}
game.animate.flame(left+this.offsetWidth/2,
top+this.offsetHeight-30,700,'epic');
},
$legend:function(){
var left=this.offsetLeft-ui.arena.offsetLeft;
var top=this.offsetTop-ui.arena.offsetTop;
if(this.classList.contains('minskin')){
top+=15;
}
game.animate.flame(left+this.offsetWidth/2,
top+this.offsetHeight-30,700,'legend');
},
$coin:function(){
var left=this.offsetLeft-ui.arena.offsetLeft;
var top=this.offsetTop-ui.arena.offsetTop;
if(this.classList.contains('minskin')){
top+=15;
}
top-=25;
game.animate.flame(left+this.offsetWidth/2,
top+this.offsetHeight-30,700,'coin');
},
$dust:function(){
var left=this.offsetLeft-ui.arena.offsetLeft;
var top=this.offsetTop-ui.arena.offsetTop;
if(this.classList.contains('minskin')){
top+=15;
}
top-=25;
game.animate.flame(left+this.offsetWidth/2,
top+this.offsetHeight-30,700,'dust');
},
$recover:function(){
var left,top;
if(lib.config.mode=='chess'){
@ -5407,15 +5455,31 @@
if(type=='thunder'||type=='recover'){
particle_count=30;
}
else if(type=='coin'||type=='dust'){
particle_count=50;
}
else if(type=='legend'){
particle_count=120;
}
else if(type=='epic'){
particle_count=80;
}
else if(type=='rare'){
particle_count=50;
}
for(var i = 0; i < particle_count; i++) {
particles.push(new particle());
}
function particle() {
this.speed = {x: -1+Math.random()*2, y: -5+Math.random()*5};
if(type=='thunder'){
if(type=='thunder'||type=='coin'||type=='dust'){
this.speed.y=-3+Math.random()*5;
this.speed.x=-2+Math.random()*4;
}
if(type=='legend'||type=='rare'||type=='epic'){
this.speed.x*=3;
this.speed.y*=1.5;
}
this.location = {x: x, y: y};
this.radius = .5+Math.random()*1;
@ -5439,6 +5503,92 @@
this.b = 0;
break;
}
case 'coin':{
this.r = 255;
this.g = Math.round(Math.random()*25+230);
this.b = Math.round(Math.random()*100+50);
this.location.x+=Math.round(Math.random()*60)-30;
this.location.y+=Math.round(Math.random()*40)-20;
if(this.location.x<x){
this.speed.x=-Math.abs(this.speed.x);
}
else if(this.location.x>x){
this.speed.x=Math.abs(this.speed.x);
}
this.life*=1.3;
this.death*=1.3;
break;
}
case 'dust':{
this.r = Math.round(Math.random()*55)+105;
this.g = Math.round(Math.random()*55)+150;
this.b = 255;
this.location.x+=Math.round(Math.random()*60)-30;
this.location.y+=Math.round(Math.random()*40)-20;
if(this.location.x<x){
this.speed.x=-Math.abs(this.speed.x);
}
else if(this.location.x>x){
this.speed.x=Math.abs(this.speed.x);
}
this.life*=1.3;
this.death*=1.3;
break;
}
case 'legend':{
this.r = 255;
this.g = Math.round(Math.random()*100+155);
this.b = Math.round(Math.random()*100+50);
this.location.x+=Math.round(Math.random()*60)-30;
this.location.y+=Math.round(Math.random()*40)-20;
if(this.location.x<x){
this.speed.x=-Math.abs(this.speed.x);
}
else if(this.location.x>x){
this.speed.x=Math.abs(this.speed.x);
}
this.speed.x/=2;
this.speed.y/=2;
this.life*=2;
this.death*=2;
break;
}
case 'epic':{
this.r = Math.round(Math.random()*55)+200;
this.g = Math.round(Math.random()*100)+55;
this.b = 255;
this.location.x+=Math.round(Math.random()*60)-30;
this.location.y+=Math.round(Math.random()*40)-20;
if(this.location.x<x){
this.speed.x=-Math.abs(this.speed.x);
}
else if(this.location.x>x){
this.speed.x=Math.abs(this.speed.x);
}
this.speed.x/=2;
this.speed.y/=2;
this.life*=2;
this.death*=2;
break;
}
case 'rare':{
this.r = Math.round(Math.random()*55)+105;
this.g = Math.round(Math.random()*55)+150;
this.b = 255;
this.location.x+=Math.round(Math.random()*60)-30;
this.location.y+=Math.round(Math.random()*40)-20;
if(this.location.x<x){
this.speed.x=-Math.abs(this.speed.x);
}
else if(this.location.x>x){
this.speed.x=Math.abs(this.speed.x);
}
this.speed.x/=2;
this.speed.y/=2;
this.life*=2;
this.death*=2;
break;
}
case 'recover':{
this.g = 255;
this.r = Math.round(Math.random()*200+55);
@ -5476,7 +5626,8 @@
surface.beginPath();
var middle=0.5;
var radius=p.radius;
if(type=='recover'){
if(type=='recover'||type=='legend'||type=='rare'||
type=='epic'||type=='coin'||type=='dust'){
middle=0.7;
radius/=3;
}
@ -5493,6 +5644,12 @@
if(type=='recover'){
p.radius+=0.5;
}
else if(type=='coin'||type=='dust'){
p.radius+=0.7;
}
else if(type=='legend'||type=='rare'||type=='epic'){
p.radius+=0.5;
}
else {
p.radius++;
}
@ -5633,6 +5790,9 @@
if(result===false) result='战斗失败';
if(result==undefined) result='战斗结束';
dialog=ui.create.dialog(result);
if(game.addOverDialog){
game.addOverDialog(dialog,result);
}
if(true){
if(game.players.length){
table=document.createElement('table');
@ -5824,6 +5984,12 @@
}
dialog.add(ui.create.div('.placeholder'));
dialog.add(ui.create.div('.placeholder'));
if(ui.auto) ui.auto.hide();
if(ui.wuxie) ui.wuxie.hide();
if(game.controlOver){
game.controlOver();return;
}
if(!ui.restart){
ui.restart=ui.create.control('restart',game.reload);
}
@ -5831,8 +5997,6 @@
setTimeout(game.reload,500);
}
if(ui.auto) ui.auto.hide();
if(ui.wuxie) ui.wuxie.hide();
if(ui.revive){
ui.revive.close();
delete ui.revive;
@ -7214,6 +7378,7 @@
},
control:function(){
var i,controls;
var nozoom=false;
if(get.objtype(arguments[0])=='array') controls=arguments[0];
else controls=arguments;
var control=ui.create.div('.control');
@ -7225,17 +7390,28 @@
if(typeof controls[i]=='function'){
control.custom=controls[i];
}
else if(controls[i]=='nozoom'){
nozoom=true;
}
else{
control.add(controls[i]);
}
}
ui.controls.unshift(control);
if(nozoom){
control.classList.add('nozoom');
}
if(control.childNodes.length){
if(nozoom){
control.style.transition='opacity 0.5s';
}
var width=0;
for(i=0;i<control.childNodes.length;i++) width+=control.childNodes[i].offsetWidth;
ui.refresh(control);
control.style.width=width+'px';
control.style.opacity=1;
ui.refresh(control);
control.style.transition='';
}
return control;
},
@ -8831,7 +9007,7 @@
_status.mousedragging||_status.mousedown||!node.offsetWidth||!node.offsetHeight){
return;
}
if(node._hoverfunc){
if(node._hoverfunc&&!node._nopup){
var dialog=node._hoverfunc.call(node,e);
dialog.classList.add('popped');
ui.window.appendChild(dialog);
@ -8868,7 +9044,9 @@
for(var i=0;i<e.path.length;i++){
var itemtype=get.itemtype(e.path[i]);
if(itemtype=='button') break;
if(itemtype=='dialog'&&!e.path[i].classList.contains('popped')){
if(itemtype=='dialog'&&
!e.path[i].classList.contains('popped')&&
!e.path[i].classList.contains('fixed')){
var ddialog=e.path[i];
_status.draggingdialog=ddialog;
ddialog._dragorigin=e;
@ -8900,6 +9078,7 @@
_status.mouseleft=false;
_status.selectionfull=false;
_status.multitarget=false;
// if(ui.confirm&&ui.confirm.str=='c') ui.confirm.close();
}
}
return;
@ -9341,6 +9520,9 @@
}
event.skillDialog=ui.create.dialog(str);
}
else if(info.promptfunc){
event.skillDialog=ui.create.dialog(str,'<div><div style="width:100%">'+info.promptfunc(event,event.player)+'</div></div>');
}
else if(lib.translate[skill+'_info']){
event.skillDialog=ui.create.dialog(str,'<div><div style="width:100%">'+lib.translate[skill+'_info']+'</div></div>');
}
@ -10082,6 +10264,7 @@
}
},
rightplayer:function(e){
if(this._nopup) return false;
if(_status.clickedplayer){
return false;
}
@ -11646,11 +11829,12 @@
this.classList.remove('removing');
return this;
};
HTMLDivElement.prototype.setBackground=function(name,type,ext){
HTMLDivElement.prototype.setBackground=function(name,type,ext,subfolder){
var src;
ext=ext||'.jpg';
subfolder=subfolder||'default'
if(type){
src='image/'+type+'/default/'+name+ext;
src='image/'+type+'/'+subfolder+'/'+name+ext;
}
else{
src='image/'+name+ext;

BIN
image/card/leader_easy.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
image/card/leader_hard.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 184 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

BIN
image/character/default/swd_kangnalishi.jpg Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

BIN
image/character/fullskin/swd_huzhongxian.jpg Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 KiB

View File

@ -95,6 +95,9 @@ body>.background{z-index:-2}
.card.cardflip{
-webkit-animation:cardflip 0.3s ease-out;
}
.player.playerflip{
-webkit-animation:playerflip 0.3s ease-out;
}
.button.card.button>.intro{top:69px;}
.buttons.smallzoom{
zoom:0.65
@ -124,6 +127,9 @@ body>.background{z-index:-2}
.dialog{width: calc(90% - 420px);height: calc(100% / 3 - 160px / 3 + 120px);}
.dialog.fullheight{height:calc(100% - 80px) !important;top:40px !important}
.dialog.fullwidth{left:calc(5% + 60px) !important;width:calc(90% - 120px) !important}
.dialog.halfleft,.dialog.halfright{width:43% !important;opacity: 1 !important}
.dialog.halfleft{left:5% !important}
.dialog.halfright{left:52% !important}
.dialog{top:calc(100% / 3 - 100px / 3);left: calc(5% + 210px);}
#window>.dialog.popped{
@ -202,7 +208,8 @@ margin-bottom: 5px;
/*--------确认--------*/
#control{text-align: center;z-index: 2;top: calc(200% / 3);left: calc(5% + 240px);width: calc(90% - 480px);}
.control{padding-top: 2px;padding-bottom: 2px;padding-left: 4px;padding-right: 4px;margin-left: 4px;margin-right: 4px;}
.control{font-size: 18px;white-space: nowrap;position: relative;overflow: hidden;width: 0;opacity:0}
.control{font-size: 18px;white-space: nowrap;position: relative;overflow: hidden;opacity:0}
.control:not(.nozoom){width:0}
.control>div{position: relative;padding: 3px;}
/*--------角色--------*/
.player>.avatar>.action{
@ -457,6 +464,7 @@ margin-bottom: 5px;
#arena.selecting #me .card:not(.selectable)>.addinfo,
#arena.selecting .dialog:not(.noselect) .button:not(.selectable):not(.noclick),
.dead,.likedead{opacity: 0.6;}
.unselectable:not(.selected):not(.removing){opacity: 0.6 !important}
.mark>.background{opacity: 1 !important;}
#arena.selecting #me .card:not(.selectable){
opacity:0.8
@ -471,7 +479,8 @@ margin-bottom: 5px;
.purple{color: rgba(177, 62, 177,0.4);}
.player,.button.character{color: white;text-shadow: black 0 0 2px;}
.turnedover>div{opacity: 0.3;}
.intro{opacity: 0;display:none !important}
.intro:not(.showintro){opacity: 0;display:none !important}
.intro.showintro{white-space: nowrap}
div:hover>.intro{opacity: 1;}
/*.hp>div{background: white;box-shadow:0px 1px 1px rgba(0,0,0,0.5);border:1px solid #fff;border-radius: 8px;}*/
/*.hp>.lost{background: rgba(128,128,128,0.3);}*/
@ -580,18 +589,30 @@ div[data-nature='fire']{
text-shadow: black 0 0 1px,rgba(232, 53, 53,1) 0 0 2px,rgba(232, 53, 53,1) 0 0 5px,rgba(232, 53, 53,1) 0 0 10px,
rgba(232, 53, 53,1) 0 0 10px,rgba(232, 53, 53,1) 0 0 20px,rgba(232, 53, 53,1) 0 0 20px
}
div[data-nature='firem']{
text-shadow: black 0 0 1px,rgba(232, 53, 53,1) 0 0 2px,rgba(232, 53, 53,1) 0 0 5px,rgba(232, 53, 53,1) 0 0 5px,
rgba(232, 53, 53,1) 0 0 5px,black 0 0 1px;
}
.player .identity[data-color="zhong"],
.player .identity[data-color="qun"],
div[data-nature='metal']{
text-shadow: black 0 0 1px,rgba(255, 203, 0,1) 0 0 2px,rgba(255, 203, 0,1) 0 0 5px,rgba(255, 203, 0,1) 0 0 10px,
rgba(255, 203, 0,1) 0 0 10px
}
div[data-nature='metalm']{
text-shadow: black 0 0 1px,rgba(255, 203, 0,1) 0 0 2px,rgba(255, 203, 0,1) 0 0 5px,rgba(255, 203, 0,1) 0 0 5px,
rgba(255, 203, 0,1) 0 0 5px,black 0 0 1px;
}
.player .identity[data-color="nei"],
.player .identity[data-color="ye"],
div[data-nature='thunder']{
text-shadow: rgba(100, 74, 139,1) 0 0 2px,rgba(100, 74, 139,1) 0 0 5px,rgba(100, 74, 139,1) 0 0 10px,
rgba(100, 74, 139,1) 0 0 10px,rgba(100, 74, 139,1) 0 0 20px,rgba(100, 74, 139,1) 0 0 20px,black 0 0 1px;
}
div[data-nature='thunderm']{
text-shadow: rgba(100, 74, 139,1) 0 0 2px,rgba(100, 74, 139,1) 0 0 5px,rgba(100, 74, 139,1) 0 0 5px,
rgba(100, 74, 139,1) 0 0 5px,black 0 0 1px;
}
.player .identity[data-color="fan"],
.player .identity[data-color="wu"],
div[data-nature='wood']{
@ -604,15 +625,27 @@ div[data-nature='water']{
text-shadow: rgba(78, 117, 140,1) 0 0 2px,rgba(78, 117, 140,1) 0 0 5px,rgba(78, 117, 140,1) 0 0 10px,
rgba(78, 117, 140,1) 0 0 10px,rgba(78, 117, 140,1) 0 0 20px,rgba(78, 117, 140,1) 0 0 20px,black 0 0 1px;
}
div[data-nature='waterm']{
text-shadow: rgba(78, 117, 140,1) 0 0 2px,rgba(78, 117, 140,1) 0 0 5px,rgba(78, 117, 140,1) 0 0 5px,
rgba(78, 117, 140,1) 0 0 5px,black 0 0 1px;
}
.player .identity[data-color="shu"],
div[data-nature='soil']{
text-shadow: rgba(128, 59, 2,1) 0 0 2px,rgba(128, 59, 2,1) 0 0 5px,rgba(128, 59, 2,1) 0 0 10px,
rgba(128, 59, 2,1) 0 0 10px,rgba(128, 59, 2,1) 0 0 20px,rgba(128, 59, 2,1) 0 0 20px,black 0 0 1px;
}
div[data-nature='soilm']{
text-shadow: rgba(128, 59, 2,1) 0 0 2px,rgba(128, 59, 2,1) 0 0 5px,rgba(128, 59, 2,1) 0 0 5px,
rgba(128, 59, 2,1) 0 0 5px,black 0 0 1px;
}
.player .identity[data-color="unknownx"]{
text-shadow: rgba(0,0,0,0.5) 0 0 2px,rgba(0,0,0,0.5) 0 0 5px,rgba(0,0,0,0.5) 0 0 10px,
rgba(0,0,0,0.5) 0 0 10px,rgba(0,0,0,0.5) 0 0 20px,rgba(0,0,0,0.5) 0 0 20px,black 0 0 1px;
}
div[data-color="unknownm"]{
text-shadow: rgba(0,0,0,0.5) 0 0 2px,rgba(0,0,0,0.2) 0 0 5px,rgba(0,0,0,0.2) 0 0 5px,
rgba(0,0,0,0.2) 0 0 5px,black 0 0 1px;
}
.card.fullskin>.background{display:none !important}
.card:not(.fullskin)>.image{display:none !important}
@ -782,6 +815,10 @@ div[data-nature='soil']{
from {-webkit-transform:perspective(600px) rotateY(-90deg) translateX(52px)}
to{-webkit-transform:perspective(600px) rotateY(0deg) translateX(0)}
}
@-webkit-keyframes playerflip{
from {-webkit-transform:perspective(1200px) rotateY(-90deg) translateX(150px)}
to{-webkit-transform:perspective(1200px) rotateY(0deg) translateX(0)}
}
@-webkit-keyframes game_start{from {opacity: 0;}}
@-webkit-keyframes equip_hover{0% {opacity: 0;}50% {opacity: 0;}}
@-webkit-keyframes buttonclick{0% {-webkit-transform: scale(1);}50% {-webkit-transform: scale(0.9);}}

View File

@ -134,3 +134,10 @@
.button.forbidden{
opacity:0.6
}
#arena.leaderhide>*:not(canvas){
opacity:0 !important;
transition: all 0.5s !important;
}
#arena.leadercontrol>#control{
transition: all 0.5s !important;
}

File diff suppressed because it is too large Load Diff