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); } } }
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; } }