Ejemplo n.º 1
0
        //meta! sender="AgentZasrtavok", id="38", type="Start"
        public void ProcessStart(MessageForm message)
        {
            var ms      = (MyMessage)message;
            var vozidlo = ms.Vozidlo;

            // var zastavka = vozidlo.Linka.Presuny[ms.Vozidlo.AktualnyPresun].ZastavkaStart;
            if (vozidlo.Typ == "A")
            {
                int a = 0;
                if (ms.Vozidlo.PocetDvery <= vozidlo.Obsadene)
                {
                    a = ms.Vozidlo.PocetDvery;
                }
                else
                {
                    a = vozidlo.Obsadene;
                }
                for (int i = 0; i < a; i++)
                {
                    if (!ms.Vozidlo.JePrazdny())
                    {
                        ms      = (MyMessage)message.CreateCopy();
                        ms.Code = Mc.VystupujeNiekto;
                        vozidlo.PocetObsadenychDvery++;
                        var ces = vozidlo.Vystup();
                        if (MySim.CurrentTime > 6786)
                        {
                            Prerataj(vozidlo, ces);
                        }
                        Hold(TriangularRng.Sample(), ms);
                        //Hold(3.1, ms);
                    }
                }

                if (vozidlo.PocetObsadenychDvery == 0)
                {
                    ms.Addressee = MyAgent;
                    ms.Code      = Mc.KoniecVystupu;
                    Notice(ms);
                }
            }
            else
            {
                if (!vozidlo.JePrazdny())
                {
                    ms      = (MyMessage)message.CreateCopy();
                    ms.Code = Mc.VystupujeNiekto;
                    var ces = vozidlo.Vystup();
                    if (MySim.CurrentTime > 6786)
                    {
                        Prerataj(vozidlo, ces);
                    }
                    Hold(4, ms);
                    //Hold(3.1, ms);
                }
                else
                {
                    ms.Addressee = MyAgent;
                    ms.Code      = Mc.KoniecVystupu;
                    Notice(ms);
                }
            }
        }