예제 #1
0
    public void OnClientMechAttackShipRequest(MechAttackShipRequest r)
    {
        ClientA.CurrentClientRequestResponseBundle = new MechAttackMechRequest_ResponseBundle();
        ClientB.CurrentClientRequestResponseBundle = new MechAttackMechRequest_ResponseBundle();

        MechAttackShipServerRequest request = new MechAttackShipServerRequest(r.clientId, r.AttackMechId);

        Broadcast_AddRequestToOperationResponse(request);

        BattlePlayer cpat = GetPlayerByClientId(r.clientId);
        BattlePlayer cpba = cpat.MyEnemyPlayer;

        ModuleMech attackMech = cpat.BattleGroundManager.GetMech(r.AttackMechId);

        attackMech.AttackShip(cpba);

        Broadcast_SendOperationResponse();
    }
예제 #2
0
    public override void DragComponent_OnMouseUp(BoardAreaTypes boardAreaType, List <Slot> slots, ModuleMech moduleMech, Ship ship, Vector3 dragLastPosition, Vector3 dragBeginPosition, Quaternion dragBeginQuaternion)
    {
        base.DragComponent_OnMouseUp(boardAreaType, slots, moduleMech, ship, dragLastPosition, dragBeginPosition, dragBeginQuaternion);
        RoundManager.Instance.HideTargetPreviewArrow();

        if (DragManager.Instance.IsCanceling)
        {
            DragManager.Instance.IsCanceling = false;
            return;
        }

        if (moduleMech)
        {
            if (moduleMech.ClientPlayer != ClientPlayer)
            {
                if (moduleMech.CheckModuleMechCanAttackMe(this))
                {
                    MechAttackMechRequest request = new MechAttackMechRequest(ClientPlayer.ClientId, M_MechID, RoundManager.Instance.EnemyClientPlayer.ClientId, moduleMech.M_MechID);
                    Client.Instance.Proxy.SendMessage(request);
                }
                else
                {
                    NoticeManager.Instance.ShowInfoPanelCenter(LanguageManager.Instance.GetText("ModuleMech_ShouldAttackDefenderFirst"), 0, 0.5f);
                }
            }
        }
        else if (ship)
        {
            if (ship.ClientPlayer != ClientPlayer)
            {
                if (ship.CheckModuleMechCanAttackMe(this) != 0)
                {
                    MechAttackShipRequest request = new MechAttackShipRequest(Client.Instance.Proxy.ClientID, M_MechID);
                    Client.Instance.Proxy.SendMessage(request);
                }
                else
                {
                    NoticeManager.Instance.ShowInfoPanelCenter(LanguageManager.Instance.GetText("ModuleMech_ShouldAttackMechsFirst"), 0, 0.5f);
                }
            }
        }

        DragManager.Instance.DragOutDamage = 0;
    }