예제 #1
0
    private void DrawShootImpact(ShootImpactDto shootImpactDto, string slotsTag)
    {
        GameObject[] slots = GameObject.FindGameObjectsWithTag(slotsTag);
        foreach (GameObject slot in slots)
        {
            foreach (Coordination hit in shootImpactDto.hits)
            {
                Coordination c = slot.GetComponent <Slot>().Coordination;
                if (c.x == hit.x && c.y == hit.y)
                {
                    slot.GetComponent <Slot>().SetIsHit();
                }
            }
        }

        foreach (GameObject slot in slots)
        {
            foreach (Coordination hit in shootImpactDto.misses)
            {
                Coordination c = slot.GetComponent <Slot>().Coordination;
                if (c.x == hit.x && c.y == hit.y)
                {
                    slot.GetComponent <Slot>().SetIsMiss();
                }
            }
        }
    }
예제 #2
0
    public void OpponentShootImpact(ShootImpactDto shootImpactDto)
    {
        DrawShootImpact(shootImpactDto, "player-slot");


        receivedShootsCount++;
        if (receivedShootsCount == 3 && !freeToFire)
        {
            freeToFire          = true;
            receivedShootsCount = 0;
            YourTurn();
        }
        DrawDestroyedUnits(shootImpactDto.destroyed_units, PlayerBoard);
    }
    public void OnMessage(string msg)
    {
        Debug.Log(msg);
        IncomeMsgDto incomeMsgDto = JsonUtility.FromJson <IncomeMsgDto>(msg);

        if (incomeMsgDto.type.Equals("opponent-connected"))
        {
            GameController.OpponentConnected();
        }

        if (incomeMsgDto.type.Equals("opponent-finish-board-init"))
        {
            GameController.OpponentFinishedBoardInit();
        }

        if (incomeMsgDto.type.Equals("player-shoot-impact"))
        {
            ShootImpactDto shootImpactDto = JsonUtility.FromJson <ShootImpactDto>(msg);
            GameController.PlayerShootImpact(shootImpactDto);
        }

        if (incomeMsgDto.type.Equals("opponent-shoot-impact"))
        {
            ShootImpactDto shootImpactDto = JsonUtility.FromJson <ShootImpactDto>(msg);
            GameController.OpponentShootImpact(shootImpactDto);
        }

        if (incomeMsgDto.type.Equals("you-lost"))
        {
            GameController.YouLost();
        }
        if (incomeMsgDto.type.Equals("you-won"))
        {
            GameController.YouWon();
        }
    }
예제 #4
0
 public void PlayerShootImpact(ShootImpactDto shootImpactDto)
 {
     GameObject.Find("fire-btn").GetComponent <Button>().interactable = true;
     DrawShootImpact(shootImpactDto, "opponent-slot");
     DrawDestroyedUnits(shootImpactDto.destroyed_units, OpponentBoard);
 }