コード例 #1
0
 private void ConditionDetector_ConditionsHandler(object sender, ConditionEventArgs e)
 {
     Conditions.RemoveAll(ce => ce.FirstConditionHolder.Tag == e.FirstConditionHolder.Tag &&
                          ce.SecondConditionHolder.Tag == e.SecondConditionHolder.Tag);
     Conditions.Add(e);
     _outputter.Logger.LogCondition(e.FirstConditionHolder, e.SecondConditionHolder);
 }
コード例 #2
0
ファイル: Events.cs プロジェクト: LunaLovecraft/GDD2
 protected virtual void E_GainCondition(ConditionEventArgs e)
 {
     if (OnGainCondition != null)
     {
         OnGainCondition(this, e);
     }
 }
コード例 #3
0
 void m_conditionsPanel_Condition_AddFromCatalogue(object sender, ConditionEventArgs e)
 {
     AddConditionState state = StateMachine.GetState(StateTypeEnum.AddCondition) as AddConditionState;
     state.Policy = m_policy;
     state.ConditionGroup = e.ConditionGroup;
     state.Source = AddConditionState.ConditionSource.FromCatalogue;
     state.SelectionUI = new ConditionsCatalogueSelectorForm();
     StateMachine.SetState(state);
 }
コード例 #4
0
 void m_conditionsPanel_Condition_Adding(object sender, ConditionEventArgs e)
 {
     AddConditionState state = StateMachine.GetState(StateTypeEnum.AddCondition) as AddConditionState;
     state.Policy = m_policy;
     state.ConditionGroup = e.ConditionGroup;
     state.Source = AddConditionState.ConditionSource.New;
     state.SelectionUI = new ConditionsResourceSelectorForm(m_policy.PolicySet.PolicyType);
     StateMachine.SetState(state);
 }
コード例 #5
0
        public void ConditionHandler_ConditionInvoke_ConditionAdded()
        {
            var fakeFirstCondition     = FakeTrackFactory.GetTrackWithTag("firstCondition", 0, 0, 0);
            var fakeSecondCondition    = FakeTrackFactory.GetTrackWithTag("secondCondition", 0, 0, 0);
            var fakeConditionEventArgs = new ConditionEventArgs(fakeFirstCondition, fakeSecondCondition);

            _fakeConditionDetector.ConditionsHandler += Raise.EventWith(_fakeConditionDetector, fakeConditionEventArgs);

            Assert.That(_uutAirTrafficMonitor.Conditions.Contains(fakeConditionEventArgs));
        }
コード例 #6
0
        public void ConditionHandler_ConditionInvoke_LoggerInvokedCorrect()
        {
            var fakeFirstCondition     = FakeTrackFactory.GetTrackWithTag("firstCondition", 0, 0, 0);
            var fakeSecondCondition    = FakeTrackFactory.GetTrackWithTag("secondCondition", 0, 0, 0);
            var fakeConditionEventArgs = new ConditionEventArgs(fakeFirstCondition, fakeSecondCondition);

            _fakeConditionDetector.ConditionsHandler += Raise.EventWith(_fakeConditionDetector, fakeConditionEventArgs);

            _fakeOutputter.Logger.Received().LogCondition(
                Arg.Is <ITrack>(t => t == fakeFirstCondition),
                Arg.Is <ITrack>(t => t == fakeSecondCondition));
        }
コード例 #7
0
        public void DetectCondition_ConditionFound_SecondConditionCorrect()
        {
            ConditionEventArgs eventArgsReceived = null;
            ITrack             firstTrack        = FakeTrackFactory.GetTrack(1000, 1000, 1000);
            ITrack             secondTrack       = FakeTrackFactory.GetTrack(1100, 1100, 1000);
            ITrackable         airspace          = FakeAirspaceGenerator.GetAirspace(0, 0, 0);

            airspace.Trackables = new List <ITrack>()
            {
                firstTrack, secondTrack
            };
            _fakeCondition.ConditionBetween(Arg.Any <ITrack>(), Arg.Any <ITrack>()).Returns(true);
            _uutConditionDetector.ConditionsHandler += (s, e) => eventArgsReceived = e;

            _uutConditionDetector.DetectCondition(airspace);

            Assert.That(eventArgsReceived.SecondConditionHolder, Is.EqualTo(secondTrack));
        }
コード例 #8
0
        public void Traffic_Controller_Console_Display_Test_Condition(string tag1, int x1, int y1, int z1, string tag2, int x2, int y2, int z2)
        {
            var track1 = FakeTrackFactory.GetTrackWithTag(tag1, x1, y1, z1);
            var track2 = FakeTrackFactory.GetTrackWithTag(tag2, x2, y2, z2);

            _tracks.Add(track1);
            _tracks.Add(track2);

            var condition = new ConditionEventArgs(track1, track2);

            _condtions.Add(condition);



            _uutTrafficController.DisplayConditions(_condtions);

            var compare = "Condition detected between " + track1.Tag + " & " + track2.Tag;

            StringAssert.Contains(compare, _uutTrafficController.Condition);
        }
コード例 #9
0
        public static List <ConditionEventArgs> CreateConditionList(int numberOfConditions)
        {
            var rand       = new Random();
            var conditions = new List <ConditionEventArgs>();

            for (int i = 0; i < numberOfConditions; i++)
            {
                var x = rand.Next(1, 100);
                var y = rand.Next(1, 100);
                var z = rand.Next(1, 100);


                var track1 = FakeTrackFactory.GetTrackWithTag("Track1," + i, x, y, z);
                var track2 = FakeTrackFactory.GetTrackWithTag("Track2," + i, x + 4, y + 5, z - 7);

                var cond = new ConditionEventArgs(track1, track2);

                conditions.Add(cond);
            }

            return(conditions);
        }
コード例 #10
0
 void m_conditionsPanel_Condition_Editing(object sender, ConditionEventArgs e)
 {
     EditConditionState state = StateMachine.GetState(StateTypeEnum.EditCondition) as EditConditionState;
     state.ConditionMethodDisplay = e.ConditionMethodDisplay;
     state.HyperlinkObject = e.HyperlinkObject;
     StateMachine.SetState(state);
 }
コード例 #11
0
        void m_conditionsPanel_Condition_Cuting(object sender, ConditionEventArgs e)
        {
            ms_ConditionsToCopy = e.ConditionMethodDisplays;

            DeleteConditionState state = StateMachine.GetState(StateTypeEnum.RemoveCondition) as DeleteConditionState;
            state.Policy = m_policy;
            state.AddDisplays(e.ConditionMethodDisplays);
            StateMachine.SetState(state);
        }
コード例 #12
0
        void m_conditionsPanel_Condition_Pasting(object sender, ConditionEventArgs e)
        {
            if (ms_ConditionsToCopy == null)
            {
                return;
            }

            foreach (ConditionDisplayBase srcConditionDisplay in ms_ConditionsToCopy)
            {
                ICondition newCondition = (ICondition)((PolicyObject)srcConditionDisplay.Condition).Clone();

                IConditionGroup conditionGroup = ((IConditionGroup)m_policy.Conditions[0]);
                conditionGroup.Conditions.Add(newCondition);
                newCondition.Parent = conditionGroup;
            }

            ShowConditionsState state = StateMachine.GetState(StateTypeEnum.ShowConditions) as ShowConditionsState;
            StateMachine.SetState(state);

            StateMachine.ChildForm.IsModified = true;
        }
コード例 #13
0
 void m_conditionsPanel_Condition_Copying(object sender, ConditionEventArgs e)
 {
     ms_ConditionsToCopy = e.ConditionMethodDisplays;
 }
コード例 #14
0
ファイル: Character.cs プロジェクト: LunaLovecraft/GDD2
    /// <summary>
    /// Removes a condition from the list of current active conditions.
    /// </summary>
    /// <param name="newCondition">The condition to be removed</param>
    public void RemoveCondition(Condition newCondition)
    {
        if (myConditions.ContainsKey(newCondition))
        {
            // For simplicity sake I'm passing in a meaningless turns.  If there's a reason to use it later all the better
            int turns = 0;
            ConditionEventArgs e = new ConditionEventArgs(this, newCondition, turns);
            E_LoseCondition(e);

            myConditions.Remove(e.type);

            // Any effects that occur when a condition ends (say disabling speed or something) should happen here
            switch(e.type){

            }
        }
    }
コード例 #15
0
ファイル: Character.cs プロジェクト: LunaLovecraft/GDD2
    /// <summary>
    /// Adds a condition to a character
    /// </summary>
    /// <param name="newCondition">The condition to be applied</param>
    /// <param name="turns">The number of turns the effect should stay active.</param>
    public void AddCondition(Condition newCondition, int turns)
    {
        ConditionEventArgs e = new ConditionEventArgs(this, newCondition, turns);
        E_GainCondition(e);

        if (myConditions.ContainsKey(e.type))
        {
            if(myConditions[newCondition] < e.turns){
                myConditions[newCondition] = e.turns;
            }
            return;
        }

        myConditions.Add(e.type, turns);

        // Any effects that occur when a condition begins (perhaps instant heal);
        switch (e.type)
        {

        }
    }