//meta! sender="AgentDopravy", id="36", type="Request" public void ProcessNalozAuto(MessageForm message) { Vehicle naNalozenie = ((MyMessage)message).Car; // zaciatok cakania // to do dorobit ak cakalo cez noc tak += naNalozenie.ZaciatokCakania = MySim.CurrentTime; // TO=DO - KOLKO SA BUDE NAKLADAT NA AUTO ak bude na skladke menej materialu? Pocka na dovoz???? // ak nakladace prave niekoho nakladaju alebo nemaju pracovnu dobu if ((!(!MyAgent.NakladacBIsOccupied && MyAgent.NakladacBIsWorking()) && !(!MyAgent.NakladacAIsOccupied && MyAgent.NakladacAIsWorking())) || MyAgent.MaterialNaSkladke == 0) { lock (naNalozenie) { naNalozenie.Activity = "Waiting"; naNalozenie.Position = "Queue at Loader"; MyAgent.AutaSkladkaQueue.AddLast(naNalozenie); MyAgent.MessageSkladkaQueue.AddLast((MyMessage)message); } } else { // ak B ma pracovnu dobu a nenaklada nikoho if (!MyAgent.NakladacBIsOccupied && MyAgent.NakladacBIsWorking()) { message.Addressee = MyAgent.FindAssistant(SimId.ProcesNakladacB); MyAgent.NakladacBIsOccupied = true; naNalozenie.Activity = "Being loaded"; naNalozenie.Position = "Loader B"; BStartedWorking = MySim.CurrentTime; // koniec cakania naNalozenie.CasCakaniaNaSkladke = (MySim.CurrentTime - naNalozenie.ZaciatokCakania); // nalozime mnozstvo ktore je aktualne na skladke naNalozenie.ToUnload = (int)LoadCarWith(naNalozenie.Volume - naNalozenie.RealVolume); // pridanie casu cakania na skladke do statistik MyAgent.WaitingTimePerCar.AddSample(naNalozenie.CasCakaniaNaSkladke); StartContinualAssistant(message); } else if (!MyAgent.NakladacAIsOccupied && MyAgent.NakladacAIsWorking()) { message.Addressee = MyAgent.FindAssistant(SimId.ProcesNakladacA); MyAgent.NakladacAIsOccupied = true; naNalozenie.Activity = "Being loaded"; naNalozenie.Position = "Loader A"; AStartedWorking = MySim.CurrentTime; // koniec cakania naNalozenie.CasCakaniaNaSkladke = (MySim.CurrentTime - naNalozenie.ZaciatokCakania); // nalozime mnozstvo ktore je aktualne na skladke naNalozenie.ToUnload = (int)LoadCarWith(naNalozenie.Volume - naNalozenie.RealVolume); // pridanie casu cakania na skladke do statistik MyAgent.WaitingTimePerCar.AddSample(naNalozenie.CasCakaniaNaSkladke); StartContinualAssistant(message); } } }
public void ProcessStart(MessageForm message) { MyMessage zaciatokPracovnejDobyA = new MyMessage(MySim); zaciatokPracovnejDobyA.Addressee = MyAgent; zaciatokPracovnejDobyA.Code = Mc.ZaciatokPracovnejDoby; zaciatokPracovnejDobyA.Name = ((MyMessage)message).Name; Notice(zaciatokPracovnejDobyA); MyMessage sprava = new MyMessage(MySim); sprava.Name = ((MyMessage)message).Name; double delTime; if (sprava.Name == "A") { delTime = Timer.NewWorkDayStartsAt(MySim.CurrentTime, Settings.Constants.NakladacAStartsAt); } else { delTime = Timer.NewWorkDayStartsAt(MySim.CurrentTime, Settings.Constants.NakladacBStartsAt); } sprava.Code = Mc.KoniecPracovnejDoby; sprava.Addressee = MyAgent.FindAssistant(SimId.PlanovacPracovnejDoby); Hold(delTime, sprava); }
private static void Main(string[] args) { int n = 5; double sum = 0; Global.MyStopWatch = new Stopwatch(); for (int t = 0; t < n; t++) { Console.WriteLine($"Trial {t + 1}"); Global.NoMessages = 0; Global.MyStopWatch.Restart(); //var env = new EnvironmentMas(noTurns: 10000, parallel: true); // 10 mil msg, ~1516 ms => 6462.079 msg / ms var env = new EnvironmentMas(noTurns: 10000, parallel: false); // ~1351129 msg, ~394 ms => 3395.464 msg / ms for (int i = 0; i < Global.NoAgents; i++) { var a = new MyAgent(i); env.Add(a, $"a{i}"); } env.Start(); Global.MyStopWatch.Stop(); Console.WriteLine($"{Global.NoMessages} msg"); Console.WriteLine($"{Global.MyStopWatch.ElapsedMilliseconds} ms\n"); sum += (double)Global.NoMessages / (double)Global.MyStopWatch.ElapsedMilliseconds; } Console.WriteLine($"{sum / n:F3} msg/ms"); }
private double microbusUnboardingTime = 4; // TODO change distribution public UnboardingFinishedScheduler(int id, Simulation mySim, CommonAgent myAgent) : base(id, mySim, myAgent) { MyAgent.UnboardingFinishedScheduler = this; busUnboardingTimeGenerator = new TriangularRNG(0.6, 1.2, 4.2); MyAgent.AddOwnMessage(Mc.PassengerUnboarded); }
private static void Main() { Console.WriteLine("Setup gameConfig"); var gameConfig = new GameConfig() { StartPlayer = 1, // line for deck selection in here Player1HeroClass = CardClass.WARRIOR, Player2HeroClass = CardClass.WARRIOR, FillDecks = true, Shuffle = true, Logging = false }; Console.WriteLine("Setup POGameHandler"); AbstractAgent player1 = new GreedyAgent(); AbstractAgent player2 = new MyAgent(); var gameHandler = new POGameHandler(gameConfig, player1, player2, repeatDraws: false); Console.WriteLine("Simulate Games"); //gameHandler.PlayGame(); gameHandler.PlayGames(nr_of_games: 100, addResultToGameStats: true, debug: false); GameStats gameStats = gameHandler.getGameStats(); gameStats.printResults(); Console.WriteLine("Test successful"); Console.ReadLine(); }
//meta! sender="AgentVozidiel", id="30", type="Request" public void ProcessNastupenie(MessageForm message) { MyMessage ms = (MyMessage)message.CreateCopy(); var vozidlo = ms.Vozidlo; var zastavka = vozidlo.Linka.Presuny[vozidlo.AktualnyPresun].ZastavkaStart; //Console.WriteLine("Prisiel na zastavku " + zastavka.Nazov + " "+ MySim.CurrentTime); if (zastavka.Nazov != "ST") { if (zastavka.PocetCestujucich == 0) { OdchodAutobusu(ms); return; } ms.Addressee = MyAgent.FindAssistant(SimId.ProcesNastupenie); StartContinualAssistant(ms); } else { //tuto ms.Addressee = MyAgent.FindAssistant(SimId.ProcesVystupenie); StartContinualAssistant(ms); } }
//meta! sender="AgentModelu", id="88", type="Call" public void ProcessInicializacia(MessageForm message) { // zaciatok planovania dovozu materialu message.Code = Mc.NalozAuto; message.Addressee = MyAgent.FindAssistant(SimId.PlanovacDovozMaterialu); ((MyMessage)message).Name = "A"; StartContinualAssistant(message); MyMessage sprava2 = new MyMessage(MySim); sprava2.Code = Mc.NalozAuto; sprava2.Addressee = MyAgent.FindAssistant(SimId.PlanovacDovozMaterialu); sprava2.Name = "B"; StartContinualAssistant(sprava2); MyMessage sprava3 = new MyMessage(MySim); sprava3.Code = Mc.NalozAuto; sprava3.Addressee = MyAgent.FindAssistant(SimId.PlanovacDovozMaterialu); sprava3.Name = "C"; StartContinualAssistant(sprava3); MyMessage sprava4 = new MyMessage(MySim); sprava4.Code = Mc.ExportZacaty; sprava4.Addressee = MyAgent.FindAssistant(SimId.PlanovacOdvozMaterialu); //StartContinualAssistant(sprava4); Notice(sprava4); }
private static void Main(string[] args) { Console.WriteLine("Setup gameConfig"); //todo: rename to Main GameConfig gameConfig = new GameConfig { StartPlayer = 1, Player1HeroClass = CardClass.MAGE, Player2HeroClass = CardClass.MAGE, FillDecks = true, Logging = false }; Console.WriteLine("Setup POGameHandler"); AbstractAgent player1 = new MyAgent(); AbstractAgent player2 = new RandomAgent(); var gameHandler = new POGameHandler(gameConfig, player1, player2, debug: true); Console.WriteLine("PlayGame"); //gameHandler.PlayGame(); gameHandler.PlayGames(10); GameStats gameStats = gameHandler.getGameStats(); gameStats.printResults(); Console.WriteLine("Test successful"); Console.ReadLine(); }
//meta! sender="AgentVozidiel", id="10", type="Request" public void ProcessPresun(MessageForm message) { //mam zacati presun jedneho auta MyMessage ms = (MyMessage)message.CreateCopy(); ms.Addressee = MyAgent.FindAssistant(SimId.ProcesPresun); StartContinualAssistant(ms); }
private void ProcessEndWorkDay(MessageForm message) { MyMessage naplanujZaciatokPrace = new MyMessage(MySim); naplanujZaciatokPrace.Addressee = MyAgent.FindAssistant(SimId.PlanovacPracovnejDoby2); naplanujZaciatokPrace.Code = Mc.Start; StartContinualAssistant(naplanujZaciatokPrace); }
private void ApplyDamage(int damage, MyAgent shooter) //Applicazione danno { currentLP -= damage; if (currentLP <= 0) { Die(shooter); } }
public BoardingFinishedScheduler(int id, Simulation mySim, CommonAgent myAgent) : base(id, mySim, myAgent) { MyAgent.BoardingFinishedScheduler = this; MyAgent.AddOwnMessage(Mc.PassengerBoarded); busBoardingTimeGenerator = new TriangularRNG(0.6, 1.2, 4.2); microbusBoardingTimeGenerator = new UniformContinuousRNG(6, 10); }
//meta! sender="ProcesVykladacB", id="72", type="Finish" public void ProcessFinishProcesVykladacB(MessageForm message) { Vehicle auto = ((MyMessage)message).Car; if (auto.RealVolume == 0) { MyAgent.VykladacBIsOccupied = false; message.Code = Mc.VylozAuto; message.Addressee = MySim.FindAgent(SimId.AgentDopravy); Response(message); if (!MyAgent.AutaStavbaQueue.IsEmpty() && MyAgent.VykladacBIsWorking() && MyAgent.MaterialNaStavbe < Constants.MaxMaterialAtBuilding) { Vehicle naVylozenie; lock (Constants.Queue2Lock) { naVylozenie = MyAgent.AutaStavbaQueue.First.Value; MyAgent.AutaStavbaQueue.RemoveFirst(); } MyMessage msg = MyAgent.MessageStavbaQueue.First.Value; MyAgent.MessageStavbaQueue.RemoveFirst(); msg.Addressee = MyAgent.FindAssistant(SimId.ProcesVykladacB); msg.Code = Mc.VylozAuto; //msg.Addressee = MySim.FindAgent(SimId.AgentStavby); //Request(msg); // ukoncenie cakania naVylozenie.CasCakaniaNaStavbe = (MySim.CurrentTime - naVylozenie.ZaciatokCakania); // pridanie casu cakania na skladke do statistik MyAgent.WaitingTimePerCar.AddSample(naVylozenie.CasCakaniaNaStavbe); naVylozenie.ToUnload = LoadCarWith(naVylozenie.RealVolume); msg.Car = naVylozenie; MyAgent.VykladacBIsOccupied = true; StartContinualAssistant(msg); } } else { // je volna kapacita? if (MyAgent.VykladacBIsWorking() && MyAgent.MaterialNaStavbe < Constants.MaxMaterialAtBuilding) { ((MyMessage)message).Car.ToUnload = LoadCarWith(auto.RealVolume); message.Code = Mc.VylozAuto; message.Addressee = MyAgent.FindAssistant(SimId.ProcesVykladacB); MyAgent.VykladacBIsOccupied = true; StartContinualAssistant(message); } else { MyAgent.AutaStavbaQueue.AddFirst(((MyMessage)message).Car); MyAgent.MessageStavbaQueue.AddFirst((MyMessage)message); MyAgent.VykladacBIsOccupied = false; } } }
private void ProcessKoniecNastupu(MessageForm message) { var ms = (MyMessage)message; var vozidlo = ms.Vozidlo; var zastavka = vozidlo.Linka.Presuny[ms.Vozidlo.AktualnyPresun].ZastavkaStart; if (vozidlo.Typ == "A") { if (vozidlo.JePlny()) { vozidlo.Caka = false; if (zastavka.CakajuceVozidlo == vozidlo) { zastavka.CakajuceVozidlo = null; } OdchodAutobusu(message); return; } if (((MySimulation)MySim)._cakanie && zastavka.CakajuceVozidlo == null) { var ms2 = new MyMessage(MySim); ms2.Vozidlo = ms.Vozidlo; ms2.Addressee = MyAgent.FindAssistant(SimId.ProcesCakania); zastavka.CakajuceVozidlo = vozidlo; vozidlo.Caka = true; //dorobit nastupovanie pocas cakania StartContinualAssistant(ms2); } else { if (zastavka.CakajuceVozidlo != vozidlo) { vozidlo.Caka = false; OdchodAutobusu(message); } else { if (vozidlo.Odchod && vozidlo.PocetObsadenychDvery == 0) { vozidlo.Caka = false; zastavka.CakajuceVozidlo = null; vozidlo.Odchod = false; OdchodAutobusu(message); } else { ; } } } } else { OdchodAutobusu(ms); } }
//meta! sender="AgentSkladky", id="36", type="Response" public void ProcessNalozAuto(MessageForm message) { // auto skoncilo nakladanie MyMessage sprava = new MyMessage(MySim); sprava.Volume = ((MyMessage)message).Volume; sprava.Car = ((MyMessage)message).Car; sprava.Addressee = MyAgent.FindAssistant(SimId.ProcessPresunNaStavbu); StartContinualAssistant(sprava); }
protected void NaplanujObsluhu(MessageForm message) { var pracovnik = MyAgent.DajVolnehoPracovnika(); ++MyAgent.PocetPracujucich; pracovnik.Utilization.AddSample(1); MyAgent.VytazeniePracovnikov.AddSample((double)MyAgent.PocetPracujucich / (MyAgent.PocetPracovnikov - MyAgent.PocetObedujucich)); pracovnik.ZaciatokObsluhovania = MySim.CurrentTime; MyAgent.DostupniPracovnici.Set(pracovnik.IDPracovnika, false); ((Sprava)message).Pracovnik = pracovnik; }
//meta! sender="PlanovacDovozMaterialu", id="55", type="Finish" public void ProcessFinishPlanovacDovozMaterialu(MessageForm message) { message.Code = Mc.DovozMaterialu; message.Addressee = MySim.FindAgent(SimId.AgentModelu); Notice(message); MyMessage sprava = new MyMessage(MySim); sprava.Name = ((MyMessage)message).Name; sprava.Addressee = MyAgent.FindAssistant(SimId.PlanovacDovozMaterialu); StartContinualAssistant(sprava); }
/// <summary> /// 代理模式 /// </summary> static void TestAgent() { SchoolGirl jiaojiao = new SchoolGirl(); jiaojiao.Name = "李娇娇"; MyAgent daili = new MyAgent(jiaojiao); daili.GiveDolls(); daili.GiveFlowers(); daili.GiveChocolate(); }
//meta! sender="AgentDopravy", id="37", type="Request" public void ProcessVylozAuto(MessageForm message) { Vehicle naVylozenie = ((MyMessage)message).Car; // zaciatok cakania v rade // to do - podmienka aby sa cakalo iba do konca pracovnej doby Vykladaca a potom sa prirataval cas od zaciatku pracovnej doby naVylozenie.ZaciatokCakania = MySim.CurrentTime; // ak A nepracuje alebo naklada a B nepracuje alebo naklada alebo je zakazany if ((!(!MyAgent.VykladacBIsOccupied && !MyAgent.VykladacBIsDisabled && MyAgent.VykladacBIsWorking()) && !(!MyAgent.VykladacAIsOccupied && MyAgent.VykladacAIsWorking())) || MyAgent.MaterialNaStavbe == Constants.MaxMaterialAtBuilding) { MyAgent.AutaStavbaQueue.AddLast(naVylozenie); MyAgent.MessageStavbaQueue.AddLast((MyMessage)message); naVylozenie.Activity = "Waiting"; naVylozenie.Position = "Queue at unloader"; } else { // ak B pracuje, nie je zakazany a nenaklada if (!MyAgent.VykladacBIsOccupied && !MyAgent.VykladacBIsDisabled && MyAgent.VykladacBIsWorking()) { message.Addressee = MyAgent.FindAssistant(SimId.ProcesVykladacB); MyAgent.VykladacBIsOccupied = true; naVylozenie.Activity = "Being unloaded"; naVylozenie.Position = "Unloader B"; // koniec cakania naVylozenie.CasCakaniaNaStavbe = (MySim.CurrentTime - naVylozenie.ZaciatokCakania); // pridanie do statistik naVylozenie.ToUnload = LoadCarWith(naVylozenie.RealVolume); MyAgent.WaitingTimePerCar.AddSample(naVylozenie.CasCakaniaNaStavbe); StartContinualAssistant(message); } // ak A pracuje a nenaklada else if (!MyAgent.VykladacAIsOccupied && MyAgent.VykladacAIsWorking()) { message.Addressee = MyAgent.FindAssistant(SimId.ProcesVykladacA); MyAgent.VykladacAIsOccupied = true; naVylozenie.Activity = "Being unloaded"; naVylozenie.Position = "Unloader A"; // koniec cakania naVylozenie.CasCakaniaNaStavbe = (MySim.CurrentTime - naVylozenie.ZaciatokCakania); // pridanie do statistik naVylozenie.ToUnload = LoadCarWith(naVylozenie.RealVolume); MyAgent.WaitingTimePerCar.AddSample(naVylozenie.CasCakaniaNaStavbe); StartContinualAssistant(message); } } }
public void NejakaMetoda(MyMessage message) { Vehicle naNalozenie = null; // ak B ma pracovnu dobu a nenaklada nikoho if (!MyAgent.NakladacBIsOccupied && MyAgent.NakladacBIsWorking() && MyAgent.MaterialNaSkladke != 0) { MyMessage sprava = MyAgent.MessageSkladkaQueue.First.Value; MyAgent.MessageSkladkaQueue.RemoveFirst(); naNalozenie = MyAgent.AutaSkladkaQueue.First.Value; MyAgent.AutaSkladkaQueue.RemoveFirst(); sprava.Addressee = MyAgent.FindAssistant(SimId.ProcesNakladacB); MyAgent.NakladacBIsOccupied = true; BStartedWorking = MySim.CurrentTime; // koniec cakania naNalozenie.CasCakaniaNaSkladke = (MySim.CurrentTime - naNalozenie.ZaciatokCakania); // nalozime mnozstvo ktore je aktualne na skladke naNalozenie.ToUnload = (int)LoadCarWith(naNalozenie.Volume - naNalozenie.RealVolume); // pridanie casu cakania na skladke do statistik sprava.Car = naNalozenie; MyAgent.WaitingTimePerCar.AddSample(naNalozenie.CasCakaniaNaSkladke); StartContinualAssistant(sprava); } else if (!MyAgent.NakladacAIsOccupied && MyAgent.NakladacAIsWorking()) { MyMessage sprava = MyAgent.MessageSkladkaQueue.First.Value; MyAgent.MessageSkladkaQueue.RemoveFirst(); naNalozenie = MyAgent.AutaSkladkaQueue.First.Value; MyAgent.AutaSkladkaQueue.RemoveFirst(); sprava.Addressee = MyAgent.FindAssistant(SimId.ProcesNakladacA); MyAgent.NakladacAIsOccupied = true; AStartedWorking = MySim.CurrentTime; // koniec cakania naNalozenie.CasCakaniaNaSkladke = (MySim.CurrentTime - naNalozenie.ZaciatokCakania); // nalozime mnozstvo ktore je aktualne na skladke naNalozenie.ToUnload = (int)LoadCarWith(naNalozenie.Volume - naNalozenie.RealVolume); // pridanie casu cakania na skladke do statistik sprava.Car = naNalozenie; MyAgent.WaitingTimePerCar.AddSample(naNalozenie.CasCakaniaNaSkladke); StartContinualAssistant(sprava); } }
// Use this for initialization void Start() { _agent = gameObject.GetComponent <MyAgent>(); foreach (GameObject obj in GameObject.FindGameObjectsWithTag("PlayerMainShip")) { float squareDistance = (transform.position - obj.transform.position).sqrMagnitude; if (squareDistance < _smallestDistance) { _smallestDistance = squareDistance; _target = obj; } } }
public void ReportCommand(FriendlyShipIntel agent, TaskType taskType, MyTuple <IntelItemType, long> targetKey, TimeSpan timestamp, CommandType commandType = CommandType.Override) { if (Host != null) { Host.ReportCommand(agent, taskType, targetKey, timestamp, commandType); } if (agent.ID == Context.Reference.CubeGrid.EntityId && MyAgent != null) { MyAgent.AddTask(taskType, targetKey, CommandType.Override, 0, timestamp + CanonicalTimeDiff); } else { Context.IGC.SendBroadcastMessage(agent.CommandChannelTag, MyTuple.Create((int)taskType, MyTuple.Create((int)targetKey.Item1, targetKey.Item2), (int)commandType, 0)); } }
/// <summary> /// Decks to choose from: /// Decks.AggroPirateWarrior /// Decks.RenoKazakusMage /// Decks.MidrangeJadeShaman /// Rules: /// - an Agent class that inherist from Abstract Agent /// - supporting files of up to 1GB(please contact us in case you need to load a bigger database or something like an extremely large Neural Network) /// - the agent needs to finish the whole turn with a time limit of 75 seconds.Execution times for returned moves are removed from the time being used by the agent.In case the submitted agent exceeds this limit, it will lose the game. /// /// </summary> /// <param name="args"></param> private static void Main(string[] args) { int numberOfGamesGames = 100; int filesToWrite = 1; var Rnd = new Random(); var watch = System.Diagnostics.Stopwatch.StartNew(); int exceptioncounter = 0; int turnsPlayed = 0; for (int k = 0; k < filesToWrite; k++) { for (int i = 0; i < numberOfGamesGames; i++) { //Console.WriteLine("Setup gameConfig"); try { GameConfig gameConfig = new GameConfig { StartPlayer = -1, Player1HeroClass = CardClass.WARRIOR, Player2HeroClass = CardClass.WARRIOR, Player1Deck = Decks.AggroPirateWarrior, Player2Deck = Decks.AggroPirateWarrior, Logging = false }; AbstractAgent player1 = new MyAgent(); gameConfig.Player1Name = "Player1"; AbstractAgent player2 = new RandomAgentLateEnd(); gameConfig.Player2Name = "Player2"; var gameHandler = new POGameHandler(gameConfig, player1, player2, debug: false); gameHandler.PlayGames(5, true); turnsPlayed += gameHandler.getGameStats().TurnsPlayed; } catch { exceptioncounter++; Console.Write("Ex:" + exceptioncounter + " "); i--; } if (i % 100 == 0 && i != 0) { Console.WriteLine("\t" + watch.Elapsed.TotalMinutes.ToString("F2") + "min \t\tCount:" + i); } } Console.WriteLine("Done Turns:" + turnsPlayed); } Console.ReadLine(); }
public override void PrepareReplication() { MyMessage sprava = new MyMessage(MySim); double delTime = Timer.NewWorkDayStartsAt(MySim.CurrentTime, Settings.Constants.NakladacAStartsAt); sprava.Name = "A"; sprava.Code = Mc.KoniecPracovnejDoby; sprava.Addressee = MyAgent.FindAssistant(SimId.PlanovacPracovnejDoby); Hold(delTime, sprava); MyMessage sprava2 = new MyMessage(MySim); double delTime2 = Timer.NewWorkDayStartsAt(MySim.CurrentTime, Settings.Constants.NakladacBStartsAt); sprava2.Name = "B"; sprava2.Code = Mc.KoniecPracovnejDoby; sprava2.Addressee = MyAgent.FindAssistant(SimId.PlanovacPracovnejDoby); Hold(delTime2, sprava2); }
private static void Main(string[] args) { var sw = new Stopwatch(); sw.Start(); var env = new EnvironmentMas(); // 10000 => 3800 ms //var env = new EnvironmentMas(parallel: false); // 10000 => 600 ms, 100000 => 92 s var a = new MyAgent(0, -1); env.Add(a, "a0"); // the root agent env.Start(); sw.Stop(); Console.WriteLine($"{sw.ElapsedMilliseconds:F3} ms"); }
//meta! sender="AgentVozidiel", id="42", type="Notice" public void ProcessPrichodCestuZastavka(MessageForm message) { var ms = (MyMessage)message; var zastavka = MyAgent.ZastavkaList.FirstOrDefault(x => ms.Cestujuci.Zastavka != null && x.Nazov == ms.Cestujuci.Zastavka); zastavka.Enqueue(ms.Cestujuci); ms.Cestujuci.ZaciatokCakania = MySim.CurrentTime; //if (zastavka.Nazov == "AB") //{ // Console.WriteLine("AB "+ MySim.CurrentTime); //} if (zastavka.CakajuceVozidlo != null) { ms.Addressee = MyAgent.FindAssistant(SimId.ProcesNastupenie); ms.Vozidlo = zastavka.CakajuceVozidlo; StartContinualAssistant(ms); } }
internal static DataTable ListenAgent(MyAgent agent) { DataTable dt = new DataTable(); agent.built_query = agent.query; using (MySqlConnection conexion = new MySqlConnection(agent.chain)) { conexion.Open(); MySqlCommand comando = new MySqlCommand(); comando.Connection = conexion; comando.CommandText = agent.query; comando.CommandTimeout = 0; MySqlDataAdapter da = new MySqlDataAdapter(comando); da.Fill(dt); conexion.Close(); } return(dt); }
//meta! sender="PlanovacOdvozMaterialu", id="125", type="Finish" public void ProcessFinishPlanovacOdvozMaterialu(MessageForm message) { // notice agentovi modelu -> dopravy -> Stavby MyMessage spravaDoprava = new MyMessage(MySim); spravaDoprava.Volume = ((MyMessage)message).Volume; spravaDoprava.Code = Mc.OdvozMaterialu; spravaDoprava.Addressee = MySim.FindAgent(SimId.AgentModelu); Notice(spravaDoprava); // naplanovat dalsi proces - ak je na stavbe dostatok materialu, TO-DO MyMessage novyOdvoz = new MyMessage(MySim); novyOdvoz.Code = Mc.OdvozMaterialu; novyOdvoz.Addressee = MyAgent.FindAssistant(SimId.PlanovacOdvozMaterialu); StartContinualAssistant(novyOdvoz); }
void OnTriggerEnter(Collider collision) { if (collision.gameObject.CompareTag("Player")) { MyAgent player = collision.gameObject.GetComponent <MyAgent>(); if (player.GetTeam() == team) { for (int i = player.GetCarrying() - 1; i > -1; i--) { GameObject currentTarget = player.GetCarry(i); capturedTargets.Add(currentTarget); int spot = AddToFirstSpotInBase(); Vector3 position = GetPosition(spot); currentTarget.GetComponent <Target>().AddToBase(spot, team, position); player.RemoveCarry(currentTarget); } } } }
public override void Setup() { for (int i = 1; i <= _noChildren; i++) { long newId = _id * 10 + i; if (newId < _maxAgents) { var a = new MyAgent(newId, _id); //Console.WriteLine($"Creating a{newId}"); this.Environment.Add(a, $"a{newId}"); _messagesLeft++; } } if (_messagesLeft == 0) { Send($"a{_parentId}", $"{_id}"); // send id to parent Stop(); } }