Esempio n. 1
0
    void OnReceive(NetworkPacket pack, string id)
    {
        if (pack.Header == PacketType.AIPlayerVBastionPack)
        {
            AIPlayerVBastionPack packet = (AIPlayerVBastionPack)pack;

            if (packet.AIID == this.networkID)
            {
                toHandle = packet;

                wave_control.Instance.toReactivate.Enqueue(gameObject);
            }
        }
    }
Esempio n. 2
0
    public override void Update()
    {
        base.Update();

        if (execute)
        {
            playerobjs = GameObject.FindGameObjectsWithTag("Player");
            if (GetComponent <Root>().HP > 0)
            {
                lastpos = transform.position;
            }
            find_closest_player();

            if (currgate == null)
            {
                if (Vector3.Distance(transform.position, currplayerobj.transform.position) > 9f)
                {
                    attack_bastion_bool = true;
                    attack_player_bool  = false;
                }
                else
                {
                    attack_player_bool  = true;
                    attack_bastion_bool = false;
                }
            }
            else
            {
                attack_bastion_bool = true;
                attack_player_bool  = false;
            }


            choose_target_intelligent(); //from parent
            attack_player_intelligent(); //from parent
        }
        else
        {
            GetComponent <Rigidbody>().AddForce(new Vector3(0, -50, 0));
        }

        if (toHandle != null)
        {
            agent.enabled      = false;
            transform.position = toHandle.Position;
            agent.enabled      = true;
            agent.nextPosition = toHandle.Position;

            if (toHandle.AttackingBastion)
            {
                agent.SetDestination(bastion.transform.position);
                attack_bastion_bool = true;
            }
            else
            {
                GameObject go = GameObject.Find(toHandle.PlayerId);

                currplayerobjroot = go.GetComponent <Root>();
                currplayerobj     = go;

                agent.SetDestination(currplayerobjroot.transform.position);
                attack_bastion_bool = false;
            }

            toHandle      = null;
            lastUpdate    = DateTime.Now;
            hasSentPacket = false;
        }

        if (Network.IsHost && (DateTime.Now - lastSync).TotalMilliseconds > Network.UpdateInterval)
        {
            AIPlayerVBastionPack pack = new AIPlayerVBastionPack(transform.position, networkID, attack_bastion_bool, attack_bastion_bool ? null : currplayerobjroot.GetComponent <PlayerControl>().ID);
            Network.Send(pack);

            lastSync = DateTime.Now;
        }
    }