public void TestSquareActions() { Scheme mapScheme = new Scheme(SpecialSchemes.Map); mapScheme.Code = @"scheme map { action Step ( 0 ) { rick_rolled of actor = true } }"; Map map = new Map(2, 1); //map.Scheme = mapScheme; map.AddSpawner(new Position(0, 0)); SquareType squareType = new SquareType(); squareType.ActionName = "Step"; map.SetSquareTypeAt(new Position(1, 0), squareType); Config config = new Config(); config.Map = map; config.AddScheme(mapScheme); Game game = new Game(config); Character ch = new Character("ch", "ch"); ch.Variables.Add(new ObjectVariable(VariableTypes.Logical, "rick_rolled", false)); List <Character> characters = new List <Character>() { ch }; game.SetupPlayers(characters); game.Start(); game.DoAction(Game.BasicActions.Movement, Game.MovementParameters.East); Assert.AreEqual(true, ch.GetVariableByName("rick_rolled", config).Value); }
public void TestSquareAttributeRestrictions() { Map map = new Map(3, 2); map.AddSpawner(new Position(0, 0)); map.AddSpawner(new Position(1, 0)); map.AddSpawner(new Position(2, 0)); SquareType fireland = new SquareType(); fireland.AllowedAttributes.Add("firey"); fireland.ForbiddenAttributes.Add("holy"); map.SetSquareTypeAt(new Position(0, 1), fireland); map.SetSquareTypeAt(new Position(1, 1), fireland); map.SetSquareTypeAt(new Position(2, 1), fireland); Character normal_beast = new Character("normal_beast", "normal_beast"); Character firey_beast = new Character("firey_beast", "firey_beast"); Character holy_firey_beast = new Character("holy_firey_beast", "holy_firey_beast"); firey_beast.SetAttribute("firey"); holy_firey_beast.SetAttribute("firey"); holy_firey_beast.SetAttribute("holy"); Config config = new Config(); config.Map = map; config.CharacterConfig.ActionPoints = 10; Game game = new Game(config); List <Character> characters = new List <Character>() { normal_beast, firey_beast, holy_firey_beast }; game.SetupPlayers(characters); game.Start(); try { game.DoAction(Game.BasicActions.Movement, Game.MovementParameters.South); Assert.Fail(); } catch (GameException ge) { Assert.AreEqual("This character is not allowed to step on this square", ge.Message); } game.DoAction(Game.BasicActions.EndTurn); try { game.DoAction(Game.BasicActions.Movement, Game.MovementParameters.South); } catch (GameException) { Assert.Fail(); } game.DoAction(Game.BasicActions.EndTurn); try { game.DoAction(Game.BasicActions.Movement, Game.MovementParameters.South); Assert.Fail(); } catch (GameException ge) { Assert.AreEqual("This character is not allowed to step on this square", ge.Message); } }