Esempio n. 1
0
        public RGB Convert(HSM input)
        {
            double x = Math.Cos(input.H);
            double w = 41.0.SquareRoot() * input.S * x;

            double a = .0, b = .0, c = .0;

            a = 3.0 / 41.0 * input.S * x;
            b = input.M;
            c = 4.0 / 861.0 * (861.0 * input.S.Power(2) * (1.0 - x.Power(2))).SquareRoot();

            var R = a + b - c;

            a = w;
            b = 23.0 * input.M;
            c = 19.0 * R;

            var G = (a + b - c) / 4.0;

            a = 11 * R;
            b = 9.0 * input.M;
            c = w;

            var B = (a - b - c) / 2.0;

            return(new RGB(new Vector(R, G, B).Coerce(0, 1)));
        }
 public HitResourcegroup(string HitPath, string EVTPath, string HSMPath)
 {
     HitResource = new Hit(File.Open(HitPath, FileMode.Open, FileAccess.Read, FileShare.Read));
     Events      = new EVT(File.Open(EVTPath, FileMode.Open, FileAccess.Read, FileShare.Read));
     if (HSMPath != "")
     {
         Symbols = new HSM(HSMPath);
     }
 }
Esempio n. 3
0
 public void TestRates()
 {
     if (_FuelFlowRate > _AirFlowRate)
     {
         HSM.AsyncDispatch(new QEvent("FuelInMixture"));
     }
     else
     {
         HSM.AsyncDispatch(new QEvent("FuelDissipated"));
     }
 }
Esempio n. 4
0
        private static void HarassMenu()
        {
            HSM = Menu.AddSubMenu("骚扰");

            HSM.Add("Q", new CheckBox("使用 Q"));
            HSM.Add("QMana", new Slider("最低 % 蓝量 Q", 40, 0, 100));
            HSM.AddSeparator();
            HSM.Add("W", new CheckBox("使用 W"));
            HSM.Add("extW", new CheckBox("延长 W (W 接近)", false));
            HSM.Add("AutoW", new CheckBox("骚扰后自动 W2"));
            HSM.Add("WMana", new Slider("最低 % 蓝量 W", 40, 0, 100));
            HSM.AddSeparator();
            HSM.Add("E", new CheckBox("使用 E", false));
            HSM.Add("EMana", new Slider("最低 % 蓝量 E", 40, 0, 100));
            HSM.AddSeparator();
            HSM.Add("Auto", new KeyBind("自动骚扰按键开关", false, KeyBind.BindTypes.PressToggle, 'N'));
        }
        private static void HarassMenu()
        {
            HSM = Menu.AddSubMenu("Harass");

            HSM.Add("Q", new CheckBox("Kullan Q"));
            HSM.Add("QMana", new Slider("en az mana yüzde Q", 40, 0, 100));
            HSM.AddSeparator();
            HSM.Add("W", new CheckBox("Kullan W"));
            HSM.Add("extW", new CheckBox("Gelişmiş W (Gapcloser için W)", false));
            HSM.Add("AutoW", new CheckBox("Dürtmeden sonra otomatik W2"));
            HSM.Add("WMana", new Slider("en az mana yüzde W", 40, 0, 100));
            HSM.AddSeparator();
            HSM.Add("E", new CheckBox("Kullan E", false));
            HSM.Add("EMana", new Slider("en az mana yüzde E", 40, 0, 100));
            HSM.AddSeparator();
            HSM.Add("Auto", new KeyBind("Otomatik Dürtme", false, KeyBind.BindTypes.PressToggle, 'N'));
        }
Esempio n. 6
0
        private static void HarassMenu()
        {
            HSM = Menu.AddSubMenu("Harass");

            HSM.Add("Q", new CheckBox("Use Q"));
            HSM.Add("QMana", new Slider("Min mana % to Q", 40, 0, 100));
            HSM.AddSeparator();
            HSM.Add("W", new CheckBox("Use W"));
            HSM.Add("extW", new CheckBox("Extended W (W to gapclose)", false));
            HSM.Add("AutoW", new CheckBox("Auto W2 after harass"));
            HSM.Add("WMana", new Slider("Min mana % to W", 40, 0, 100));
            HSM.AddSeparator();
            HSM.Add("E", new CheckBox("Use E", false));
            HSM.Add("EMana", new Slider("Min mana % to E", 40, 0, 100));
            HSM.AddSeparator();
            HSM.Add("Auto", new KeyBind("Auto harass", false, KeyBind.BindTypes.PressToggle, 'N'));
        }
Esempio n. 7
0
        private HITResourceGroup LoadHitGroup(string HITPath, string EVTPath, string HSMPath)
        {
            var events  = new EVT(EVTPath);
            var hitfile = new HITFile(HITPath);
            HSM hsmfile = null;

            if (HSMPath != null)
            {
                hsmfile = new HSM(HSMPath);
            }

            return(new HITResourceGroup()
            {
                evt = events,
                hit = hitfile,
                hsm = hsmfile
            });
        }
Esempio n. 8
0
        public void Init()
        {
            //somewhat different from TSO audio - need to scan content for .hot files, then load them all
            //hot contains EVT, tracks, hitlists and patches...
            //...which are added to our global database.

            WAVSounds.Init();
            MP3Sounds.Init();
            XASounds.Init();
            UTKSounds.Init();

            var FilePattern = new Regex(@".*\.hot");

            List <string> matchedFiles = new List <string>();

            foreach (var file in ContentManager.TS1AllFiles)
            {
                if (FilePattern.IsMatch(file.Replace('\\', '/')))
                {
                    matchedFiles.Add(file);
                }
            }
            foreach (var file in matchedFiles)
            {
                //load associated HIT, HSM
                var cFile = Path.Combine(ContentManager.TS1BasePath, file);
                var bPath = cFile.Substring(0, cFile.Length - 4); //path without .hot extension

                var hsm = new HSM(PathCaseTools.Insensitive(bPath + ".hsm"));
                var hit = new HITFile(PathCaseTools.Insensitive(bPath + ".hit"));
                var hot = new Hot(cFile, hsm);

                var group = new HITResourceGroup()
                {
                    hsm = hsm, hit = hit, hot = hot
                };

                foreach (var trk in hot.Tracks)
                {
                    if (TracksById.ContainsKey(trk.Key) && TracksById[trk.Key].SubroutineID != trk.Value.SubroutineID)
                    {
                    }
                    TracksById[trk.Key] = trk.Value;
                }

                foreach (var patch in hot.Patches)
                {
                    if (PatchesById.ContainsKey(patch.Key) && patch.Value.Filename != PatchesById[patch.Key].Filename)
                    {
                    }
                    PatchesById[patch.Key] = patch.Value;
                }

                foreach (var hls in hot.Hitlists)
                {
                    if (HitlistsById.ContainsKey(hls.Key) && HitlistsById[hls.Key].IDs.Count != hls.Value.IDs.Count)
                    {
                    }
                    HitlistsById[hls.Key] = hls.Value;
                }

                foreach (var evt in hot.Events)
                {
                    _Events[evt.Key] = new HITEventRegistration()
                    {
                        Name      = evt.Value.Name,
                        EventType = (FSO.Files.HIT.HITEvents)evt.Value.EventType,
                        TrackID   = evt.Value.TrackID,
                        ResGroup  = group
                    };
                }
            }
            var musics   = Events.Where(x => x.Value.EventType == HITEvents.kSetMusicMode).Select(x => x.Key + ": " + x.Value.TrackID).ToList();
            var stations = Events.Where(x => x.Value.EventType == HITEvents.kTurnOnTV).Select(x => x.Key + ": " + x.Value.TrackID.ToString()).ToList();
            //.Select(x => x.Key + ": " + new string(new char[] { (char)(x.Value.TrackID & 0xFF), (char)((x.Value.TrackID >> 8) & 0xFF), (char)((x.Value.TrackID >> 16) & 0xFF), (char)((x.Value.TrackID >> 24) & 0xFF) })).ToList();
        }
Esempio n. 9
0
 void StartLater()
 {
     m_Hsm = GameObject.FindGameObjectWithTag("GameController").GetComponent <HSM>();
     InitStateMap();
 }