Exemplo n.º 1
0
    private void NewEnemy(string[] msg, int connectionId)
    {
        int   instanceId = Int32.Parse(msg[1]);
        int   id         = Int32.Parse(msg[2]);
        float hp         = float.Parse(msg[3]);

        int   directionX = Int32.Parse(msg[4]);
        float posX       = float.Parse(msg[5]);
        float posY       = float.Parse(msg[6]);

        NetworkPlayer player = server.GetPlayer(connectionId);

        Room room = player.room;

        room.AddEnemy(instanceId, id, hp);

        NetworkEnemy enemy = room.GetEnemy(id);

        enemy.SetPosition(directionX, posX, posY);

        string message = "EnemyRegistered/" + instanceId + "/" + id + "/" + directionX + "/" + posX + "/" + posY;

        if (msg.Length >= 9)
        {
            float patrolX = float.Parse(msg[7]);
            float patrolY = float.Parse(msg[8]);

            message += ("/" + patrolX + "/" + patrolY);
            enemy.SetPatrollingPoint(directionX, posX, posY, patrolX, patrolY);
        }

        room.SendMessageToAllPlayers(message, true);
    }
Exemplo n.º 2
0
    public NetworkEnemy AddEnemy(int instanceId, int enemyId, float hp)
    {
        NetworkEnemy enemy = new NetworkEnemy(instanceId, enemyId, hp, this);

        enemies.Add(enemy);

        return(enemy);
    }
Exemplo n.º 3
0
    private void ReduceEnemyHp(string message, string[] msg, int connectionId)
    {
        int           enemyId = Int32.Parse(msg[1]);
        float         enemyHp = float.Parse(msg[2]);
        NetworkPlayer player  = server.GetPlayer(connectionId);
        NetworkEnemy  enemy   = player.room.GetEnemy(enemyId);

        enemy.ReduceHp(enemyHp);
    }
    private void EnemyDied(string message, string[] msg, string ip)
    {
        int enemyId = Int32.Parse(msg[1]);

        NetworkPlayer player = server.GetPlayer(ip);
        NetworkEnemy  enemy  = player.room.GetEnemy(enemyId);

        if (enemy != null)
        {
            enemy.Die();
        }
    }
Exemplo n.º 5
0
    private void EnemyChangePosition(string message, string[] msg, int connectionId)
    {
        int   enemyId    = Int32.Parse(msg[1]);
        int   directionX = Int32.Parse(msg[2]);
        float posX       = float.Parse(msg[3]);
        float posY       = float.Parse(msg[4]);

        NetworkPlayer player = server.GetPlayer(connectionId);
        NetworkEnemy  enemy  = player.room.GetEnemy(enemyId);

        enemy.SetPosition(directionX, posX, posY);
        player.room.SendMessageToAllPlayersExceptOne(message, connectionId, false);
    }
Exemplo n.º 6
0
    private void SendEnemyPatrollingPoint(string message, string[] msg, int connectionId)
    {
        int   enemyId    = Int32.Parse(msg[1]);
        int   directionX = Int32.Parse(msg[2]);
        float posX       = float.Parse(msg[3]);
        float posY       = float.Parse(msg[4]);
        float patrolX    = float.Parse(msg[5]);
        float patrolY    = float.Parse(msg[6]);

        NetworkPlayer player = server.GetPlayer(connectionId);
        NetworkEnemy  enemy  = player.room.GetEnemy(enemyId);

        enemy.SetPatrollingPoint(directionX, posX, posY, patrolX, patrolY);
        player.room.SendMessageToAllPlayersExceptOne(message, connectionId, true);
    }
    // Use this for initialization
    void Awake()
    {
        animator      = GetComponent <Animator>();
        healthManager = GetComponent <HealthManager>();
        networkEnemy  = GetComponent <NetworkEnemy>();
        agent         = GetComponent <NavMeshAgent>();

        if (!PhotonNetwork.isMasterClient)
        {
            agent.enabled = false;
        }
        else
        {
            StartCoroutine(CoRetargeting());
        }
    }
Exemplo n.º 8
0
        public void PullActions()
        {
            string response;

            do
            {
                response = DownloadString("?mode=getActionsLong&session={0}", sessionId);
            } while (string.IsNullOrEmpty(response));

            foreach (string action in response.SplitEx(';'))
            {
                lock (connectedClients)
                {
                    string[] args     = action.SplitEx(':');
                    string[] argsargs = args[1].SplitEx(',');
                    string   gameId   = argsargs[0];
                    switch (args[0])
                    {
                    case "gs":
                        var enemy = new NetworkEnemy(this, gameId, new EnemyId {
                            Name = argsargs[2], SessionNo = argsargs[3]
                        });
                        connectedClients.Add(gameId, enemy);
                        GameStarted(new ServerGame {
                            Holes = argsargs.Skip(4).Select(Position.Parse).ToArray(), ServerStarts = argsargs[1] == "w", RemotePlayer = enemy
                        });
                        break;

                    case "mv":
                        connectedClients[gameId].PushMove(new Move(Position.Parse(argsargs[1]), Position.Parse(argsargs[2])));
                        break;

                    case "ge":
                    case "ga":
                        connectedClients[gameId].GameEnded();
                        connectedClients.Remove(gameId);
                        break;
                    }
                }
            }
        }
Exemplo n.º 9
0
 public bool RemoveEnemy(NetworkEnemy enemy)
 {
     return(enemies.Remove(enemy));
 }