private void ReadBombState(NetIncomingMessage msg, Player p, Bomb b)
        {
            bool active = msg.ReadBoolean();

            if (active)
            {
                float     remains = (float)(msg.ReadTime(false) - NetTime.Now);
                float     px      = msg.ReadFloat();
                float     py      = msg.ReadFloat();
                Direction dir     = (Direction)msg.ReadByte();
                float     speed   = msg.ReadFloat();
                bool      jelly   = msg.ReadBoolean();
                bool      trigger = msg.ReadBoolean();

                if (!b.isActive)
                {
                    b.player = p;
                    b.Activate();
                    game.Field.SetBomb(b);
                }

                b.timeRemains = remains;
                b.SetPos(px, py);
                b.SetSpeed(speed);
                b.SetJelly(jelly);
                b.SetTrigger(trigger);
                // TODO: jelly & trigger
            }
            else if (b.isActive)
            {
                b.Deactivate();
                b.RemoveFromField();
            }
        }
Beispiel #2
0
        public void TestShortFuze()
        {
            List <String> result = new List <String>();
            PlayerMock    player = new PlayerMock(result);

            DiseaseList list = new DiseaseListMock(player);

            Diseases disease = Diseases.SHORTFUZE;

            list.TryInfect(disease);
            Bomb bomb = player.GetNextBomb();

            Assert.AreEqual(CVars.cg_fuzeTimeShort.floatValue, 1000 * bomb.timeRemains);

            bomb.Deactivate(); // hack

            list.TryCure(disease);
            bomb = player.GetNextBomb();
            Assert.AreEqual(CVars.cg_fuzeTimeNormal.floatValue, 1000 * bomb.timeRemains);
        }
Beispiel #3
0
        public void TestShortFlame()
        {
            List <String> result = new List <String>();
            PlayerMock    player = new PlayerMock(result);

            DiseaseList list = new DiseaseListMock(player);

            Diseases disease = Diseases.SHORTFLAME;

            list.TryInfect(disease);
            Bomb bomb = player.GetNextBomb();

            Assert.AreEqual(CVars.cg_bombShortFlame.intValue, bomb.GetRadius());

            bomb.Deactivate(); // hack

            list.TryCure(disease);
            bomb = player.GetNextBomb();
            Assert.AreEqual(CVars.cg_initFlame.intValue, bomb.GetRadius());
        }