Commit 2297be27 authored by chechunchi's avatar chechunchi

update idleCmd service

parent c59e11f2
......@@ -14,45 +14,19 @@ export default (selectIdleCmd: MsgSelectIdleCmd, dispatch: AppDispatch) => {
// 先清掉之前的手牌互动性
dispatch(clearHandsIdleInteractivity(player));
for (let cmd of cmds) {
let interactType;
switch (cmd.idle_type) {
case MsgSelectIdleCmd.IdleCmd.IdleType.SUMMON: {
interactType = InteractType.SUMMON;
break;
}
case MsgSelectIdleCmd.IdleCmd.IdleType.SPSUMMON: {
interactType = InteractType.SP_SUMMON;
break;
}
case MsgSelectIdleCmd.IdleCmd.IdleType.POS_CHANGE: {
interactType = InteractType.POS_CHANGE;
break;
}
case MsgSelectIdleCmd.IdleCmd.IdleType.MSET: {
interactType = InteractType.MSET;
break;
}
case MsgSelectIdleCmd.IdleCmd.IdleType.SSET: {
interactType = InteractType.SSET;
break;
}
case MsgSelectIdleCmd.IdleCmd.IdleType.ACTIVATE: {
interactType = InteractType.ACTIVATE;
break;
}
}
cmds.forEach((cmd) => {
const interactType = idleTypeToInteractType(cmd.idle_type);
for (let data of cmd.idle_datas) {
const card_info = data.card_info;
if (card_info.location === 2) {
// 目前只处理手牌场景
cmd.idle_datas.forEach((data) => {
const cardInfo = data.card_info;
switch (cardInfo.location) {
case ygopro.CardZone.HAND: {
if (interactType === InteractType.ACTIVATE) {
// 发动效果会多一个字段
dispatch(
addHandsIdleInteractivity({
player,
sequence: card_info.sequence,
sequence: cardInfo.sequence,
interactivity: {
interactType,
activateIndex: data.effect_description,
......@@ -64,12 +38,45 @@ export default (selectIdleCmd: MsgSelectIdleCmd, dispatch: AppDispatch) => {
dispatch(
addHandsIdleInteractivity({
player,
sequence: card_info.sequence,
sequence: cardInfo.sequence,
interactivity: { interactType, response: data.response },
})
);
}
break;
}
default: {
}
}
});
});
};
function idleTypeToInteractType(
idleType: MsgSelectIdleCmd.IdleCmd.IdleType
): InteractType | undefined {
switch (idleType) {
case MsgSelectIdleCmd.IdleCmd.IdleType.SUMMON: {
return InteractType.SUMMON;
}
case MsgSelectIdleCmd.IdleCmd.IdleType.SPSUMMON: {
return InteractType.SP_SUMMON;
}
case MsgSelectIdleCmd.IdleCmd.IdleType.POS_CHANGE: {
return InteractType.POS_CHANGE;
}
case MsgSelectIdleCmd.IdleCmd.IdleType.MSET: {
return InteractType.MSET;
}
case MsgSelectIdleCmd.IdleCmd.IdleType.SSET: {
return InteractType.SSET;
}
case MsgSelectIdleCmd.IdleCmd.IdleType.ACTIVATE: {
return InteractType.ACTIVATE;
}
default: {
return undefined;
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment