예제 #1
0
        /// <summary>
        /// deal with the iunput info about the operations of ship
        /// </summary>
        /// <param name="ss"></param>
        public static void userInput(SocketState ss)
        {
            String input = ss.sb.ToString();

            String[] parts = input.Split('\n');
            foreach (char temp in parts[0])
            {
                if (temp != '(' && temp != ')')
                {
                    if (temp != 'F')
                    {
                        lock (theworld)
                        {
                            theworld.getShip()[ss.uid].doOperate(temp);
                        }
                    }
                    else
                    {
                        lock (theworld)
                        {
                            theworld.Fire(ss.uid);
                        }
                    }
                }
                ss.sb.Remove(0, 1);
            }
            ss.sb.Remove(0, 1);
            NController.GetData(ss);
        }
예제 #2
0
        public void TestWorldMethod()
        {
            world      world1 = new world();
            star       s      = new star(0, new Vector2D(0, 200), 1);
            projectile p1     = new projectile(1, new Vector2D(0, 376), new Vector2D(0, 0), true, 2);
            Ship       ship   = new Ship(1, new Vector2D(0, 0), new Vector2D(0, 0), false, "s", 5, 0);
            String     A      = s.ToString();
            star       s1     = JsonConvert.DeserializeObject <star>(A);

            world1.addStar(s);
            world1.setFrame(0);
            world1.addShip(ship);
            world1.Fire(1);

            world1.addproj(p1);
            world1.setRespawn(300);
            world1.setSize(750);

            Assert.AreEqual(world1.getProj().Values.Count, 1);
            Assert.AreEqual(world1.getShip().Values.Count, 1);
            Assert.AreEqual(world1.getStar().Values.Count, 1);
            ship = new Ship(1, new Vector2D(0, 0), new Vector2D(0, 0), true, "s", 5, 0);
            for (int i = 0; i <= 4; i++)
            {
                world1.getShip()[1].hpdecrease();
            }
            world1.respawn(ship);
            world1.addLostID(1);
            world1.cleanup();
            world1.removeProjectile(p1);
            world1.removeStar(s);
            world1.removeShip(ship);
            Assert.AreEqual(world1.getShip().Values.Count, 0);
            Assert.AreEqual(world1.getShip().Values.Count, 0);
            Assert.AreEqual(world1.getStar().Values.Count, 0);
            world1.update();
            s.update(51);
            s.update(102);
            s.update(160);
            s.update(230);
        }