internal void ResetArea(BotAgent resetter) { if (Time.time - timeAtLastReset >= resetCooldown) { Debug.Log("RESETTING TRAINING AREA"); ResetSpawnPositions(); int arena = (int)academy.resetParameters["arena"]; foreach (Transform ar in arenas) { ar.gameObject.SetActive(false); } arenas[arena].gameObject.SetActive(true); foreach (BotAgent bot in team1) { if (bot != resetter) { bot.Done(); } } foreach (BotAgent bot in team2) { if (bot != resetter) { bot.Done(); } } timeAtLastReset = Time.time; } }
public override bool Fire() { if (!base.Fire()) { return(false); } RaycastHit hit; LayerMask layerMask = LayerMask.GetMask("Default"); if (LayerMask.LayerToName(botWeaponHolder.gameObject.layer) == "team1") { layerMask = LayerMask.GetMask("team2");//will only hit team2 layer //Debug.Log(botWeaponHolder.name + " is targeting team2"); } else { layerMask = LayerMask.GetMask("team1");//will only hit team1 layer //Debug.Log(botWeaponHolder.name + " is targeting team1"); } Debug.DrawRay(muzzle.position, muzzle.forward * 20, Color.red, .5f); if (Physics.Raycast(muzzle.position, muzzle.forward, out hit, 500, layerMask)) { //Debug.Log("bullet hit SOMETHING"); float damage = 0; if (hit.distance < damageCurveLength && !hit.transform.CompareTag("Player")) { damage = damageFallOff.Evaluate(hit.distance / damageCurveLength); } else { damage = damageFallOff.Evaluate(1);//The bullet hit something past max distance, lets just default to the lowest damagew now (don't want it to do NO dmg) } Player player = hit.transform.gameObject.GetComponent <Player>(); if (player != null) { Debug.Log("damaging"); player.Damage(damage); } BotAgent bot = hit.transform.gameObject.GetComponent <BotAgent>(); if (bot != null) { Debug.Log(botWeaponHolder.gameObject.name + " hit " + bot.gameObject.name + " for " + damage + " damage!"); bot.Damage(damage); botWeaponHolder.AddReward(.2f); } } return(true); }
private static void Main() { var ircUser = new IrcUser(Conf.Nick, Conf.User); var client = new IrcClient(Conf.Server, ircUser); var ChatBot = new BotAgent(); ChatBot.Initialise(); client.ConnectionComplete += (s, e) => { foreach (string chan in Conf.Channels) { client.JoinChannel(chan); } }; client.ChannelMessageRecieved += (s, e) => { var source = e.PrivateMessage.Source; var channel = client.Channels[source]; var message = e.PrivateMessage.Message; var urls = URLTitle.GetURLs(message); if (urls.Count != 0) { var responseTitle = URLTitle.GetTitle(urls[0]); channel.SendMessage(responseTitle); } else { var query = ChatBot.Query(message); var response = ChatBot.Reply(query); Log(message, response.Output, Conf.Nick, source); channel.SendMessage(response.Output); } }; client.NetworkError += (s, e) => Console.WriteLine("Error: {0}", e.SocketError); client.ConnectAsync(); while (true) { ; } }