Esempio n. 1
0
 public void RemoveObject(MapObject @object)
 {
     Objects.Remove(@object);
 }
Esempio n. 2
0
 public void _AddObject(MapObject @object)
 {
     Objects.Add(@object);
 }
Esempio n. 3
0
        private void GameTest()
        {
            Config config = new Config();

            //... set up character rules (eg. action points)
            config.CharacterConfig.ActionPoints         = 10;
            config.CharacterConfig.MovementActionPoints = 1;

            //... create string consts
            config.AddStringConst("LEVER_DESC", new Text("This is a lever"));
            config.AddStringConst("LEVER_DESC_2", new Text("Someone used this lever"));

            //... create map, spawners and squares
            Map map = new Map();

            map.Width  = 5;
            map.Height = 5;

            map.AddSpawner(new Position(2, 4));
            map.AddSpawner(new Position(0, 3));

            //... create objects (with known IDs)
            MapObject lever = new MapObject();

            lever.Id          = "lever";
            lever.Position    = new Position(2, 1);
            lever.Description = config.GetStringConstByName("LEVER_DESC");

            MapObject box = new MapObject();

            box.Id       = "box";
            box.Position = new Position(4, 3);
            box.Variables.Add(new ObjectVariable("logical", "ready", false));   //ready of box = false

            config.AddObject(lever);
            config.AddObject(box);

            //... create schemes for objects
            lever.Scheme = GetLeverScheme();
            box.Scheme   = GetBoxScheme();

            //... add everything to config
            config.Map = map;

            //Create game based on config
            Game game = new Game(config);

            //Set up game with some players (eg. 2)
            game.SetupPlayers(2);

            //Start game
            game.Start();

            //do some example actions

            Console.WriteLine($"Lever desc: {lever.Description.Content}");

            //move player1 2 squares north
            game.DoAction(Game.BasicActions.Movement, Game.MovementParameters.Norht);
            game.DoAction(Game.BasicActions.Movement, Game.MovementParameters.Norht);
            //'use' the lever with id 'lever'       # this makes it possible to pick up the box
            game.SelectObject("lever");
            game.DoAction("use");

            Console.WriteLine($"Lever desc: {lever.Description.Content}");

            //next player
            game.DoAction(Game.BasicActions.EndTurn);

            //move player2 2 squares east
            game.SelectObject("_none");
            game.DoAction(Game.BasicActions.Movement, Game.MovementParameters.East);
            game.DoAction(Game.BasicActions.Movement, Game.MovementParameters.East);
            game.DoAction(Game.BasicActions.Movement, Game.MovementParameters.East);
            //'pickup' the box with id 'box'
            game.SelectObject("box");
            for (int i = 0; i < 3; ++i)
            {
                game.DoAction("pickup");
            }

            //... check outcomes
        }