Skip to content

Commit 23f86ec

Browse files
authored
Merge pull request #103 from benpollarduk/minor-issues
Minor issues
2 parents ae4187b + a4963c3 commit 23f86ec

40 files changed

+269
-54
lines changed

.github/workflows/release.yml

+2
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,11 @@ jobs:
8383
dotnet nuget push ./NetAF/bin/Release/*.nupkg --api-key ${{ secrets.NUGET_TOKEN }} --source https://api.nuget.org/v3/index.json
8484
8585
- name: Build documentation
86+
continue-on-error: true
8687
run: docfx docs/docfx/docfx.json
8788

8889
- name: Copy website files, commit and tag, then push changes to NetAF-docs
90+
continue-on-error: true
8991
run: |
9092
mkdir NetAF-docs
9193
cd NetAF-docs

.nuget/Icon.bmp

0 Bytes
Binary file not shown.

.nuget/Icon.png

1 Byte
Loading

NetAF.Examples/Assets/Regions/Hub/Rooms/Clearing.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ internal class Clearing : IAssetTemplate<Room>
1212
{
1313
#region Constants
1414

15-
private const string Name = "Jungle Clearing";
15+
public const string Name = "Jungle Clearing";
1616
private const string Description = "You are in a small clearing in a jungle, tightly enclosed by undergrowth. You have no idea how you got here. The chirps and buzzes coming from insects in the undergrowth are intense. There are some stone pedestals in front of you. Each has a small globe on top of it.";
1717

1818
#endregion

NetAF.Examples/Program.cs

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
using NetAF.Examples.Assets.Regions.Everglades;
99
using NetAF.Examples.Assets.Regions.Flat;
1010
using NetAF.Examples.Assets.Regions.Hub;
11+
using NetAF.Examples.Assets.Regions.Hub.Rooms;
1112
using NetAF.Examples.Assets.Regions.Zelda;
1213
using NetAF.Examples.Assets.Regions.Zelda.Rooms;
1314
using NetAF.Extensions;
@@ -38,7 +39,7 @@ private static EndCheckResult DetermineIfGameOver(Game game)
3839

3940
private static void PopulateHub(Region hub, Overworld overworld, Region[] otherRegions)
4041
{
41-
var room = hub.CurrentRoom;
42+
hub.TryFindRoom(Clearing.Name, out var room);
4243

4344
foreach (var otherRegion in otherRegions)
4445
{

NetAF.Tests/Assets/ExaminationRequest_Tests.cs

+1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ public void GivenCreate_WhenGameSpecified_ThenRoomSetFromPlayer()
3434
var overworld = new Overworld(string.Empty, string.Empty);
3535
region.AddRoom(room, 0, 0, 0);
3636
overworld.AddRegion(region);
37+
region.Enter();
3738
var gameCreator = Game.Create(new GameInfo(string.Empty, string.Empty, string.Empty), string.Empty, AssetGenerator.Retained(overworld, player), GameEndConditions.NoEnd, TestGameConfiguration.Default);
3839

3940
var result = new ExaminationRequest(player, gameCreator());

NetAF.Tests/Assets/Locations/Region_Tests.cs

+75
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using NetAF.Assets;
22
using NetAF.Assets.Locations;
33
using Microsoft.VisualStudio.TestTools.UnitTesting;
4+
using NetAF.Commands;
45

56
namespace NetAF.Tests.Assets.Locations
67
{
@@ -21,6 +22,7 @@ public void Given1Room_WhenGetCurrentRoom_ThenNotNull()
2122
var room1 = new Room(Identifier.Empty, Description.Empty);
2223
var region = new Region(string.Empty, string.Empty);
2324
region.AddRoom(room1, 0, 0, 0);
25+
region.Enter();
2426

2527
Assert.IsNotNull(region.CurrentRoom);
2628
}
@@ -36,6 +38,7 @@ public void Given3Rooms_WhenGetCurrentRoom_ThenFirstRoom()
3638
region.AddRoom(room1, 0, 0, 0);
3739
region.AddRoom(room2, 0, 1, 0);
3840
region.AddRoom(room3, 1, 0, 0);
41+
region.Enter();
3942

4043
Assert.AreEqual(room1, region.CurrentRoom);
4144
}
@@ -53,6 +56,7 @@ public void GivenX1Y1_WhenSetStartRoom_ThenLastRoom()
5356
region.AddRoom(room3, 1, 1, 0);
5457

5558
region.SetStartRoom(1, 1, 0);
59+
region.Enter();
5660

5761
Assert.AreEqual(room3, region.CurrentRoom);
5862
}
@@ -119,6 +123,7 @@ public void Given1Room_WhenAdding1Room_Then2Rooms()
119123
var region = new Region(string.Empty, string.Empty);
120124
region.AddRoom(room1, 0, 0, 0);
121125
region.AddRoom(room2, 0, 1, 0);
126+
region.Enter();
122127

123128
Assert.AreEqual(2, region.Rooms);
124129
}
@@ -134,6 +139,7 @@ public void GivenLastRoom_WhenSetStartRoom_ThenCurrentRoomIsLastRoom()
134139
region.AddRoom(room2, 0, 1, 0);
135140

136141
region.SetStartRoom(room2);
142+
region.Enter();
137143

138144
Assert.AreEqual(room2, region.CurrentRoom);
139145
}
@@ -147,6 +153,7 @@ public void GivenCanMove_WhenMove_ThenTrue()
147153
var region = new Region(string.Empty, string.Empty);
148154
region.AddRoom(room1, 0, 0, 0);
149155
region.AddRoom(room2, 1, 0, 0);
156+
region.Enter();
150157

151158
var result = region.Move(Direction.East);
152159

@@ -162,6 +169,7 @@ public void GivenCantMove_WhenMove_ThenFalse()
162169
var region = new Region(string.Empty, string.Empty);
163170
region.AddRoom(room1, 0, 0, 0);
164171
region.AddRoom(room2, 1, 0, 0);
172+
region.Enter();
165173

166174
var result = region.Move(Direction.West);
167175

@@ -177,6 +185,7 @@ public void GivenCanMove_WhenMove_ThenCurrentRoomIsNewRoom()
177185
var region = new Region(string.Empty, string.Empty);
178186
region.AddRoom(room1, 0, 0, 0);
179187
region.AddRoom(room2, 1, 0, 0);
188+
region.Enter();
180189

181190
region.Move(Direction.East);
182191

@@ -192,6 +201,7 @@ public void GivenCantMove_WhenMove_ThenCurrentRoomIsNotChanged()
192201
var region = new Region(string.Empty, string.Empty);
193202
region.AddRoom(room1, 0, 0, 0);
194203
region.AddRoom(room2, 1, 0, 0);
204+
region.Enter();
195205

196206
region.Move(Direction.West);
197207

@@ -222,6 +232,7 @@ public void GivenAdjoiningRoom_WhenGetAdjoiningRoom_ThenNotNull()
222232
var region = new Region(string.Empty, string.Empty);
223233
region.AddRoom(room1, 0, 0, 0);
224234
region.AddRoom(room2, 1, 0, 0);
235+
region.Enter();
225236

226237
var result = region.GetAdjoiningRoom(Direction.East, region.CurrentRoom);
227238

@@ -237,6 +248,7 @@ public void Given2LockedDoors_WhenUnlockDoorPair_ThenTrue()
237248
var region = new Region(string.Empty, string.Empty);
238249
region.AddRoom(room1, 0, 0, 0);
239250
region.AddRoom(room2, 1, 0, 0);
251+
region.Enter();
240252

241253
var result = region.UnlockDoorPair(Direction.East);
242254

@@ -252,6 +264,7 @@ public void Given2LockedDoors_WhenUnlockDoorPair_ThenBothDoorsUnlocked()
252264
var region = new Region(string.Empty, string.Empty);
253265
region.AddRoom(room1, 0, 0, 0);
254266
region.AddRoom(room2, 1, 0, 0);
267+
region.Enter();
255268

256269
room1.FindExit(Direction.East, true, out var room1Exit);
257270
room2.FindExit(Direction.West, true, out var room2Exit);
@@ -422,5 +435,67 @@ public void GivenValidCoordinates_WhenJumpToRoom_ThenReturnTrue()
422435

423436
Assert.IsTrue(result);
424437
}
438+
439+
[TestMethod]
440+
public void GivenCurrentRoomNull_WhenEnter_ThenCurrentRoomNotNull()
441+
{
442+
var region = new Region(string.Empty, string.Empty);
443+
var room = new Room(string.Empty, string.Empty);
444+
region.AddRoom(room, 0, 0, 0);
445+
region.SetStartRoom(room);
446+
447+
region.Enter();
448+
449+
Assert.IsNotNull(region.CurrentRoom);
450+
}
451+
452+
[TestMethod]
453+
public void GivenCurrentRoomNullAndStartRoomHasNoIntroduction_WhenEnter_ThenSilentReaction()
454+
{
455+
var region = new Region(string.Empty, string.Empty);
456+
var room = new Room(string.Empty, string.Empty);
457+
region.AddRoom(room, 0, 0, 0);
458+
region.SetStartRoom(room);
459+
460+
var result = region.Enter();
461+
462+
Assert.AreEqual(ReactionResult.Silent, result.Result);
463+
}
464+
465+
[TestMethod]
466+
public void GivenCurrentRoomNullAndStartRoomHasNoIntroduction_WhenEnter_ThenInformReaction()
467+
{
468+
var region = new Region(string.Empty, string.Empty);
469+
var room = new Room(string.Empty, string.Empty, "ABC");
470+
region.AddRoom(room, 0, 0, 0);
471+
region.SetStartRoom(room);
472+
473+
var result = region.Enter();
474+
475+
Assert.AreEqual(ReactionResult.Inform, result.Result);
476+
}
477+
478+
[TestMethod]
479+
public void GivenCurrentRoomNullAndNoStartRoomAssigned_WhenEnter_ThenCurrentRoomIsFirstRoom()
480+
{
481+
var region = new Region(string.Empty, string.Empty);
482+
var room = new Room(string.Empty, string.Empty);
483+
region.AddRoom(room, 0, 0, 0);
484+
485+
region.Enter();
486+
487+
Assert.AreEqual(room, region.CurrentRoom);
488+
}
489+
490+
[TestMethod]
491+
public void GivenCurrentRoomNullAndNoRooms_WhenEnter_ThenCurrentRoomIsNull()
492+
{
493+
var region = new Region(string.Empty, string.Empty);
494+
var room = new Room(string.Empty, string.Empty);
495+
496+
region.Enter();
497+
498+
Assert.IsNull(region.CurrentRoom);
499+
}
425500
}
426501
}

NetAF.Tests/Assets/Locations/ViewPoint_Tests.cs

+3
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ public void GivenARegionWithACurrentRoomWith4SurroundingRooms_WhenCreate_ThenVie
1919
[1, 2, 0] = new(string.Empty, string.Empty, [new Exit(Direction.South)])
2020
};
2121
var region = regionMaker.Make(1, 1, 0);
22+
region.Enter();
2223

2324
var result = ViewPoint.Create(region);
2425

@@ -40,6 +41,7 @@ public void GivenARegionWithACurrentRoomWith1SurroundingRoom_WhenCreate_ThenView
4041
[1, 2, 0] = new(string.Empty, string.Empty, [new Exit(Direction.South)])
4142
};
4243
var region = regionMaker.Make(1, 0, 0);
44+
region.Enter();
4345

4446
var result = ViewPoint.Create(region);
4547

@@ -61,6 +63,7 @@ public void GivenAView_WhenGettingAny_ThenTrue()
6163
[1, 2, 0] = new(string.Empty, string.Empty, [new Exit(Direction.South)])
6264
};
6365
var region = regionMaker.Make(1, 0, 0);
66+
region.Enter();
6467

6568
var result = ViewPoint.Create(region).Any;
6669

NetAF.Tests/Commands/Global/CommandList_Tests.cs

+1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ public void GivenValidGame_WhenInvoke_ThenGameModeChanged()
3333
region.AddRoom(room, 0, 0, 0);
3434
var overworld = new Overworld(string.Empty, string.Empty);
3535
overworld.AddRegion(region);
36+
region.Enter();
3637
var game = Game.Create(new GameInfo(string.Empty, string.Empty, string.Empty), string.Empty, AssetGenerator.Retained(overworld, character), GameEndConditions.NoEnd, TestGameConfiguration.Default).Invoke();
3738
game.ChangeMode(new AboutMode());
3839
var command = new CommandList();

NetAF.Tests/Commands/RegionMap/Pan_Tests.cs

+8
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public void GivenValidGame_WhenInvokeAndNotInRegionMapMode_ThenError()
3131
regionMaker[0, 0, 0] = room;
3232
OverworldMaker overworldMaker = new(string.Empty, string.Empty, regionMaker);
3333
var game = Game.Create(new GameInfo(string.Empty, string.Empty, string.Empty), string.Empty, AssetGenerator.Retained(overworldMaker.Make(), new PlayableCharacter(string.Empty, string.Empty)), GameEndConditions.NoEnd, TestGameConfiguration.Default).Invoke();
34+
game.Overworld.CurrentRegion.Enter();
3435
var command = new Pan(Direction.West);
3536

3637
var result = command.Invoke(game);
@@ -46,6 +47,7 @@ public void GivenValidGameAndCantPan_WhenInvokeAndInRegionMapMode_ThenSilent()
4647
regionMaker[0, 0, 0] = room;
4748
OverworldMaker overworldMaker = new(string.Empty, string.Empty, regionMaker);
4849
var game = Game.Create(new GameInfo(string.Empty, string.Empty, string.Empty), string.Empty, AssetGenerator.Retained(overworldMaker.Make(), new PlayableCharacter(string.Empty, string.Empty)), GameEndConditions.NoEnd, TestGameConfiguration.Default).Invoke();
50+
game.Overworld.CurrentRegion.Enter();
4951
var command = new Pan(Direction.West);
5052
game.ChangeMode(new RegionMapMode(RegionMapMode.Player));
5153

@@ -64,6 +66,7 @@ public void GivenValidGameAndCanPanNorth_WhenInvokeAndInRegionMapMode_ThenSilent
6466
regionMaker[0, 0, 0] = room2;
6567
OverworldMaker overworldMaker = new(string.Empty, string.Empty, regionMaker);
6668
var game = Game.Create(new GameInfo(string.Empty, string.Empty, string.Empty), string.Empty, AssetGenerator.Retained(overworldMaker.Make(), new PlayableCharacter(string.Empty, string.Empty)), GameEndConditions.NoEnd, TestGameConfiguration.Default).Invoke();
69+
game.Overworld.CurrentRegion.Enter();
6770
game.Overworld.CurrentRegion.Move(Direction.North);
6871
game.Overworld.CurrentRegion.Move(Direction.South);
6972
var command = new Pan(Direction.North);
@@ -85,6 +88,7 @@ public void GivenValidGameAndCanPanSouth_WhenInvokeAndInRegionMapMode_ThenSilent
8588
regionMaker[0, 0, 0] = room2;
8689
OverworldMaker overworldMaker = new(string.Empty, string.Empty, regionMaker);
8790
var game = Game.Create(new GameInfo(string.Empty, string.Empty, string.Empty), string.Empty, AssetGenerator.Retained(overworldMaker.Make(), new PlayableCharacter(string.Empty, string.Empty)), GameEndConditions.NoEnd, TestGameConfiguration.Default).Invoke();
91+
game.Overworld.CurrentRegion.Enter();
8892
game.Overworld.CurrentRegion.Move(Direction.South);
8993
game.Overworld.CurrentRegion.Move(Direction.North);
9094
var command = new Pan(Direction.South);
@@ -106,6 +110,7 @@ public void GivenValidGameAndCanPanEast_WhenInvokeAndInRegionMapMode_ThenSilent(
106110
regionMaker[1, 0, 0] = room2;
107111
OverworldMaker overworldMaker = new(string.Empty, string.Empty, regionMaker);
108112
var game = Game.Create(new GameInfo(string.Empty, string.Empty, string.Empty), string.Empty, AssetGenerator.Retained(overworldMaker.Make(), new PlayableCharacter(string.Empty, string.Empty)), GameEndConditions.NoEnd, TestGameConfiguration.Default).Invoke();
113+
game.Overworld.CurrentRegion.Enter();
109114
game.Overworld.CurrentRegion.Move(Direction.East);
110115
game.Overworld.CurrentRegion.Move(Direction.West);
111116
var command = new Pan(Direction.East);
@@ -127,6 +132,7 @@ public void GivenValidGameAndCanPanWest_WhenInvokeAndInRegionMapMode_ThenSilent(
127132
regionMaker[0, 0, 0] = room2;
128133
OverworldMaker overworldMaker = new(string.Empty, string.Empty, regionMaker);
129134
var game = Game.Create(new GameInfo(string.Empty, string.Empty, string.Empty), string.Empty, AssetGenerator.Retained(overworldMaker.Make(), new PlayableCharacter(string.Empty, string.Empty)), GameEndConditions.NoEnd, TestGameConfiguration.Default).Invoke();
135+
game.Overworld.CurrentRegion.Enter();
130136
game.Overworld.CurrentRegion.Move(Direction.West);
131137
game.Overworld.CurrentRegion.Move(Direction.East);
132138
var command = new Pan(Direction.West);
@@ -148,6 +154,7 @@ public void GivenValidGameAndCanPanUp_WhenInvokeAndInRegionMapMode_ThenSilent()
148154
regionMaker[0, 0, 0] = room2;
149155
OverworldMaker overworldMaker = new(string.Empty, string.Empty, regionMaker);
150156
var game = Game.Create(new GameInfo(string.Empty, string.Empty, string.Empty), string.Empty, AssetGenerator.Retained(overworldMaker.Make(), new PlayableCharacter(string.Empty, string.Empty)), GameEndConditions.NoEnd, TestGameConfiguration.Default).Invoke();
157+
game.Overworld.CurrentRegion.Enter();
151158
game.Overworld.CurrentRegion.Move(Direction.Up);
152159
game.Overworld.CurrentRegion.Move(Direction.Down);
153160
var command = new Pan(Direction.Up);
@@ -169,6 +176,7 @@ public void GivenValidGameAndCanPanDown_WhenInvokeAndInRegionMapMode_ThenSilent(
169176
regionMaker[0, 0, 0] = room2;
170177
OverworldMaker overworldMaker = new(string.Empty, string.Empty, regionMaker);
171178
var game = Game.Create(new GameInfo(string.Empty, string.Empty, string.Empty), string.Empty, AssetGenerator.Retained(overworldMaker.Make(), new PlayableCharacter(string.Empty, string.Empty)), GameEndConditions.NoEnd, TestGameConfiguration.Default).Invoke();
179+
game.Overworld.CurrentRegion.Enter();
172180
game.Overworld.CurrentRegion.Move(Direction.Down);
173181
game.Overworld.CurrentRegion.Move(Direction.Up);
174182
var command = new Pan(Direction.Down);

NetAF.Tests/Commands/Scene/Drop_Tests.cs

+3-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@ public void GivenPlayerDoesNotHaveItem_WhenInvoke_ThenError()
4444
overworld.AddRegion(region);
4545
var character = new PlayableCharacter(Identifier.Empty, Description.Empty);
4646
var item = new Item(new Identifier("A"), Description.Empty, true);
47-
var game = Game.Create(new GameInfo(string.Empty, string.Empty, string.Empty), string.Empty, AssetGenerator.Retained(null, character), GameEndConditions.NoEnd, TestGameConfiguration.Default).Invoke();
47+
var game = Game.Create(new GameInfo(string.Empty, string.Empty, string.Empty), string.Empty, AssetGenerator.Retained(overworld, character), GameEndConditions.NoEnd, TestGameConfiguration.Default).Invoke();
48+
game.Overworld.CurrentRegion.Enter();
4849
var command = new Drop(item);
4950

5051
var result = command.Invoke(game);
@@ -64,6 +65,7 @@ public void GivenItemIsDroppable_WhenInvoke_ThenInform()
6465
var item = new Item(new Identifier("A"), Description.Empty, true);
6566
character.AddItem(item);
6667
var game = Game.Create(new GameInfo(string.Empty, string.Empty, string.Empty), string.Empty, AssetGenerator.Retained(overworld, character), GameEndConditions.NoEnd, TestGameConfiguration.Default).Invoke();
68+
game.Overworld.CurrentRegion.Enter();
6769
var command = new Drop(item);
6870

6971
var result = command.Invoke(game);

NetAF.Tests/Commands/Scene/Move_Tests.cs

+4
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ public void GivenCantMove_WhenInvoke_ThenError()
1919
var overworld = new Overworld(string.Empty, string.Empty);
2020
overworld.AddRegion(region);
2121
var game = Game.Create(new GameInfo(string.Empty, string.Empty, string.Empty), string.Empty, AssetGenerator.Retained(overworld, null), GameEndConditions.NoEnd, TestGameConfiguration.Default).Invoke();
22+
game.Overworld.CurrentRegion.Enter();
2223
var command = new Move(Direction.East);
2324

2425
var result = command.Invoke(game);
@@ -35,6 +36,7 @@ public void GivenCanMove_WhenInvoke_ThenSilent()
3536
var overworld = new Overworld(string.Empty, string.Empty);
3637
overworld.AddRegion(region);
3738
var game = Game.Create(new GameInfo(string.Empty, string.Empty, string.Empty), string.Empty, AssetGenerator.Retained(overworld, null), GameEndConditions.NoEnd, TestGameConfiguration.Default).Invoke();
39+
game.Overworld.CurrentRegion.Enter();
3840
var command = new Move(Direction.North);
3941

4042
var result = command.Invoke(game);
@@ -51,6 +53,7 @@ public void GivenCanMoveToPreviouslyUnvisitedRoomWithIntroduction_WhenInvoke_The
5153
var overworld = new Overworld(string.Empty, string.Empty);
5254
overworld.AddRegion(region);
5355
var game = Game.Create(new GameInfo(string.Empty, string.Empty, string.Empty), string.Empty, AssetGenerator.Retained(overworld, null), GameEndConditions.NoEnd, TestGameConfiguration.Default).Invoke();
56+
game.Overworld.CurrentRegion.Enter();
5457
var command = new Move(Direction.North);
5558

5659
var result = command.Invoke(game);
@@ -67,6 +70,7 @@ public void GivenCanMoveToPreviouslyVisitedRoomWithIntroduction_WhenInvoke_ThenS
6770
var overworld = new Overworld(string.Empty, string.Empty);
6871
overworld.AddRegion(region);
6972
var game = Game.Create(new GameInfo(string.Empty, string.Empty, string.Empty), string.Empty, AssetGenerator.Retained(overworld, null), GameEndConditions.NoEnd, TestGameConfiguration.Default).Invoke();
73+
game.Overworld.CurrentRegion.Enter();
7074
new Move(Direction.North).Invoke(game);
7175
new Move(Direction.South).Invoke(game);
7276

0 commit comments

Comments
 (0)