-
Notifications
You must be signed in to change notification settings - Fork 0
/
TakeItemProcessor.cs
28 lines (25 loc) · 855 Bytes
/
TakeItemProcessor.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using System;
using ConcurrencyUtilities;
namespace ZorkServer
{
public class TakeItemProcessor: ActiveObjectInputOutput<string[], string>
{
public static bool HaveStone { get; private set; } /* It's not really worth making a player / game state class
just to store this, or even worry about concurrency protection in this demo */
public TakeItemProcessor(Channel<string[]> takeItemCommand, Channel<string> commandResult):
base(takeItemCommand, commandResult) {}
protected override string Process(string[] items) {
if (items[0] == "stone") {
string message;
if (HaveStone)
message = "You swap your stone for a new one.";
else
message = "You take a stone.";
HaveStone = true;
message += " It seems incredibly useful.";
return message;
}
return "I can't find a " + items[0] + " to take.";
}
}
}