示例#1
0
 public FoodStorage(int limit, Point location)
 {
     Supply = new List <Food>(100);
     Limit  = limit;
     Move(location);
     Display = new SensoryDisplay();
 }
示例#2
0
        public void ParseMarker_CreatesProperMarker(string inputType, Type expectedType)
        {
            var guid = Guid.NewGuid();

            var display = new SensoryDisplay();

            display.Smell.ResetTo(4, 8);
            var jsonDisplay = JObject.Parse(JsonConvert.SerializeObject(display));

            var data = new JObject
            {
                { "display", jsonDisplay },
                { "duration", 11 },
                { "decayRate", 0.95 },
                { "type", inputType }
            };

            //Act
            var marker = MarkerDefinition.ParseMarker(data, guid);

            //Assert
            Assert.NotNull(marker);
            Assert.Equal(guid, (marker as ITransferable).Owner);
            Assert.Equal(expectedType, marker.GetType());
            Assert.Equal(8, marker.Display.Smell.Strength);
        }
        public void Display_DisplayUpdateCalled()
        {
            //Setup
            var            unit    = CreateUnit();
            SensoryDisplay display = new SensoryDisplay();

            display.Taste.ResetTo(1, 5);
            unit.Setup(u => u.Display.UpdateFrom(display));
            var action = new DisplayAction(display);
            UnitActionCollection actions = new UnitActionCollection();

            actions.AddAction(unit.Object.Id, action);

            var state = CreateStateMock(CreateUnitList(unit));

            AddUnitToState(unit, state);

            var subject = new ActionExecutor(state.Object);

            //Act
            subject.Execute(actions);

            //Assert
            unit.Verify(unit => unit.Display.UpdateFrom(display));
        }
示例#4
0
        public FoodStorage(FoodStorage other)
        {
            Supply = other.Supply.Select(food => (Food)food.Clone()).ToList();

            Limit = other.Limit;
            Move(other.Location);

            Display = (SensoryDisplay)other.Display.Clone();

            TeamId = other.TeamId;
        }
示例#5
0
        private static SensoryDisplay CreateSensoryDisplay()
        {
            Random         random  = new Random();
            SensoryDisplay subject = new SensoryDisplay();

            subject.Visual.ResetTo(random.Next(4), random.Next(20));
            subject.Auditory.ResetTo(random.Next(4), random.Next(20));
            subject.Smell.ResetTo(random.Next(4), random.Next(20));
            subject.Taste.ResetTo(random.Next(4), random.Next(20));
            return(subject);
        }
示例#6
0
        public void Reset_SetAllFeaturesToZero()
        {
            SensoryDisplay subject = CreateSensoryDisplay();

            //Act
            subject.Reset();

            //Assert
            foreach (var feature in subject.AsCollection())
            {
                Assert.Equal(SensoryFeature.NO_VALUE, feature.Value);
                Assert.Equal(0, feature.Strength);
            }
        }
示例#7
0
        public void UpdateTo_AllFeaturesChange()
        {
            SensoryDisplay subject = CreateSensoryDisplay();
            //Create a totally different display
            SensoryDisplay update = CreateSensoryDisplay();

            //Act
            subject.UpdateFrom(update);

            //Assert
            var actual   = subject.AsCollection();
            var expected = update.AsCollection();

            Assert.Equal(expected, actual);
        }
示例#8
0
        public void ParseMarkerDefinition_UsesInputData()
        {
            var display = new SensoryDisplay();

            display.Auditory.ResetTo(3, 7);
            var jsonDisplay = JObject.Parse(JsonConvert.SerializeObject(display));

            var data = new JObject
            {
                { "display", jsonDisplay },
                { "duration", 11 },
                { "decayRate", 0.95 }
            };

            //Act
            var definition = MarkerDefinition.ParseDefinition(data);

            //Assert
            Assert.NotNull(definition);
            Assert.Equal(7, definition.Display.Auditory.Strength);
            Assert.Equal(11, definition.Duration);
            Assert.Equal(0.95, definition.DecayRate);
        }
示例#9
0
 public void SetDisplay(SensoryDisplay display) => Display = display;
示例#10
0
 protected Unit()
 {
     Display   = new SensoryDisplay();
     Stats     = new UnitStats();
     HealthMax = Health;
 }