This commit is contained in:
parent
f77bdfa244
commit
fdcfe06ca9
|
@ -931,7 +931,6 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
order:7,
|
||||
}
|
||||
},
|
||||
|
||||
gw_zirankuizeng:{
|
||||
fullborder:'silver',
|
||||
type:'spell',
|
||||
|
@ -1028,7 +1027,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
},
|
||||
ai:{
|
||||
value:6,
|
||||
value:7,
|
||||
useful:[4,1],
|
||||
result:{
|
||||
player:function(player){
|
||||
|
@ -1038,6 +1037,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
order:7,
|
||||
}
|
||||
},
|
||||
|
||||
gw_qinpendayu:{
|
||||
fullborder:'bronze',
|
||||
type:'spell',
|
||||
|
@ -1054,7 +1054,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
target.addTempSkill('gw_qinpendayu',{player:'phaseAfter'});
|
||||
},
|
||||
ai:{
|
||||
value:4,
|
||||
value:[5,1],
|
||||
useful:[3,1],
|
||||
result:{
|
||||
player:function(player,target){
|
||||
|
@ -1092,7 +1092,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
target.addTempSkill('gw_birinongwu',{player:'phaseAfter'});
|
||||
},
|
||||
ai:{
|
||||
value:4,
|
||||
value:[5,1],
|
||||
useful:[3,1],
|
||||
result:{
|
||||
player:function(player,target){
|
||||
|
@ -1126,7 +1126,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
target.addSkill('gw_ciguhanshuang');
|
||||
},
|
||||
ai:{
|
||||
value:4,
|
||||
value:[5,1],
|
||||
useful:[3,1],
|
||||
result:{
|
||||
player:function(player,target){
|
||||
|
@ -1189,7 +1189,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
target.loseMaxHp(true);
|
||||
},
|
||||
ai:{
|
||||
value:4,
|
||||
value:[4,1],
|
||||
useful:[3,1],
|
||||
result:{
|
||||
target:function(player,target){
|
||||
|
@ -1219,7 +1219,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
},
|
||||
ai:{
|
||||
value:4,
|
||||
value:[4.5,1],
|
||||
useful:[4,1],
|
||||
result:{
|
||||
target:function(player,target){
|
||||
|
@ -1259,7 +1259,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
ai:{
|
||||
basic:{
|
||||
order:1.8,
|
||||
value:[6,1],
|
||||
value:[5,1],
|
||||
useful:[4,1],
|
||||
},
|
||||
result:{
|
||||
|
@ -1282,7 +1282,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
'step 0'
|
||||
var choice=1;
|
||||
if(game.countPlayer(function(current){
|
||||
if(current.countCards('j')){
|
||||
if(current.countCards('j')||current.hasSkillTag('weather')){
|
||||
if(get.attitude(player,current)>0){
|
||||
choice=0;
|
||||
}
|
||||
|
@ -1292,7 +1292,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
player.chooseControl(function(){
|
||||
return choice;
|
||||
}).set('choiceList',[
|
||||
'弃置一名角色判定区内的所有牌',
|
||||
'解除任意名角色的天气效果并移除其判定区内的牌',
|
||||
'随机获得一张铜卡法术(破晓除外)并展示之'
|
||||
]);
|
||||
}
|
||||
|
@ -1301,10 +1301,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
'step 1'
|
||||
if(!event.directfalse&&result.index==0){
|
||||
player.chooseTarget(true,'弃置一名角色判定区内的所有牌',function(card,player,target){
|
||||
return target.countCards('j');
|
||||
player.chooseTarget(true,[1,Infinity],'解除任意名角色的天气效果并移除其判定区内的牌',function(card,player,target){
|
||||
return target.countCards('j')||target.hasSkillTag('weather');
|
||||
}).ai=function(target){
|
||||
return get.attitude(player,target)*target.countCards('j');
|
||||
return get.attitude(player,target);
|
||||
};
|
||||
}
|
||||
else{
|
||||
|
@ -1320,14 +1320,27 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
event.finish();
|
||||
}
|
||||
'step 2'
|
||||
if(result.targets[0]){
|
||||
player.line(result.targets[0],'green');
|
||||
result.targets[0].discard(result.targets[0].getCards('j'));
|
||||
event.list=result.targets.slice(0).sortBySeat();
|
||||
'step 3'
|
||||
if(event.list.length){
|
||||
var target=event.list.shift();
|
||||
player.line(target,'green');
|
||||
var cards=target.getCards('j');
|
||||
if(cards.length){
|
||||
target.discard(cards);
|
||||
}
|
||||
if(target.hasSkillTag('weather')){
|
||||
target.removeSkill('gw_qinpendayu');
|
||||
target.removeSkill('gw_birinongwu');
|
||||
target.removeSkill('gw_ciguhanshuang');
|
||||
}
|
||||
event.redo();
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
order:4,
|
||||
useful:[3,1],
|
||||
value:[5,1],
|
||||
useful:[4,1],
|
||||
result:{
|
||||
player:1,
|
||||
}
|
||||
|
@ -1370,7 +1383,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
maxHandcard:function(player,num){
|
||||
return num-1;
|
||||
}
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
weather:true
|
||||
}
|
||||
},
|
||||
gw_birinongwu:{
|
||||
mark:true,
|
||||
|
@ -1382,7 +1398,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
cardEnabled:function(card){
|
||||
if(card.name=='sha') return false;
|
||||
}
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
weather:true
|
||||
}
|
||||
},
|
||||
gw_ciguhanshuang:{
|
||||
trigger:{player:'phaseDrawBegin'},
|
||||
|
@ -1398,7 +1417,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
content:function(){
|
||||
trigger.num--;
|
||||
player.removeSkill('gw_ciguhanshuang');
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
weather:true
|
||||
}
|
||||
},
|
||||
gw_dieyi:{
|
||||
init:function(player){
|
||||
|
@ -1589,7 +1611,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
gw_zirankuizeng:'自然馈赠',
|
||||
gw_zirankuizeng_info:'选择任意一张铜卡法术使用',
|
||||
gw_poxiao:'破晓',
|
||||
gw_poxiao_info:'选择一项:弃置一名角色判定区内的所有牌,或随机获得一张铜卡法术(破晓除外)并展示之',
|
||||
gw_poxiao_info:'选择一项:解除任意名角色的天气效果并移除其判定区内的牌,或随机获得一张铜卡法术(破晓除外)并展示之',
|
||||
gw_zumoshoukao:'阻魔手铐',
|
||||
gw_zumoshoukao_info:'令一名角色失去所有护甲且非锁定技失效直到下一回合结束',
|
||||
gw_aozuzhilei:'奥祖之雷',
|
||||
|
@ -1607,13 +1629,13 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
gw_baoxueyaoshui_info:'令一名角色弃置两张手牌并摸一张牌',
|
||||
gw_birinongwu:'蔽日浓雾',
|
||||
gw_birinongwu_bg:'雾',
|
||||
gw_birinongwu_info:'出牌阶段对一名角色及其相邻角色使用,目标不能使用杀直到下一回合结束',
|
||||
gw_birinongwu_info:'天气牌,出牌阶段对一名角色及其相邻角色使用,目标不能使用杀直到下一回合结束',
|
||||
gw_qinpendayu:'倾盆大雨',
|
||||
gw_qinpendayu_bg:'雨',
|
||||
gw_qinpendayu_info:'出牌阶段对一名角色及其相邻角色使用,目标手牌上限-1直到下一回合结束',
|
||||
gw_qinpendayu_info:'天气牌,出牌阶段对一名角色及其相邻角色使用,目标手牌上限-1直到下一回合结束',
|
||||
gw_ciguhanshuang:'刺骨寒霜',
|
||||
gw_ciguhanshuang_bg:'霜',
|
||||
gw_ciguhanshuang_info:'出牌阶段对一名角色及其相邻角色使用,目标下个摸牌阶段摸牌数-1',
|
||||
gw_ciguhanshuang_info:'天气牌,出牌阶段对一名角色及其相邻角色使用,目标下个摸牌阶段摸牌数-1',
|
||||
gw_wenyi:'瘟疫',
|
||||
gw_wenyi_info:'令所有体力值为全场最少的角色随机弃置一张牌',
|
||||
gw_yanziyaoshui:'燕子药水',
|
||||
|
|
49
card/swd.js
49
card/swd.js
|
@ -3,7 +3,48 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
return {
|
||||
name:'swd',
|
||||
card:{
|
||||
|
||||
yihuajiemu:{
|
||||
fullskin:true,
|
||||
type:'trick',
|
||||
enable:true,
|
||||
singleCard:true,
|
||||
filterTarget:function(card,player,target){
|
||||
if(target.isMin()) return false;
|
||||
if(ui.selected.targets.length){
|
||||
return target.getCards('e',{subtype:'equip5'}).length==0;
|
||||
}
|
||||
else{
|
||||
return target.getCards('e',{subtype:'equip5'}).length>0;
|
||||
}
|
||||
},
|
||||
selectTarget:2,
|
||||
multitarget:true,
|
||||
complexTarget:true,
|
||||
content:function(){
|
||||
if(target.getEquip(5)){
|
||||
target.$give(target.getEquip(5),event.addedTarget);
|
||||
event.addedTarget.equip(target.getEquip(5));
|
||||
game.delay();
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
order:1,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
if(target.getCards('e',{subtype:'equip5'}).length){
|
||||
if(get.attitude(target,player)>0){
|
||||
return -0.5;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
},
|
||||
tag:{
|
||||
loseCard:1
|
||||
}
|
||||
}
|
||||
},
|
||||
liuxinghuoyu:{
|
||||
fullskin:true,
|
||||
type:'trick',
|
||||
|
@ -4729,6 +4770,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
'护甲:和体力类似,每点护甲可抵挡一点伤害,但不影响手牌上限'
|
||||
},
|
||||
translate:{
|
||||
yihuajiemu:'移花接木',
|
||||
yihuajiemu_info:'对一名装备区内有宝物的角色使用,将其宝物牌转移至另一名角色',
|
||||
liuxinghuoyu:'流星火羽',
|
||||
liuxinghuoyu_info:'出牌阶段,对一名角色使用,令目标弃置2张牌,或受到一点火焰伤害',
|
||||
g_yuchan_equip:'玉蝉',
|
||||
|
@ -5099,6 +5142,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
lianyaohu_info:'出牌阶段各限一次,你可以选择一项:1.弃置一张手牌,并将一名其他角色的一张手牌置入炼妖壶;2.弃置两张炼妖壶中的牌,从牌堆中获得一张与弃置的牌类别均不相同的牌',
|
||||
},
|
||||
list:[
|
||||
['heart',3,'yihuajiemu'],
|
||||
['diamond',1,'yihuajiemu'],
|
||||
['diamond',7,'yihuajiemu'],
|
||||
|
||||
['diamond',3,'liuxinghuoyu','fire'],
|
||||
['heart',6,'liuxinghuoyu','fire'],
|
||||
['heart',9,'liuxinghuoyu','fire'],
|
||||
|
|
|
@ -534,48 +534,6 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
}
|
||||
},
|
||||
yihuajiemu:{
|
||||
fullskin:true,
|
||||
type:'trick',
|
||||
enable:true,
|
||||
singleCard:true,
|
||||
filterTarget:function(card,player,target){
|
||||
if(target.isMin()) return false;
|
||||
if(ui.selected.targets.length){
|
||||
return target.getCards('e',{subtype:'equip5'}).length==0;
|
||||
}
|
||||
else{
|
||||
return target.getCards('e',{subtype:'equip5'}).length>0;
|
||||
}
|
||||
},
|
||||
selectTarget:2,
|
||||
multitarget:true,
|
||||
complexTarget:true,
|
||||
content:function(){
|
||||
if(target.getEquip(5)){
|
||||
target.$give(target.getEquip(5),event.addedTarget);
|
||||
event.addedTarget.equip(target.getEquip(5));
|
||||
game.delay();
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
order:1,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
if(target.getCards('e',{subtype:'equip5'}).length){
|
||||
if(get.attitude(target,player)>0){
|
||||
return -0.5;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
},
|
||||
tag:{
|
||||
loseCard:1
|
||||
}
|
||||
}
|
||||
},
|
||||
fudichouxin:{
|
||||
fullskin:true,
|
||||
type:'trick',
|
||||
|
@ -1036,8 +994,6 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
toulianghuanzhu:'偷梁换柱',
|
||||
toulianghuanzhu_info:'出牌阶段对一名有手牌的角色使用,选择另一名有手牌的角色获得目标两张手牌(不足则全拿),然后还给其等量手牌',
|
||||
toulianghuanzhu_bg:'柱',
|
||||
yihuajiemu:'移花接木',
|
||||
yihuajiemu_info:'对一名装备区内有宝物的角色使用,将其宝物牌转移至另一名角色',
|
||||
fudichouxin:'釜底抽薪',
|
||||
fudichouxin_info:'与一名角色进行拼点,若成功则获得双方拼点牌',
|
||||
shuiyanqijun:'水攻',
|
||||
|
@ -1065,15 +1021,12 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
['club',1,'qiankundai'],
|
||||
['heart',6,'huoshan','fire'],
|
||||
['club',7,'hongshui'],
|
||||
['heart',3,'yihuajiemu'],
|
||||
["diamond",3,'guohe'],
|
||||
|
||||
['diamond',4,'fudichouxin'],
|
||||
['diamond',1,'yihuajiemu'],
|
||||
['club',6,'fudichouxin'],
|
||||
['spade',1,'fudichouxin'],
|
||||
['club',7,'shuiyanqijun'],
|
||||
['diamond',7,'yihuajiemu'],
|
||||
['club',8,'shuiyanqijun'],
|
||||
['club',8,'guohe'],
|
||||
['spade',9,'shuiyanqijun'],
|
||||
|
|
|
@ -16,7 +16,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
gw_laduoweide:['male','wei',4,['gwxiaoshou']],
|
||||
gw_dagong:['male','qun',4,['tianbian']],
|
||||
|
||||
// gw_bulanwang:['male','qun',4,['bolang']],
|
||||
gw_bulanwang:['male','qun',4,['bolang']],
|
||||
// gw_kuite:['male','qun',3,[]],
|
||||
// gw_fuertaisite:['male','qun',3,[]],
|
||||
// gw_hengsaite:['male','wei',4,['jinsheng']],
|
||||
|
@ -32,12 +32,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
|
||||
gw_aigeleisi:['female','wu',3,['gwshenyu']],
|
||||
gw_aokeweisite:['male','qun',4,['yunhuo']],
|
||||
gw_kaxier:['male','wu',4,['gwfengchi']],
|
||||
gw_kaxier:['male','shu',4,['gwfengchi']],
|
||||
gw_luobo:['male','qun',3,['junchi']],
|
||||
gw_mieren:['male','shu',3,['lingji']],
|
||||
gw_sanhanya:['male','shu',3,['gwjinyan']],
|
||||
gw_shanhu:['female','qun',3,['shuijian']],
|
||||
// gw_zhangyujushou:['male','wu',4,[]],
|
||||
gw_zhangyujushou:['male','wu',4,['gwjushi']],
|
||||
gw_zhuoertan:['male','wu',3,['hupeng']],
|
||||
},
|
||||
characterIntro:{
|
||||
|
@ -54,9 +54,130 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
gw_yioufeisi:'国王还是乞丐,两者有何区别,人类少一个算一个',
|
||||
},
|
||||
skill:{
|
||||
bolang:{
|
||||
trigger:{player:'phaseBegin'},
|
||||
frequent:true,
|
||||
init:function(player){
|
||||
player.storage.bolang=[];
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
var cards=[];
|
||||
for(var i=0;i<ui.cardPile.childElementCount;i++){
|
||||
cards.push(ui.cardPile.childNodes[i]);
|
||||
}
|
||||
player.chooseCardButton('搏浪:将至多3张牌移至弃牌堆',[1,3],cards.slice(0,6)).ai=function(button){
|
||||
if(button.link==cards[0]||button.link==cards[1]){
|
||||
return get.value(button.link)-5;
|
||||
}
|
||||
else if(button.link==cards[4]||button.link==cards[5]){
|
||||
return get.value(button.link)/5;
|
||||
}
|
||||
};
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
for(var i=0;i<player.storage.bolang.length;i++){
|
||||
if(!player.storage.bolang[i].vanishtag.contains('bolang')){
|
||||
player.storage.bolang.splice(i--,1);
|
||||
}
|
||||
}
|
||||
player.storage.bolang.addArray(result.links);
|
||||
for(var i=0;i<result.links.length;i++){
|
||||
result.links[i].vanishtag.add('bolang');
|
||||
result.links[i].discard();
|
||||
}
|
||||
}
|
||||
},
|
||||
group:'bolang_gain',
|
||||
subSkill:{
|
||||
gain:{
|
||||
trigger:{source:'damageEnd'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
for(var i=0;i<player.storage.bolang.length;i++){
|
||||
if(player.storage.bolang[i].vanishtag.contains('bolang')){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
var list=[];
|
||||
for(var i=0;i<player.storage.bolang.length;i++){
|
||||
if(player.storage.bolang[i].vanishtag.contains('bolang')){
|
||||
list.push(player.storage.bolang[i]);
|
||||
}
|
||||
}
|
||||
player.chooseCardButton(true,list,get.prompt('bolang'));
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
player.logSkill('bolang');
|
||||
player.gain(result.links,'gain2');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
gwjushi:{
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filter:function(event,player){
|
||||
return !player.hasSkill('gwjushi2');
|
||||
},
|
||||
filterTarget:function(card,player,target){
|
||||
return target!=player&&get.distance(player,target)<=1&&target.countCards('he');
|
||||
},
|
||||
content:function(){
|
||||
var hs=target.getCards('he');
|
||||
if(hs.length){
|
||||
var card=hs.randomGet();
|
||||
target.$give(card,player);
|
||||
player.storage.gwjushi2=card;
|
||||
player.storage.gwjushi3=target;
|
||||
player.storage.gwjushi4=get.position(card);
|
||||
target.lose(card,ui.special);
|
||||
player.addSkill('gwjushi2');
|
||||
}
|
||||
}
|
||||
},
|
||||
gwjushi2:{
|
||||
mark:'card',
|
||||
intro:{
|
||||
content:'受到伤害时,令此牌回归原位;准备阶段,你获得此牌'
|
||||
},
|
||||
trigger:{player:['phaseBegin','damageEnd']},
|
||||
forced:true,
|
||||
content:function(){
|
||||
var card=player.storage.gwjushi2;
|
||||
var target=player.storage.gwjushi3;
|
||||
if(trigger.name=='damage'){
|
||||
if(target.isIn()){
|
||||
if(player.storage.gwjushi4=='e'&&get.type(card)=='equip'){
|
||||
target.equip(card);
|
||||
player.$give(card,target);
|
||||
game.delay();
|
||||
}
|
||||
else{
|
||||
player.give(card,target);
|
||||
}
|
||||
}
|
||||
else{
|
||||
card.discard();
|
||||
}
|
||||
}
|
||||
else{
|
||||
player.gain(card,'gain2');
|
||||
}
|
||||
player.removeSkill('gwjushi2');
|
||||
},
|
||||
onremove:['gwjushi2','gwjushi3','gwjushi4'],
|
||||
ai:{
|
||||
threaten:1.5
|
||||
}
|
||||
},
|
||||
gwfengchi:{
|
||||
trigger:{player:'phaseUseBegin'},
|
||||
frequent:true,
|
||||
forced:true,
|
||||
content:function(){
|
||||
'step 0'
|
||||
var list=get.gainableSkills(function(info){
|
||||
|
@ -1534,9 +1655,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
gw_zhuoertan:'卓尔坦',
|
||||
|
||||
gwfengchi:'风驰',
|
||||
gwfengchi_info:'出牌阶段开始时,你可以随机观看3个可以在出牌阶段使用的技能,并获得其中一个技能直到此阶段结束',
|
||||
gwfengchi_info:'锁定技,出牌阶段开始时,你随机观看3个可以在出牌阶段使用的技能,并获得其中一个技能直到此阶段结束',
|
||||
gwjushi:'巨噬',
|
||||
gwjushi_info:'出牌阶段限一次,你可以将一名距离1以内的其他角色的一张随机牌置于你的武将牌上;当你受到伤害后,“巨噬”牌将回到原来的位置;准备阶段,若你有“巨噬”牌,你移去之然后增加一点体力和体力上限',
|
||||
gwjushi2:'巨噬',
|
||||
gwjushi_info:'出牌阶段限一次,你可以将一名距离1以内的其他角色的一张随机牌置于你的武将牌上;当你受到伤害后,令“巨噬”牌回到原来的位置;准备阶段,你获得武将牌上的“巨噬”牌',
|
||||
bolang:'搏浪',
|
||||
bolang_info:'准备阶段,你可以观看牌堆顶的6张牌,然后将其中至多3张移入弃牌堆;每当你造成一次伤害,你可以从弃牌堆中获得一张以此法移入弃牌堆的牌',
|
||||
lingji:'灵计',
|
||||
|
|
|
@ -11795,6 +11795,7 @@
|
|||
if(lib.config.reverse_sort) sort=-sort;
|
||||
cards[num].fix();
|
||||
cards[num].style.transform='';
|
||||
cards[num].vanishtag.length=0;
|
||||
if(player==game.me){
|
||||
cards[num].classList.add('drawinghidden');
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue