Ejemplo n.º 1
0
        public static byte[] Pattern(uint deviceAddress, PatternAction action)
        {
            byte mAction;

            switch (action)
            {
            case PatternAction.Start:
                mAction = 0x1F;
                break;

            case PatternAction.Stop:
                mAction = 0x21;
                break;

            case PatternAction.Run:
                mAction = 0x23;
                break;

            default:
                mAction = 0x23;
                break;
            }

            return(Message.GetMessage(deviceAddress, 0x00, mAction, 0x00, 0x00));
        }
Ejemplo n.º 2
0
 public void Settings(int dmg = 0, float atkRange = 0, PatternAction pa = null)
 {
     damage          = dmg;
     range           = atkRange;
     onPatternAction = pa;
     _rb2D           = GetComponent <Rigidbody2D>();
 }
Ejemplo n.º 3
0
 public void Setting(int dmg = 0, float atkRange = 0, PlayerBrain parShooter = null, PatternAction pa = null)
 {
     parentShooter   = parShooter;
     _rb2D           = GetComponent <Rigidbody2D>();
     damage          = dmg;
     range           = atkRange;
     onPatternAction = pa;
 }
        public void ClonePatternAction_TypeIsCorrect()
        {
            foreach (var type in GetAllActionTypes())
            {
                PatternAction patternAction = null;

                if (type == typeof(AddChordAction))
                {
                    patternAction = new AddChordAction(new ChordDescriptor(Enumerable.Empty <DryWetMidi.MusicTheory.Note>(), SevenBitNumber.MinValue, MusicalTimeSpan.Eighth));
                }
                else if (type == typeof(AddNoteAction))
                {
                    patternAction = new AddNoteAction(new NoteDescriptor(Notes.A1, SevenBitNumber.MinValue, MusicalTimeSpan.Eighth));
                }
                else if (type == typeof(AddPatternAction))
                {
                    patternAction = new AddPatternAction(new PatternBuilder().Build());
                }
                else if (type == typeof(AddTextEventAction <>))
                {
                    patternAction = new AddTextEventAction <TextEvent>(string.Empty);
                }
                else if (type == typeof(MoveToAnchorAction))
                {
                    patternAction = new MoveToAnchorAction(AnchorPosition.First);
                }
                else if (type == typeof(SetGeneralMidi2ProgramAction))
                {
                    patternAction = new SetGeneralMidi2ProgramAction(GeneralMidi2Program.AcousticBassStringSlap);
                }
                else if (type == typeof(SetGeneralMidiProgramAction))
                {
                    patternAction = new SetGeneralMidiProgramAction(GeneralMidiProgram.AcousticBass);
                }
                else if (type == typeof(SetProgramNumberAction))
                {
                    patternAction = new SetProgramNumberAction(SevenBitNumber.MinValue);
                }
                else if (type == typeof(StepBackAction))
                {
                    patternAction = new StepBackAction(MusicalTimeSpan.Quarter);
                }
                else if (type == typeof(StepForwardAction))
                {
                    patternAction = new StepForwardAction(MusicalTimeSpan.Quarter);
                }
                else
                {
                    patternAction = (PatternAction)Activator.CreateInstance(type);
                }

                var patternActionClone = patternAction.Clone();
                Assert.AreEqual(patternAction.GetType(), patternActionClone.GetType(), $"Clone of {type} is of invalid type.");
            }
        }
Ejemplo n.º 5
0
Archivo: D.cs Proyecto: vmail/main
 public byte[] Pattern(uint deviceAddress,PatternAction action)
 {
     byte mAction;
     switch (action)
     {
         case PatternAction.Start:
             mAction = 0x1F;
             break;
         case PatternAction.Stop:
             mAction = 0x21;
             break;
         case PatternAction.Run:
             mAction = 0x23;
             break;
         default:
             mAction = 0x23;
             break;
     }
     return Message.GetMessage(deviceAddress,0x00,mAction,0x00,0x00);
 }
Ejemplo n.º 6
0
        static private void DoAction(PatternAction action, uint selectedPatterns, bool saveConfigs)
        {
            var app = App.Instance;

            var demos = app.SelectedWriteDemos;

            if (demos == null)
            {
                return;
            }

            if (selectedPatterns == 0)
            {
                app.LogError("You didn't check any pattern. Please check at least one to proceed.");
                return;
            }

            if (saveConfigs)
            {
                app.SaveBothConfigs();
            }
            var privateConfig = app.PrivateConfig;

            if (privateConfig.PatternCutPlayerIndex == int.MinValue && string.IsNullOrEmpty(privateConfig.PatternCutPlayerName))
            {
                app.LogError("The selected player name is empty. Please specify a player name or select a different matching method to proceed.");
                return;
            }

            var filePaths = new List <string>();

            foreach (var demo in demos)
            {
                filePaths.Add(demo.FilePath);
            }

            var config    = app.Config;
            var patterns  = new List <UDT_DLL.udtPatternInfo>();
            var resources = new ArgumentResources();

            if (IsPatternActive(selectedPatterns, UDT_DLL.udtPatternType.Chat))
            {
                if (config.ChatRules.Count == 0)
                {
                    app.LogError("[chat] No chat matching rule defined. Please add at least one to proceed.");
                    return;
                }

                var pattern = new UDT_DLL.udtPatternInfo();
                UDT_DLL.CreateChatPatternInfo(ref pattern, resources, config.ChatRules);
                patterns.Add(pattern);
            }

            if (IsPatternActive(selectedPatterns, UDT_DLL.udtPatternType.FragSequences))
            {
                if (privateConfig.FragCutAllowedMeansOfDeaths == 0)
                {
                    app.LogError("[frag sequence] You didn't check any Mean of Death. Please check at least one to proceed.");
                    return;
                }
                if (config.FragCutMinFragCount < 2)
                {
                    app.LogError("[frag sequence] 'Min. Frag Count' must be 2 or higher.");
                    return;
                }
                if (config.FragCutTimeBetweenFrags < 1)
                {
                    app.LogError("[frag sequence] 'Time Between Frags' must be strictly positive.");
                    return;
                }

                var pattern = new UDT_DLL.udtPatternInfo();
                var rules   = UDT_DLL.CreateCutByFragArg(config, app.PrivateConfig);
                UDT_DLL.CreateFragPatternInfo(ref pattern, resources, rules);
                patterns.Add(pattern);
            }

            if (IsPatternActive(selectedPatterns, UDT_DLL.udtPatternType.MidAirFrags))
            {
                if (!config.MidAirCutAllowRocket && !config.MidAirCutAllowBFG)
                {
                    app.LogError("[mid-air frags] You didn't check any weapon. Please check at least one to proceed.");
                    return;
                }

                var pattern = new UDT_DLL.udtPatternInfo();
                var rules   = UDT_DLL.CreateCutByMidAirArg(config);
                UDT_DLL.CreateMidAirPatternInfo(ref pattern, resources, rules);
                patterns.Add(pattern);
            }

            if (IsPatternActive(selectedPatterns, UDT_DLL.udtPatternType.MultiFragRails))
            {
                var pattern = new UDT_DLL.udtPatternInfo();
                var rules   = UDT_DLL.CreateCutByMultiRailArg(config);
                UDT_DLL.CreateMultiRailPatternInfo(ref pattern, resources, rules);
                patterns.Add(pattern);
            }

            if (IsPatternActive(selectedPatterns, UDT_DLL.udtPatternType.FlagCaptures))
            {
                if (!config.FlagCaptureAllowBaseToBase && !config.FlagCaptureAllowMissingToBase)
                {
                    app.LogError("[flag captures] You disabled both base and non-base pick-ups. Please enable at least one of them to proceed.");
                    return;
                }

                var pattern = new UDT_DLL.udtPatternInfo();
                var rules   = UDT_DLL.CreateCutByFlagCaptureArg(config);
                UDT_DLL.CreateFlagCapturePatternInfo(ref pattern, resources, rules);
                patterns.Add(pattern);
            }

            if (IsPatternActive(selectedPatterns, UDT_DLL.udtPatternType.FlickRails))
            {
                if (config.FlickRailMinSpeed <= 0.0f && config.FlickRailMinAngleDelta <= 0.0f)
                {
                    app.LogError("[flick rails] Both thresholds are negative or zero, which will match all railgun frags.");
                    return;
                }

                var pattern = new UDT_DLL.udtPatternInfo();
                var rules   = UDT_DLL.CreateCutByFlickRailArg(config);
                UDT_DLL.CreateFlickRailPatternInfo(ref pattern, resources, rules);
                patterns.Add(pattern);
            }

            if (IsPatternActive(selectedPatterns, UDT_DLL.udtPatternType.Matches))
            {
                var pattern = new UDT_DLL.udtPatternInfo();
                var rules   = UDT_DLL.CreateCutByMatchArg(config);
                UDT_DLL.CreateMatchPatternInfo(ref pattern, resources, rules);
                patterns.Add(pattern);
            }

            var threadArg = new ThreadArg();

            threadArg.Demos     = demos;
            threadArg.FilePaths = filePaths;
            threadArg.Patterns  = patterns.ToArray();
            threadArg.Resources = resources;

            app.DisableUiNonThreadSafe();
            app.JoinJobThread();

            switch (action)
            {
            case PatternAction.Cut:
                app.StartJobThread(DemoCutThread, threadArg);
                break;

            case PatternAction.Search:
                app.StartJobThread(DemoSearchThread, threadArg);
                break;

            default:
                break;
            }
        }
Ejemplo n.º 7
0
 static private void DoAction(PatternAction action, UDT_DLL.udtPatternType pattern)
 {
     DoAction(action, GetBit(pattern), true);
 }
Ejemplo n.º 8
0
 private void DoAction(PatternAction action)
 {
     _app.SaveBothConfigs();
     DoAction(action, (uint)_app.Config.PatternsSelectionBitMask, false);
 }