private void SendBattleCommand(BattleCommand cmd) { if (GameCore.Instance.IsOfflineMode) { BattleServer.Instance.AddRequest(cmd); } else { ProtoCSBattleCommand proto = new ProtoCSBattleCommand(cmd); NetworkMgr.Instance.Send(proto); } }
private void SendMessage(int side, ELevelBallType type, Vector2 startPos, Vector2 dir, Vector2 hitPoint, bool isFlyout, float flyDistance) { Vector2 point = m_battleFieldObj.transform.InverseTransformPoint(hitPoint); Vector2 cellPoint = point; float speed = flyDistance / ConfigHelper.GetBubbleFlyDuration(); cellPoint.y = -cellPoint.y; if (GameCore.Instance.IsOfflineMode) { CmdFireBallResponse cmd = new CmdFireBallResponse(0, (int)type, startPos, dir, point, CellManager.GetCellID(cellPoint), m_lastBallId, speed, 0); ++m_lastBallId; m_battle.HandleBattleCommand(cmd); } else { ProtoCSBattleCommand proto = new ProtoCSBattleCommand(new CmdFireBall(side, (int)type, startPos, dir, point, CellManager.GetCellID(cellPoint), isFlyout, speed)); NetworkMgr.Instance.Send(proto); } }
public override void OnTap(Gesture gesture) { base.OnTap(gesture); if (m_battleField.IsExBall || m_battleField.IsBallUp || m_state != EBattleState.Fighting || m_battleField.IsWaitFireBall) { return; } if (IsChangeBallArea(Camera.main.ScreenToWorldPoint(gesture.position)) && m_battleField.MyBallNum > 1) { if (GameCore.Instance.IsOfflineMode) { HandleBattleCommand(new CmdExchangeBall(GameCore.Instance.MySide)); } else { ProtoCSBattleCommand pcmd = new ProtoCSBattleCommand(new CmdExchangeBall(GameCore.Instance.MySide)); NetworkMgr.Instance.Send(pcmd); } } }