public class RecoveryOperateReceive : OperateReceive { private NetworkBattleSender.SELECT_SKILL_OPERATION _latestSelectSkillOperation; private bool _latestDataIsEvolve; public RecoveryOperateReceive(NetworkBattleManagerBase networkBattleMgr, RegisterActionManager registerCardList, OperateMgr operateMgr, NetworkBattleData networkBattleData) : base(networkBattleMgr, registerCardList, operateMgr, networkBattleData) { } protected override InPlayCardReflection CreateNetworkInPlayAction() { return new RecoveryNetworkInPlayAction(_battleMgr, _operateMgr); } public override void RecordSelectSkillInRecovery(NetworkBattleReceiver.ReceiveData receiveData) { _latestSelectSkillOperation = receiveData._selectSkillOperation; _latestDataIsEvolve = receiveData._isEvolveTargetSelect; ReceivePlayActionsReflectionBase playActionsReflection = GetPlayActionsReflection(receiveData._isEvolveTargetSelect); switch (receiveData._selectSkillOperation) { case NetworkBattleSender.SELECT_SKILL_OPERATION.StartSelect: playActionsReflection.RecordSelectStart(NetworkBattleGenericTool.GetIndexToCardBase(_battleMgr, _battleMgr.BattlePlayer, receiveData.idx)); break; case NetworkBattleSender.SELECT_SKILL_OPERATION.SelectCard: playActionsReflection.RecordSelectCard(NetworkBattleGenericTool.GetIndexToCardBase(_battleMgr, _battleMgr.GetBattlePlayer(receiveData._isPlayerCard), receiveData._selectedCardIndex), receiveData._isBurialRiteSelect); break; case NetworkBattleSender.SELECT_SKILL_OPERATION.CompleteSelect: playActionsReflection.RecordCompleteSelect(NetworkBattleGenericTool.GetIndexToCardBase(_battleMgr, _battleMgr.GetBattlePlayer(receiveData._isPlayerCard), receiveData._selectedCardIndex), receiveData._isBurialRiteSelect, receiveData.IsChoiceBraveSelect); break; case NetworkBattleSender.SELECT_SKILL_OPERATION.CancelSelect: playActionsReflection.RecordCancelSelect(); break; case NetworkBattleSender.SELECT_SKILL_OPERATION.StartChoiceSelect: playActionsReflection.RecordStartChoiceSelect(NetworkBattleGenericTool.GetIndexToCardBase(_battleMgr, _battleMgr.BattlePlayer, receiveData.idx)); break; case NetworkBattleSender.SELECT_SKILL_OPERATION.CompleteChoiceSelect: playActionsReflection.RecordCompleteChoiceSelect(receiveData._selectedChoiceCardIdList); break; case NetworkBattleSender.SELECT_SKILL_OPERATION.CancelChoiceSelect: playActionsReflection.RecordCancelChoice(); break; case NetworkBattleSender.SELECT_SKILL_OPERATION.StartFusionSelect: playActionsReflection.RecordStartFusion(NetworkBattleGenericTool.GetIndexToCardBase(_battleMgr, _battleMgr.BattlePlayer, receiveData.idx)); break; case NetworkBattleSender.SELECT_SKILL_OPERATION.SelectFusionIngredient: playActionsReflection.RecordSelectFusion(NetworkBattleGenericTool.GetIndexToCardBase(_battleMgr, _battleMgr.GetBattlePlayer(receiveData._isPlayerCard), receiveData._selectedCardIndex)); break; case NetworkBattleSender.SELECT_SKILL_OPERATION.CompleteFusionSelect: playActionsReflection.ClearData(); break; case NetworkBattleSender.SELECT_SKILL_OPERATION.SelectChoiceCard: break; } } public override void CheckLatestReplayInfoInRecovery() { ReceivePlayActionsReflectionBase playActionsReflection = GetPlayActionsReflection(_latestDataIsEvolve); if (playActionsReflection.ActingCard != null) { switch (_latestSelectSkillOperation) { case NetworkBattleSender.SELECT_SKILL_OPERATION.StartSelect: case NetworkBattleSender.SELECT_SKILL_OPERATION.SelectCard: case NetworkBattleSender.SELECT_SKILL_OPERATION.StartFusionSelect: case NetworkBattleSender.SELECT_SKILL_OPERATION.SelectFusionIngredient: playActionsReflection.RecordCancelSelect(); break; case NetworkBattleSender.SELECT_SKILL_OPERATION.StartChoiceSelect: playActionsReflection.RecordCancelChoice(); break; } } } }