This commit is contained in:
libccy 2016-03-04 21:31:26 +08:00
parent 46aec6895e
commit 9cd9b528b5
19 changed files with 301 additions and 22 deletions

View File

@ -382,13 +382,53 @@ character.boss={
content:function(){
'step 0'
player.line(trigger.player,'green');
trigger.player.chooseCard(true,'选择保留一张牌,然后弃置其它牌','he').ai=function(card){
var next=trigger.player.chooseCard(true,'选择保留一张手牌和一张装备区内的牌,然后弃置其它牌','he',function(card){
switch(get.position(card)){
case 'h':{
if(ui.selected.cards.length){
return get.position(ui.selected.cards[0])=='e';
}
else{
return trigger.player.num('h')>1;
}
break;
}
case 'e':{
if(ui.selected.cards.length){
return get.position(ui.selected.cards[0])=='h';
}
else{
return trigger.player.num('e')>1;
}
break;
}
}
});
var num=0;
if(trigger.player.num('h')>1){
num++;
}
if(trigger.player.num('e')>1){
num++;
}
next.selectCard=[num,num];
next.ai=function(card){
return ai.get.value(card);
};
'step 1'
if(result.bool){
var he=trigger.player.get('he');
he.remove(result.cards[0]);
var he=[];
var hs=trigger.player.get('h');
var es=trigger.player.get('e');
if(hs.length>1){
he=he.concat(hs);
}
if(es.length>1){
he=he.concat(es);
}
for(var i=0;i<result.cards.length;i++){
he.remove(result.cards[i]);
}
trigger.player.discard(he);
}
}

View File

@ -31,9 +31,12 @@ character.hearth={
// hs_lrhonin:['male','wei',2,[]],
// hs_bolvar:['male','wei',2,[]],
// hs_fuding:['male','wei',2,[]],
hs_xuanzhuanjijia:['male','shu',2,['jixuan']],
hs_ysera:['female','wu',4,['chenshui']],
hs_alextrasza:['female','shu',5,['fushi']],
hs_nozdormu:['male','qun',5,['shixu']],
hs_sapphiron:['male','wei',4,['bingdong','stuxi']],
hs_kchromaggus:['male','wei',4,['fenlie']],
hs_zhishigushu:['male','shu',4,['jiaohui']],
hs_zhanzhenggushu:['male','wei',6,['biri']],
@ -48,6 +51,7 @@ character.hearth={
hs_siwangzhiyi:['male','qun',12,['mieshi']],
hs_bilanyoulong:['male','wei',4,['lingzhou']],
hs_jinglinglong:['male','wu',3,['mianyi']],
hs_ruanniguai:['male','wu',3,['nianfu']],
},
perfectPair:{
hs_sthrall:['hs_totemic','hs_alakir','hs_neptulon','hs_yngvar','hs_tgolem'],
@ -56,6 +60,118 @@ character.hearth={
hs_malfurion:['hs_malorne'],
},
skill:{
fenlie:{
audio:2,
forced:true,
trigger:{player:'gainAfter'},
filter:function(event,player){
if(event.parent.parent.name=='phaseDraw') return false;
if(event.parent.name=='fenlie') return false;
if(player.storage.fenlie>=3) return false;
return true;
},
content:function(){
var cards=[];
for(var i=0;i<trigger.cards.length;i++){
cards.push(game.createCard(trigger.cards[i]));
}
player.storage.fenlie++;
player.gain(cards,'draw');
},
group:'fenlie2'
},
fenlie2:{
trigger:{global:'phaseBegin'},
forced:true,
popup:false,
silent:true,
content:function(){
player.storage.fenlie=0;
}
},
nianfu:{
enable:'phaseUse',
usable:1,
filterTarget:function(card,player,target){
return player!=target&&target.num('e')>0;
},
filter:function(event,player){
return game.hasPlayer(function(target){
return target!=player&&target.num('e');
});
},
content:function(){
var es=target.get('e');
if(es.length>1){
es=es.randomGets(Math.ceil(Math.random()*2));
}
target.discard(es);
},
ai:{
order:9.5,
result:{
target:function(player,target){
var ne=target.num('e');
if(ne>1) return -1.5;
return -1;
}
}
}
},
shixu:{
group:['shixu_begin','shixu_end','shixu_discard'],
subSkill:{
begin:{
trigger:{global:'phaseUseBegin'},
forced:true,
popup:false,
silent:true,
content:function(){
trigger.player.storage.shixu_begin=get.time();
}
},
end:{
trigger:{global:'phaseUseEnd'},
forced:true,
popup:false,
silent:true,
filter:function(event,player){
return typeof event.player.storage.shixu_begin=='number';
},
content:function(){
trigger.player.storage.shixu=get.time()-trigger.player.storage.shixu_begin;
delete trigger.player.storage.shixu_begin;
}
},
discard:{
trigger:{global:'phaseEnd'},
forced:true,
filter:function(event,player){
return typeof event.player.storage.shixu=='number'&&
event.player.storage.shixu>3000&&event.player.num('he')>0;
},
content:function(){
player.line(trigger.player,'green');
trigger.player.chooseToDiscard('he',true,Math.floor(trigger.player.storage.shixu/3000));
delete trigger.player.storage.shixu;
}
}
}
},
jixuan:{
trigger:{player:'phaseAfter'},
forced:true,
filter:function(event,player){
return event.parent.name!='jixuan';
},
content:function(){
player.draw();
player.phase();
},
ai:{
threaten:1.8
},
},
qianghua:{
trigger:{player:'useCardAfter'},
filter:function(event,player){
@ -2497,9 +2613,8 @@ character.hearth={
hs_ysera:'伊瑟拉',
hs_alextrasza:'阿莱克斯塔',
hs_trueheart:'图哈特',
hs_nozdormu:'诺兹多姆',
qianghua:'强化',
qianghua_info:'出牌阶段限两次,你可以令一张你使用的基本牌或非延时锦囊牌额外结算一次',
fushi:'缚誓',
fushi_info:'出牌阶段,你可以令一名已受伤角色失去一点体力上限并回复一点体力',
hs_ronghejuren:'熔核巨人',
@ -2514,7 +2629,20 @@ character.hearth={
hs_zhanzhenggushu:'战争古树',
hs_jinglinglong:'精灵龙',
hs_sapphiron:'萨菲隆',
hs_xuanzhuanjijia:'旋转机甲',
hs_ruanniguai:'软泥怪',
hs_kchromaggus:'克洛玛古斯',
fenlie:'分裂',
fenlie_info:'锁定技,每当你于摸牌阶段外获得卡牌,你获得一张此牌的复制,每回合最多发动三次',
nianfu:'粘附',
nianfu_info:'出牌阶段限一次你可以指定一名其他角色随机弃置其1~2张装备牌',
shixu:'时序',
shixu_info:'锁定技所有角色于出牌阶段每消耗3秒便须于回合结束阶段弃置一张牌',
qianghua:'强化',
qianghua_info:'出牌阶段限两次,你可以令一张你使用的基本牌或非延时锦囊牌额外结算一次',
jixuan:'疾旋',
jixuan_info:'锁定技,回合结束后,你摸一张牌并进行一个额外的回合',
biri:'蔽日',
biri_info:'每当距离你1以内的一名其他角色成为杀的惟一目标时若杀的使用者不是你你可以弃置一张闪取消之',
stuxi:'吐息',

View File

@ -166,10 +166,15 @@ window.characterRank={
'yxs_luban',
'yxs_huamulan',
'yxs_luzhishen',
'sunluyu',
'swd_xiyan',
],
bp:[
'hs_alextrasza',
'hs_xuanzhuanjijia',
'hs_nuoziduomu',
'hs_sapphiron',
'swd_quxian',
'yxs_zhuyuanzhang',
'yxs_jinke',
'gongsunyuan',
@ -255,9 +260,15 @@ window.characterRank={
'yxs_luocheng',
'yxs_napolun',
'caoren',
'zumao',
'sp_daqiao',
'sp_ganning',
],
b:[
'yxs_lishimin',
'hs_ruanniguai',
'hanba',
'daxiaoqiao',
'pal_linyueru',
'zhuran',
'fuhuanghou',
@ -269,7 +280,7 @@ window.characterRank={
'swd_fu',
'swd_yeyaxi',
'yxs_chengyaojin',
'yxs_yuji',
'yxs_yujix',
'swd_jialanduo',
'swd_jiting',
'sp_machao',
@ -323,6 +334,8 @@ window.characterRank={
'zhangyi',
'yxs_baosi',
'lingju',
're_ganning',
'xin_yujin',
],
bm:[
'guohuai',
@ -343,7 +356,6 @@ window.characterRank={
're_caocao',
're_lvbu',
'chendong',
're_ganning',
'xiahouba',
'simayi',
'guojia',

View File

@ -263,6 +263,10 @@ character.sp={
check:function(card){
return 7-ai.get.value(card);
},
position:'he',
filter:function(event,player){
return player.num('he',{suit:'diamond'})>0;
},
discard:false,
prepare:function(cards,player,targets){
player.$give(cards,targets[0]);

View File

@ -373,7 +373,7 @@ character.standard={
"step 1"
if(result.judge>0){
event.cards.push(result.card);
if(lib.config.auto_skill==false){
if(lib.config.autoskilllist.contains('luoshen')){
player.chooseBool('是否再次发动?');
}
else{
@ -387,6 +387,9 @@ character.standard={
}
}
player.gain(event.cards);
if(event.cards.length){
player.$draw(event.cards);
}
event.finish();
}
"step 2"
@ -395,6 +398,9 @@ character.standard={
}
else{
player.gain(event.cards);
if(event.cards.length){
player.$draw(event.cards);
}
}
}
},
@ -531,6 +537,10 @@ character.standard={
}
return false;
},
check:function(event,player){
if(player.storage.jijianging) return false;
return true;
},
content:function(){
"step 0"
if(event.current==undefined) event.current=player.next;
@ -538,6 +548,7 @@ character.standard={
event.finish();
}
else if(event.current.group=='shu'){
player.storage.jijianging=true;
var next=event.current.chooseToRespond('是否替'+get.translation(player)+'打出一张杀?',{name:'sha'});
next.ai=function(){
var event=_status.event;
@ -551,6 +562,7 @@ character.standard={
event.redo();
}
"step 1"
player.storage.jijianging=false;
if(result.bool){
event.finish();
trigger.result=result;
@ -1071,6 +1083,9 @@ character.standard={
},
guose:{
audio:1,
filter:function(event,player){
return player.num('he',{suit:'diamond'})>0;
},
enable:'chooseToUse',
filterCard:function(card){
return get.suit(card)=='diamond';

View File

@ -9,7 +9,7 @@ character.swd={
// swd_miles:['male','qun',4,['aojian','miles_xueyi','mohua2']],
swd_nicole:['female','wu',3,['huanjian','lingwu','minjing']],
swd_wangsiyue:['female','wei',3,['duishi','biyue']],
// swd_weida:['female','qun',3,['yueren','zhenlie']],
swd_weida:['female','qun',3,['yueren','zhenlie']],
swd_xuanyuanjianxian:['male','qun',4,['pozhou','huajian']],
swd_chenjingchou:['male','wu',3,['youyin','yihua']],
@ -21,6 +21,8 @@ character.swd={
swd_jiliang:['male','wu',3,['yunchou','gongxin','qimou']],
swd_shuijing:['female','qun',4,['mojian','duanyue']],
swd_quxian:['female','qun',3,['mojian','huanxia']],
swd_xiyan:['male','qun',3,['tianshu','daofa']],
swd_cheyun:['female','wu',3,['shengong','xianjiang3','qiaoxie']],
swd_huanyuanzhi:['male','qun',3,['lanzhi','mufeng','tianshu']],
swd_murongshi:['female','shu',4,['duanyi','guxing']],
@ -63,7 +65,7 @@ character.swd={
// swd_libai:['female','qun',3,['miaobi','zhexian']],
// swd_kendi:['male','qun',3,['guanxing','jianyan']],
// swd_lijing:['male','qun',4,['tianyi','zhuhai']],
// swd_lilian:['female','qun',3,['swd_wuxie','qingcheng']],
swd_lilian:['female','qun',3,['swd_wuxie','qingcheng']],
// swd_linming:['male','qun',3,['shelie','bifa']],
// swd_philis:['male','qun',4,['yicong','wangxi']],
// swd_pepin:['male','qun',4,['rejianxiong','quhu']],
@ -141,6 +143,51 @@ character.swd={
swd_luchengxuan:['swd_xiarou'],
},
skill:{
huanxia:{
enable:'chooseToUse',
filterCard:function(card){
return get.color(card)=='red';
},
position:'he',
viewAs:{name:'sha'},
viewAsFilter:function(player){
if(!player.num('he',{color:'red'})) return false;
},
prompt:'将一张红色牌当杀使用',
check:function(card){return 5-ai.get.value(card)},
ai:{
skillTagFilter:function(player){
if(!player.num('he',{color:'red'})) return false;
},
},
group:['huanxia_expire','huanxia_draw'],
subSkill:{
expire:{
trigger:{source:'damageAfter'},
forced:true,
popup:false,
filter:function(event){
return event.parent.skill=='huanxia';
},
content:function(){
player.storage.huanxia=true;
}
},
draw:{
trigger:{player:'shaAfter'},
direct:true,
content:function(){
if(trigger.parent.skill=='huanxia'){
var card=trigger.cards[0];
if(get.itemtype(card)=='card'&&get.position(card)=='d'&&!player.storage.huanxia){
player.gain(card,'gain2');
}
}
delete player.storage.huanxia;
}
}
}
},
kongmo:{
trigger:{player:'useCardAfter'},
forced:true,
@ -4215,7 +4262,7 @@ character.swd={
}
},
qingcheng:{
trigger:{player:'phaseBegin'},
trigger:{player:'phaseEnd'},
frequent:true,
content:function(){
"step 0"
@ -4227,12 +4274,14 @@ character.swd={
"step 1"
if(result.judge>0){
event.cards.push(result.card);
// if(event.cards.length==2){
// player.gain(event.cards);
// event.finish();
// }
// else
if(lib.config.auto_skill==false){
if(event.cards.length==3){
player.gain(event.cards,'draw2');
if(event.cards.length){
player.$draw(event.cards);
}
event.finish();
}
else if(lib.config.autoskilllist.contains('qingcheng')){
player.chooseBool('是否再次发动?');
}
else{
@ -4241,6 +4290,9 @@ character.swd={
}
else{
player.gain(event.cards);
if(event.cards.length){
player.$draw(event.cards);
}
event.finish();
}
"step 2"
@ -4249,6 +4301,9 @@ character.swd={
}
else{
player.gain(event.cards);
if(event.cards.length){
player.$draw(event.cards);
}
}
},
ai:{
@ -4286,7 +4341,6 @@ character.swd={
}
},
lingwu:{
unique:true,
trigger:{player:'phaseAfter'},
frequent:true,
filter:function(event,player){
@ -7427,7 +7481,11 @@ character.swd={
swd_xingtian:'刑天',
swd_lanmoshen:'蓝魔神',
swd_wushi:'巫师',
swd_quxian:'屈娴',
swd_xiyan:'犀衍',
huanxia:'幻霞',
huanxia_info:'你可以将一张红色牌当作杀使用,若此杀未造成伤害,你可以在其进入弃牌堆后收回此牌',
jingjie:'镜界',
jingjie_info:'回合开始阶段,你可以流失一点体力,并',
jingjie_old_info:'限定技,出牌阶段,你可以令所有角色弃置所有牌,然后摸两张牌(不触发任何技能)',
@ -7794,7 +7852,7 @@ character.swd={
huanhun_info:'当一名角色进入濒死状态时,你可以弃置一张红色牌并令其进行一次判定,若结果为红色,其回复一点体力',
daixing_info:'回合结束阶段,你可以任意张牌并获得等量的护甲,这些护甲将在你的下个回合开始阶段消失',
swd_wuxie_info:'锁定技,你不能成为其他角色的延时锦囊的目标',
qingcheng_info:'回合开始阶段,你可以进行判定,若为红色则可以继续判定,判定结束后将判定成功的牌收入手牌',
qingcheng_info:'回合结束阶段,你可以进行判定,若为红色则可以继续判定最多判定3次,判定结束后将判定成功的牌收入手牌',
xianjiang_info:'出牌阶段,你可以将一张装备牌永久转化为任意一张其它装备牌,一张牌在一个阶段只能转化一次',
xianjiang3_info:'出牌阶段,若你装备区内没有牌,你可以弃置一张锦囊牌,并从牌堆中随机获得一张装备牌,若牌堆中没有装备牌,你摸一张牌,每阶段限一次',
shengong_info:'每当你需要打出一张杀或闪时,你可以弃置一名角色装备区内的一张武器牌或防具牌,视为打出一张杀或闪,然后该角色摸一张牌,你弃一张牌',

View File

@ -2601,7 +2601,7 @@
'触屏模式<br>可消除iOS等设备上300ms的点击延迟但开启后无法使用鼠标<li>滚轮控制手牌<br>开启后滚轮可控制手牌的左右滚动建议Mac等具备横向滚动功能的设备关闭此选项'+
'<li>游戏玩法<br>为游戏增加不同玩法,开启后可在帮助中查看介绍',
'游戏操作':'<ul><li>长按/鼠标悬停/右键单击(需在设置中开启)显示信息<li>触屏模式中,双指点击切换暂停;下划显示菜单,上划切换托管<li>键盘快捷键<br>'+
'<table><tr><td>a<td>切换托管<tr><td>c<td>打开设置<tr><td>w<td>切换不询问无懈<tr><td>▭<td>暂停</ul>',
'<table><tr><td>a<td>切换托管<tr><td>c<td>打开设置<tr><td>w<td>切换不询问无懈<tr><td>i<td>显示身份<tr><td>▭<td>暂停</ul>',
'游戏命令':'<div style="margin:10px">变量名</div><ul style="margin-top:0"><li>场上角色<br>game.players<li>阵亡角色<br>game.dead'+
'<li>玩家<br>game.me<li>玩家的上/下家<br>game.me.previous/next'+
'<li>玩家的上/下家(含阵亡)<br>game.me.previousSeat/<br>nextSeat'+
@ -11478,6 +11478,12 @@
return next;
},
createCard:function(name,suit,number,nature){
if(typeof name=='object'){
nature=name.nature;
number=name.number;
suit=name.suit;
name=name.name;
}
if(typeof name!='string'){
name='sha';
}
@ -13309,6 +13315,12 @@
}
}
},
hasPlayer:function(func){
for(var i=0;i<game.players.length;i++){
if(func(game.players[i])) return true;
}
return false;
},
players:[],
dead:[],
imported:[],
@ -22161,6 +22173,14 @@
if(ui.wuxie&&ui.wuxie.style.display!='none'){
ui.wuxie.classList.toggle('glow')
}
else if(ui.tempnowuxie){
ui.tempnowuxie.classList.toggle('glow')
}
}
else if(e.keyCode==73){
if(game.showIdentity){
game.showIdentity();
}
}
else if(e.keyCode==67){
var node=ui.window.querySelector('#click');

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

BIN
image/character/hs_nozdormu.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

BIN
image/character/hs_ruanniguai.jpg Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 135 KiB

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 82 KiB

View File

@ -218,12 +218,14 @@
}
@media screen and (min-height: 800px) and (orientation:landscape) {
#arena{height: 780px;top: calc(50% - 350px);}
/*#arena{height: 780px;top: calc(50% - 350px);}
#arena:not(.chess)>#me,
#arena:not(.chess)>#mebg{
bottom:30px;
}
#arena:not(.chess) .player[data-position='0']{
top: calc(100% - 150px);
}
}*/
#arena{height: calc(95% + 20px);top: calc(5% + 10px);}
}