Ejemplo n.º 1
0
 public Synchronizer(SyncType type, long seed)
 {
     _type = type;
     _rng = new RNG(seed);
     _index = 0;
     _state = null;
     _pinned = false;
 }
Ejemplo n.º 2
0
        public void Uniform()
        {
            var rng = new RNG(1234);

            Assert.AreEqual(4, rng.Uniform(0, 10));
            Assert.AreEqual(6, rng.Uniform(0, 10));
            Assert.AreEqual(9, rng.Uniform(0, 10));
        }
Ejemplo n.º 3
0
        public void Next()
        {
            var rng = new RNG(0xffffffff);

            Assert.AreEqual(130063606, rng.Next());
            Assert.AreEqual(3003295397, rng.Next());
            Assert.AreEqual(3870020839, rng.Next());
        }
Ejemplo n.º 4
0
		/// <summary>
		/// Calculates the index of the next block item to execute.
		/// </summary>
		/// <param name="blockItemCount">The number of items in the block.</param>
		/// <param name="rng">The random number generator to use with index calculation.</param>
		/// <returns></returns>
		public int NextIndex(int blockItemCount, RNG rng)
	    {
			// Use synchronizer if available
			if (Sync != null)
			{
				return Sync.NextItem(blockItemCount);
			}

			return rng.Next(blockItemCount);
		}
Ejemplo n.º 5
0
		/// <summary>
		/// Calculates the index of the next block item to execute.
		/// </summary>
		/// <param name="blockItemCount">The number of items in the block.</param>
		/// <param name="rng">The random number generator to use with index calculation.</param>
		/// <returns></returns>
		public int NextIndex(int blockItemCount, RNG rng)
	    {
			if (Chance < 100 && rng.NextDouble(0, 100) > Chance)
			{
				return -1; // Skip the block
			}

			// Use synchronizer if available
			if (Sync != null)
			{
				return Sync.NextItem(blockItemCount);
			}

			return rng.Next(blockItemCount);
		}
Ejemplo n.º 6
0
 public App()
     : base(RNG.XOrShift1024())
 {
 }
Ejemplo n.º 7
0
        public void GridSystem()
        {
            AddUntilStep("The room is load", () => _room.IsLoaded);

            AddStep("Add some objects", () =>
            {
                for (int y = 0; y < Grid.CellSize; y++)
                {
                    for (int x = 0; x < Grid.CellSize; x++)
                    {
                        var spike = RNG.NextBool();

                        Grid.Add(new DrawableGameObject(new GameObject
                        {
                            Hitbox = spike ? "Triangle" : "Square"
                        }
                                                        )
                        {
                            X          = x,
                            Y          = y,
                            Size       = new Vector2(Grid.CellSize),
                            Origin     = Anchor.Centre,
                            GameObject =
                            {
                                Texture = spike ? "BasicSpike" : "BasicTile"
                            },
                            Colour = new Color4(
                                Math.Max(0.5f, RNG.NextSingle()),
                                Math.Max(0.5f, RNG.NextSingle()),
                                Math.Max(0.5f, RNG.NextSingle()),
                                1),
                            Rotation = 90 * RNG.Next(0, 4)
                        });
                    }
                }

                /*
                 * _grid.Add(new DrawableGameObject(new GameObject())
                 * {
                 *  X = 1,
                 *  Y = 1,
                 *  Hitbox = new Box()
                 * });
                 *
                 * _grid.Add(new DrawableGameObject(new GameObject())
                 * {
                 *  X = 1,
                 *  Y = 2,
                 *  Hitbox = new Box()
                 * });
                 *
                 * _grid.Add(new DrawableGameObject(new GameObject())
                 * {
                 *  X = 5,
                 *  Y = 2,
                 *  Hitbox = new Box()
                 * });
                 *
                 * _grid.Add(new Box
                 * {
                 *  X = 7,
                 *  Y = 3,
                 *  Size = new Vector2(16)
                 * });
                 *
                 * _grid.Add(new Box
                 * {
                 *  X = 13,
                 *  Y = 18,
                 *  Size = new Vector2(16)
                 * });*/
            });

            AddAssert("Objects added", () => Grid.Objects.Any());
            AddAssert("Tiles added", () => Grid.Objects.Any(o => o is DrawableGameObject obj && obj.GameObject.Texture == "BasicTile"));
            AddAssert("Spikes added", () => Grid.Objects.Any(o => o is DrawableGameObject obj && obj.GameObject.Texture == "BasicSpike"));

            AddStep("Render grid to room", () => Grid.Render(_room));
            AddStep("Render room", () => _room.Render());
        }
Ejemplo n.º 8
0
        public void HandlePacket(IPacketHandlerContext ctx)
        {
            if (ctx.HasSession)
            {
                return;
            }

            if (!long.TryParse(ctx.Args.ElementAtOrDefault(1), out long userId) || userId < 1)
            {
                return;
            }

            string token = ctx.Args.ElementAtOrDefault(2);

            if (string.IsNullOrEmpty(token))
            {
                return;
            }

            Action <Exception> exceptionHandler = new Action <Exception>(ex => {
                Logger.Debug($@"<{ctx.Connection.RemoteAddress}> Auth fail: {ex.Message}");
                ctx.Connection.Send(new AuthFailPacket(AuthFailReason.AuthInvalid));
                ctx.Connection.Close();
            });

            DataProvider.UserAuthClient.AttemptAuth(
                new UserAuthRequest(userId, token, ctx.Connection.RemoteAddress),
                res => {
                DataProvider.BanClient.CheckBan(res.UserId, ctx.Connection.RemoteAddress, ban => {
                    if (ban.IsPermanent || ban.Expires > DateTimeOffset.Now)
                    {
                        ctx.Connection.Send(new AuthFailPacket(AuthFailReason.Banned, ban));
                        ctx.Connection.Close();
                        return;
                    }

                    IUser user = Users.Connect(res);

                    // Enforce a maximum amount of connections per user
                    if (Sessions.GetAvailableSessionCount(user) < 1)
                    {
                        ctx.Connection.Send(new AuthFailPacket(AuthFailReason.MaxSessions));
                        ctx.Connection.Close();
                        return;
                    }

                    ISession sess = Sessions.Create(ctx.Connection, user);

                    sess.SendPacket(new WelcomeMessagePacket(Sender, $@"Welcome to Flashii Chat, {user.UserName}!"));

                    if (File.Exists(WELCOME))
                    {
                        IEnumerable <string> lines = File.ReadAllLines(WELCOME).Where(x => !string.IsNullOrWhiteSpace(x));
                        string line = lines.ElementAtOrDefault(RNG.Next(lines.Count()));

                        if (!string.IsNullOrWhiteSpace(line))
                        {
                            sess.SendPacket(new WelcomeMessagePacket(Sender, line));
                        }
                    }

                    IChannel chan   = Channels.DefaultChannel;
                    bool shouldJoin = !ChannelUsers.HasUser(chan, user);

                    if (shouldJoin)
                    {
                        // ChannelUsers?
                        //chan.SendPacket(new UserConnectPacket(DateTimeOffset.Now, user));
                        //ctx.Chat.DispatchEvent(this, new UserConnectEvent(chan, user));
                    }

                    sess.SendPacket(new AuthSuccessPacket(user, chan, sess, Version, Messages.TextMaxLength));
                    ChannelUsers.GetUsers(chan, u => sess.SendPacket(new ContextUsersPacket(u.Except(new[] { user }).OrderByDescending(u => u.Rank))));

                    Messages.GetMessages(chan, m => {
                        foreach (IMessage msg in m)
                        {
                            sess.SendPacket(new ContextMessagePacket(msg));
                        }
                    });

                    Channels.GetChannels(user.Rank, c => sess.SendPacket(new ContextChannelsPacket(c)));

                    if (shouldJoin)
                    {
                        ChannelUsers.JoinChannel(chan, sess);
                    }
                }, exceptionHandler);
            },
                exceptionHandler
                );
        }
Ejemplo n.º 9
0
        public async Task Dice(int di, int va)
        {
            if (va > Context.User.Dust.Dust)
            {
                Reply($"@{Context.User.Nick} Ставка не может превышать ваше количесво пыли!");
                return;
            }

            if (BotEntry.RedstoneDust.ContainsKey(Context.User.Username))
            {
                if (di > 5 && di < 37)
                {
                    var value = RNG.Next(1, 7) + RNG.Next(1, 7) + RNG.Next(1, 7) + RNG.Next(1, 7) + RNG.Next(1, 7) + RNG.Next(1, 7);
                    if (Context.User.Dust.Dust > 80)
                    {
                        if (18 > value && value < 26)
                        {
                            if (RNG.Next(0, 101) < 55)
                            {
                                if (RNG.Next(0, 101) > 45)
                                {
                                    value /= 2;
                                }
                                else
                                {
                                    value /= 3;
                                }
                                if (value < 7)
                                {
                                    value = RNG.Next(6, 10);
                                }
                            }
                        }
                    }

                    if (value == di)
                    {
                        Context.User.Dust.Dust += va * 3;
                        Reply($"Бросает кости... На костях выпадает сумма {value}... Вы угадали и выйграли {va * 3} пыли! @{Context.User.Nick} Ваш баланс теперь {Context.User.Dust}");
                        return;
                        //delay = CommandDelay;
                    }
                    else if ((value == di + 1 || value == di - 1) && Context.User.Dust.Dust < 80)
                    {
                        Context.User.Dust.Dust += va;
                        Reply($"Бросает кости... На костях выпадает сумма {value}... Вы почти угадали и казино пошло на уступку. Вы выйграли {va} пыли! @{Context.User.Nick} Ваш баланс теперь {Context.User.Dust}");
                        return;
                    }
                    else
                    {
                        Context.User.Dust.Dust -= va;
                        Reply($"Бросает кости... На костях выпадает сумма {value}... Вы проиграли {va} пыли! @{Context.User.Nick} Ваш баланс теперь {Context.User.Dust}");
                        return;
                        //delay = CommandDelay;
                    }
                }
                else
                {
                    Reply($"@{Context.User.Nick} Вне диапазона: 6 <= {di} => 36");
                    return;
                }
            }
        }
Ejemplo n.º 10
0
        protected override TestDrawableHitCircle CreateDrawableHitCircle(HitCircle circle, bool auto)
        {
            var drawableHitObject = base.CreateDrawableHitCircle(circle, auto);

            Scheduler.AddDelayed(() => drawableHitObject.TriggerJudgement(),
                                 drawableHitObject.HitObject.StartTime - (drawableHitObject.HitObject.HitWindows.HalfWindowFor(HitResult.Miss) + RNG.Next(0, 300)) - Time.Current);

            return(drawableHitObject);
        }
Ejemplo n.º 11
0
 public static RantDictionaryEntry PickEntry(this IEnumerable<RantDictionaryEntry> enumerable, RNG rng)
 {
     var array = enumerable as RantDictionaryEntry[] ?? enumerable.ToArray();
     return array.Length > 0 ? array[rng.Next(array.Length)] : null;
 }
Ejemplo n.º 12
0
 public OsuPatternFileHandler()
 {
     CollectionFolderName = RNG.RandomString(20);
 }
Ejemplo n.º 13
0
        /// <summary>
        /// https://github.com/Itseez/opencv_extra/blob/master/learning_opencv_v2/ch13_ex13_1.cpp
        /// </summary>
        private static void example01()
        {
            using (var window = new Window("Clusters", flags: WindowMode.AutoSize | WindowMode.FreeRatio))
            {
                const int maxClusters = 5;
                var rng = new RNG(state: (ulong)DateTime.Now.Ticks);

                for (; ; )
                {
                    var clustersCount = rng.Uniform(a: 2, b: maxClusters + 1);
                    var samplesCount = rng.Uniform(a: 1, b: 1001);

                    var points = new Mat(rows: samplesCount, cols: 1, type: MatType.CV_32FC2);
                    clustersCount = Math.Min(clustersCount, samplesCount);

                    var img = new Mat(rows: 500, cols: 500, type: MatType.CV_8UC3, s: Scalar.All(0));

                    // generate random sample from multi-gaussian distribution
                    for (var k = 0; k < clustersCount; k++)
                    {
                        var pointChunk = points.RowRange(
                                startRow: k * samplesCount / clustersCount,
                                endRow: (k == clustersCount - 1)
                                    ? samplesCount
                                    : (k + 1) * samplesCount / clustersCount);

                        var center = new Point
                        {
                            X = rng.Uniform(a: 0, b: img.Cols),
                            Y = rng.Uniform(a: 0, b: img.Rows)
                        };
                        rng.Fill(
                            mat: pointChunk,
                            distType: DistributionType.Normal,
                            a: new Scalar(center.X, center.Y),
                            b: new Scalar(img.Cols * 0.05f, img.Rows * 0.05f));
                    }

                    Cv2.RandShuffle(dst: points, iterFactor: 1, rng: rng);

                    var labels = new Mat();
                    var centers = new Mat(rows: clustersCount, cols: 1, type: points.Type());
                    Cv2.Kmeans(
                        data: points,
                        k: clustersCount,
                        bestLabels: labels,
                        criteria: new TermCriteria(CriteriaType.Epsilon | CriteriaType.Iteration, 10, 1.0),
                        attempts: 3,
                        flags: KMeansFlag.PpCenters,
                        centers: centers);

                    Scalar[] colors =
                    {
                       new Scalar(0, 0, 255),
                       new Scalar(0, 255, 0),
                       new Scalar(255, 100, 100),
                       new Scalar(255, 0, 255),
                       new Scalar(0, 255, 255)
                    };

                    for (var i = 0; i < samplesCount; i++)
                    {
                        var clusterIdx = labels.At<int>(i);
                        Point ipt = points.At<Point2f>(i);
                        Cv2.Circle(
                            img: img,
                            center: ipt,
                            radius: 2,
                            color: colors[clusterIdx],
                            lineType: LineType.AntiAlias,
                            thickness: Cv.FILLED);
                    }

                    window.Image = img;

                    var key = (char)Cv2.WaitKey();
                    if (key == 27 || key == 'q' || key == 'Q') // 'ESC'
                    {
                        break;
                    }
                }
            }
        }
Ejemplo n.º 14
0
 /// <summary>
 /// Queries the RantDictionary according to the specified criteria and returns a random match.
 /// </summary>
 /// <param name="rng">The random number generator to randomize the match with.</param>
 /// <param name="query">The search criteria to use.</param>
 /// <param name="syncState">The state object to use for carrier synchronization.</param>
 /// <returns></returns>
 internal string Query(RNG rng, Query query, QueryState syncState)
 {
     RantDictionaryTable table;
     return !_tables.TryGetValue(query.Name, out table) 
         ? "[Missing Table]" 
         : table.Query(this, rng, query, syncState);
 }
Ejemplo n.º 15
0
    public int CreateUser(string email, string pass, string user)
    {
        SurveyPortalDBDataContext sql = new SurveyPortalDBDataContext();

        try
        {
            var check = (from u in sql.users where u.username == user select u).FirstOrDefault();
            if (check.username.ToLower() == user.ToLower())
            {
                return 2;
            }
        }
        catch (Exception e) { }
        try
        {
            var check = (from u in sql.users where u.email == email select u).FirstOrDefault();
            if (check.email.ToLower() == email.ToLower())
            {
                return 3;
            }
        }
        catch (Exception e) { }

        user adduser = new user
        {
            email = email,
            password = pass,
            username = user,
            isEnabled = false
        };

        sql.users.InsertOnSubmit(adduser);

        try
        {
            sql.SubmitChanges();

            RNG rng = new RNG();

            string activation = "";
            for(int i = 0; i < 16; i++)
            {
                int type = rng.NextRandom(0, 1);
                char c;
                if(type == 0)
                {
                    c = (char)rng.NextRandom(48, 57);
                }
                else
                {
                    c = (char)rng.NextRandom(65, 90);
                }

                activation += c;
            }

            validationcode valid = new validationcode
            {
                userid = adduser.id,
                code = activation
            };

            sql.validationcodes.InsertOnSubmit(valid);

            try
            {
                sql.SubmitChanges();
            }
            catch(Exception n)
            {

            }

            SMTPHandler smtp = new SMTPHandler();
            smtp.SendActivation(activation, email, user, pass);
            return 0;
        }
        catch (Exception e)
        {
            return 1;
        }
    }
Ejemplo n.º 16
0
        internal RantDictionaryEntry GetEntry(Carrier carrier, int subtypeIndex, IEnumerable<RantDictionaryEntry> pool, RNG rng)
        {
            if (carrier == null) return pool.PickEntry(rng);
            
            RantDictionaryEntry result = null;

            // Handle match carriers
            foreach(var match in carrier.GetCarriers(CarrierComponent.Match))
                if (_matchTable.TryGetValue(match, out result)) return result;

            // Handle associative carriers
            foreach(var assoc in carrier.GetCarriers(CarrierComponent.Associative))
            {
                if (_assocTable.TryGetValue(assoc, out result))
                    pool = pool.Where(e => e.AssociatesWith(result));
                break;
            }

            // Handle match-associative carriers
            foreach(var massoc in carrier.GetCarriers(CarrierComponent.MatchAssociative))
            {
                if (_matchTable.TryGetValue(massoc, out result))
                    pool = pool.Where(e => e.AssociatesWith(result));
                break;
            }

            // Handle unique carriers
            foreach(var unique in carrier.GetCarriers(CarrierComponent.Unique))
            {
                HashSet<RantDictionaryEntry> usedSet;
                if (!_uniqueTable.TryGetValue(unique, out usedSet))
                {
                    usedSet = _uniqueTable[unique] = new HashSet<RantDictionaryEntry>();
                }

                pool = pool.Except(usedSet);
            }

            // Handle match-unique carriers
            foreach (var munique in carrier.GetCarriers(CarrierComponent.Unique))
            {
                if (_matchTable.TryGetValue(munique, out result))
                    pool = pool.Where(e => e != result);
            }

            // Handle relational carriers
            foreach(var relate in carrier.GetCarriers(CarrierComponent.Relational))
            {
                if (_assocTable.TryGetValue(relate, out result))
                    pool = pool.Where(e => e.RelatesWith(result));
            }

            // Handle match-relational carriers
            foreach (var relate in carrier.GetCarriers(CarrierComponent.MatchRelational))
            {
                if (_matchTable.TryGetValue(relate, out result))
                    pool = pool.Where(e => e.RelatesWith(result));
            }

            // Handle dissociative carriers
            foreach (var relate in carrier.GetCarriers(CarrierComponent.Dissociative))
            {
                if (_assocTable.TryGetValue(relate, out result))
                    pool = pool.Where(e => !e.RelatesWith(result));
            }

            // Handle match-dissociative carriers
            foreach (var relate in carrier.GetCarriers(CarrierComponent.MatchDissociative))
            {
                if (_matchTable.TryGetValue(relate, out result))
                    pool = pool.Where(e => !e.RelatesWith(result));
            }

            // Handle divergent carriers
            foreach (var diverge in carrier.GetCarriers(CarrierComponent.Divergent))
            {
                if (_assocTable.TryGetValue(diverge, out result))
                    pool = pool.Where(e => e.DivergesFrom(result));
            }

            // Handle match-divergent carriers
            foreach (var diverge in carrier.GetCarriers(CarrierComponent.MatchDivergent))
            {
                if (_matchTable.TryGetValue(diverge, out result))
                    pool = pool.Where(e => e.DivergesFrom(result));
            }

            result = pool.PickEntry(rng);

            // Handle rhyme carrier
            foreach (var rhyme in carrier.GetCarriers(CarrierComponent.Rhyme))
            {
                _<RantDictionaryTerm, HashSet<RantDictionaryEntry>> rhymeState;
                if (!_rhymeTable.TryGetValue(rhyme, out rhymeState))
                {
                    result = pool
                        .Where(e => !Util.IsNullOrWhiteSpace(e.Terms[subtypeIndex].Pronunciation))
                        .PickEntry(rng);
                    _rhymeTable[rhyme] = _.Create(result.Terms[subtypeIndex], new HashSet<RantDictionaryEntry>(new[] { result }));
                    break;
                }
                result =
                    pool.Except(rhymeState.Item2)
                        .Where(e =>
                                !Util.IsNullOrWhiteSpace(e.Terms[subtypeIndex].Pronunciation) &&
                                _rhymer.Rhyme(rhymeState.Item1, e.Terms[subtypeIndex]))
                        .PickEntry(rng);

                if (result != null) rhymeState.Item2.Add(result);
                break; // Ignore any extra rhyme carriers
            }

            if (result == null) return result;

            foreach (var a in carrier.GetCarriers(CarrierComponent.Associative))
                if (!_assocTable.ContainsKey(a)) _assocTable[a] = result;

            foreach (var a in carrier.GetCarriers(CarrierComponent.Dissociative))
                if (!_assocTable.ContainsKey(a)) _assocTable[a] = result;

            foreach (var a in carrier.GetCarriers(CarrierComponent.Divergent))
                if (!_assocTable.ContainsKey(a)) _assocTable[a] = result;

            foreach (var a in carrier.GetCarriers(CarrierComponent.Relational))
                if (!_assocTable.ContainsKey(a)) _assocTable[a] = result;

            foreach (var unique in carrier.GetCarriers(CarrierComponent.Unique))
                _uniqueTable[unique].Add(result);

            foreach (var match in carrier.GetCarriers(CarrierComponent.Match))
            {
                _matchTable[match] = result;
                break;
            }

            return result;
        }
Ejemplo n.º 17
0
        internal string Query(RantDictionary dictionary, RNG rng, Query query, QueryState syncState)
        {
            var index = String.IsNullOrEmpty(query.Subtype) ? 0 : GetSubtypeIndex(query.Subtype);
            if (index == -1) return "[Bad Subtype]";

            var pool = query.ClassFilter.IsEmpty
                ? _entries 
                : _entries.Where(e => query.ClassFilter.Test(e, query.Exclusive));

            if (_hidden.Any())
            {
                var hide = _hidden.Where(hc => !query.ClassFilter.AllowsClass(hc))
                    .Except(dictionary.IncludedHiddenClasses);
                pool = pool.Where(e => !hide.Any(e.ContainsClass));
            }

            if (query.RegexFilters.Any())
                pool = query.RegexFilters.Aggregate(pool, (current, regex) => current.Where(e => regex.Item1 == regex.Item2.IsMatch(e.Terms[index].Value)));

            if (query.SyllablePredicate != null)
                pool = pool.Where(e => query.SyllablePredicate.Test(e.Terms[index].SyllableCount));

            if (!pool.Any()) return MissingTerm;

            return syncState.GetEntry(query.Carrier, index, pool, rng)?[index] ?? MissingTerm;
        }
Ejemplo n.º 18
0
		public Sandbox(RantEngine engine, RantPattern pattern, RNG rng, int sizeLimit = 0)
		{
			_engine = engine;
			_format = engine.Format;
			_sizeLimit = new Limit(sizeLimit);
			_mainOutput = new ChannelWriter(_format, _sizeLimit);
			_outputs = new Stack<ChannelWriter>();
			_outputs.Push(_mainOutput);
			_rng = rng;
			_startingGen = rng.Generation;
			_pattern = pattern;
			_objects = new ObjectStack(engine.Objects);
			_blocks = new Stack<BlockState>();
			_matches = new Stack<Match>();
			_queryState = new QueryState();
			_subroutineArgs = new Stack<Dictionary<string, RantAction>>();
			_syncManager = new SyncManager(this);
            _blockManager = new BlockManager();
			_scriptObjectStack = new Stack<object>();
            _stopwatch = new Stopwatch();
		}
Ejemplo n.º 19
0
        public TestSceneScoresContainer()
        {
            TestScoresContainer scoresContainer;

            Child = new Container
            {
                Anchor           = Anchor.TopCentre,
                Origin           = Anchor.TopCentre,
                RelativeSizeAxes = Axes.Both,
                Width            = 0.8f,
                Children         = new Drawable[]
                {
                    new Box
                    {
                        RelativeSizeAxes = Axes.Both,
                        Colour           = Color4.Black,
                    },
                    scoresContainer = new TestScoresContainer(),
                }
            };

            var allScores = new APILegacyScores
            {
                Scores = new List <APILegacyScoreInfo>
                {
                    new APILegacyScoreInfo
                    {
                        User = new User
                        {
                            Id       = 6602580,
                            Username = @"waaiiru",
                            Country  = new Country
                            {
                                FullName = @"Spain",
                                FlagName = @"ES",
                            },
                        },
                        Mods = new[]
                        {
                            new OsuModDoubleTime().Acronym,
                            new OsuModHidden().Acronym,
                            new OsuModFlashlight().Acronym,
                            new OsuModHardRock().Acronym,
                        },
                        Rank       = ScoreRank.XH,
                        PP         = 200,
                        MaxCombo   = 1234,
                        TotalScore = 1234567890,
                        Accuracy   = 1,
                    },
                    new APILegacyScoreInfo
                    {
                        User = new User
                        {
                            Id       = 4608074,
                            Username = @"Skycries",
                            Country  = new Country
                            {
                                FullName = @"Brazil",
                                FlagName = @"BR",
                            },
                        },
                        Mods = new[]
                        {
                            new OsuModDoubleTime().Acronym,
                            new OsuModHidden().Acronym,
                            new OsuModFlashlight().Acronym,
                        },
                        Rank       = ScoreRank.S,
                        PP         = 190,
                        MaxCombo   = 1234,
                        TotalScore = 1234789,
                        Accuracy   = 0.9997,
                    },
                    new APILegacyScoreInfo
                    {
                        User = new User
                        {
                            Id       = 1014222,
                            Username = @"eLy",
                            Country  = new Country
                            {
                                FullName = @"Japan",
                                FlagName = @"JP",
                            },
                        },
                        Mods = new[]
                        {
                            new OsuModDoubleTime().Acronym,
                            new OsuModHidden().Acronym,
                        },
                        Rank       = ScoreRank.B,
                        PP         = 180,
                        MaxCombo   = 1234,
                        TotalScore = 12345678,
                        Accuracy   = 0.9854,
                    },
                    new APILegacyScoreInfo
                    {
                        User = new User
                        {
                            Id       = 1541390,
                            Username = @"Toukai",
                            Country  = new Country
                            {
                                FullName = @"Canada",
                                FlagName = @"CA",
                            },
                        },
                        Mods = new[]
                        {
                            new OsuModDoubleTime().Acronym,
                        },
                        Rank       = ScoreRank.C,
                        PP         = 170,
                        MaxCombo   = 1234,
                        TotalScore = 1234567,
                        Accuracy   = 0.8765,
                    },
                    new APILegacyScoreInfo
                    {
                        User = new User
                        {
                            Id       = 7151382,
                            Username = @"Mayuri Hana",
                            Country  = new Country
                            {
                                FullName = @"Thailand",
                                FlagName = @"TH",
                            },
                        },
                        Rank       = ScoreRank.D,
                        PP         = 160,
                        MaxCombo   = 1234,
                        TotalScore = 123456,
                        Accuracy   = 0.6543,
                    },
                }
            };

            var myBestScore = new APILegacyUserTopScoreInfo
            {
                Score = new APILegacyScoreInfo
                {
                    User = new User
                    {
                        Id       = 7151382,
                        Username = @"Mayuri Hana",
                        Country  = new Country
                        {
                            FullName = @"Thailand",
                            FlagName = @"TH",
                        },
                    },
                    Rank       = ScoreRank.D,
                    PP         = 160,
                    MaxCombo   = 1234,
                    TotalScore = 123456,
                    Accuracy   = 0.6543,
                },
                Position = 1337,
            };

            var oneScore = new APILegacyScores
            {
                Scores = new List <APILegacyScoreInfo>
                {
                    new APILegacyScoreInfo
                    {
                        User = new User
                        {
                            Id       = 6602580,
                            Username = @"waaiiru",
                            Country  = new Country
                            {
                                FullName = @"Spain",
                                FlagName = @"ES",
                            },
                        },
                        Mods = new[]
                        {
                            new OsuModDoubleTime().Acronym,
                            new OsuModHidden().Acronym,
                            new OsuModFlashlight().Acronym,
                            new OsuModHardRock().Acronym,
                        },
                        Rank       = ScoreRank.XH,
                        PP         = 200,
                        MaxCombo   = 1234,
                        TotalScore = 1234567890,
                        Accuracy   = 1,
                    }
                }
            };

            foreach (var s in allScores.Scores)
            {
                s.Statistics = new Dictionary <string, int>
                {
                    { "count_300", RNG.Next(2000) },
                    { "count_100", RNG.Next(2000) },
                    { "count_50", RNG.Next(2000) },
                    { "count_miss", RNG.Next(2000) }
                };
            }

            AddStep("Load all scores", () =>
            {
                allScores.UserScore    = null;
                scoresContainer.Scores = allScores;
            });
            AddStep("Load null scores", () => scoresContainer.Scores    = null);
            AddStep("Load only one score", () => scoresContainer.Scores = oneScore);
            AddStep("Load scores with my best", () =>
            {
                allScores.UserScore    = myBestScore;
                scoresContainer.Scores = allScores;
            });
        }
        public override void Reset()
        {
            base.Reset();

            createArea(scrollDir = Direction.Vertical);

            AddStep("Vertical", delegate { createArea(scrollDir = Direction.Vertical); });
            AddStep("Horizontal", delegate { createArea(scrollDir = Direction.Horizontal); });
            AddStep("Both", createAreaBoth);

            AddStep("Dragger Anchor 1", delegate { scroll.ScrollDraggerAnchor = scrollDir == Direction.Vertical ? Anchor.TopRight : Anchor.BottomLeft; });
            AddStep("Dragger Anchor 2", delegate { scroll.ScrollDraggerAnchor = Anchor.TopLeft; });

            AddStep("Dragger Visible", delegate { scroll.ScrollDraggerVisible = !scroll.ScrollDraggerVisible; });
            AddStep("Dragger Overlap", delegate { scroll.ScrollDraggerOverlapsContent = !scroll.ScrollDraggerOverlapsContent; });

            boxCreator?.Cancel();
            boxCreator = Scheduler.AddDelayed(delegate
            {
                if (Parent == null)
                {
                    return;
                }

                Box box;
                Container container = new Container
                {
                    Size     = new Vector2(80, 80),
                    Children = new[]
                    {
                        box = new Box
                        {
                            RelativeSizeAxes = Axes.Both,
                            Anchor           = Anchor.Centre,
                            Origin           = Anchor.Centre,
                            Colour           = new Color4(RNG.NextSingle(), RNG.NextSingle(), RNG.NextSingle(), 1)
                        }
                    }
                };

                flow.Add(container);

                container.FadeInFromZero(1000);
                using (container.BeginDelayedSequence(RNG.Next(0, 20000), true))
                {
                    container.FadeOutFromOne(4000);
                    box.RotateTo((RNG.NextSingle() - 0.5f) * 90, 4000);
                    box.ScaleTo(0.5f, 4000);
                    container.Expire();
                }
            }, 100, true);
        }
Ejemplo n.º 21
0
        public void TestBeatmapDownloadingStates()
        {
            AddStep("set to no map", () => Client.ChangeBeatmapAvailability(BeatmapAvailability.NotDownloaded()));
            AddStep("set to downloading map", () => Client.ChangeBeatmapAvailability(BeatmapAvailability.Downloading(0)));

            checkProgressBarVisibility(true);

            AddRepeatStep("increment progress", () =>
            {
                float progress = this.ChildrenOfType <ParticipantPanel>().Single().User.BeatmapAvailability.DownloadProgress ?? 0;
                Client.ChangeBeatmapAvailability(BeatmapAvailability.Downloading(progress + RNG.NextSingle(0.1f)));
            }, 25);

            AddAssert("progress bar increased", () => this.ChildrenOfType <ProgressBar>().Single().Current.Value > 0);

            AddStep("set to importing map", () => Client.ChangeBeatmapAvailability(BeatmapAvailability.Importing()));
            checkProgressBarVisibility(false);

            AddStep("set to available", () => Client.ChangeBeatmapAvailability(BeatmapAvailability.LocallyAvailable()));
        }
Ejemplo n.º 22
0
 public double GetValue()
 {
     return(RNG.GetInverseGamma(this.Shape, this.Scale));
 }
Ejemplo n.º 23
0
        public void TestManyUsers()
        {
            AddStep("add many users", () =>
            {
                for (int i = 0; i < 20; i++)
                {
                    Client.AddUser(new APIUser
                    {
                        Id                 = i,
                        Username           = $"User {i}",
                        RulesetsStatistics = new Dictionary <string, UserStatistics>
                        {
                            {
                                Ruleset.Value.ShortName,
                                new UserStatistics {
                                    GlobalRank = RNG.Next(1, 100000),
                                }
                            }
                        },
                        CoverUrl = @"https://osu.ppy.sh/images/headers/profile-covers/c3.jpg",
                    });

                    Client.ChangeUserState(i, (MultiplayerUserState)RNG.Next(0, (int)MultiplayerUserState.Results + 1));

                    if (RNG.NextBool())
                    {
                        var beatmapState = (DownloadState)RNG.Next(0, (int)DownloadState.LocallyAvailable + 1);

                        switch (beatmapState)
                        {
                        case DownloadState.NotDownloaded:
                            Client.ChangeUserBeatmapAvailability(i, BeatmapAvailability.NotDownloaded());
                            break;

                        case DownloadState.Downloading:
                            Client.ChangeUserBeatmapAvailability(i, BeatmapAvailability.Downloading(RNG.NextSingle()));
                            break;

                        case DownloadState.Importing:
                            Client.ChangeUserBeatmapAvailability(i, BeatmapAvailability.Importing());
                            break;
                        }
                    }
                }
            });
        }
Ejemplo n.º 24
0
 public RCSource(string name, Point3D position, double amplitude, RNG random, bool on = true, double mean = 0.0, double std = 1.0)
     : base(name, position, amplitude, on)
 {
     randomsource = random;
     randomparams = new[] { mean, std };
 }
        public CharacterSelection()
        {
            for (int i = 0; i < characters.Length; i++)
            {
                characters[i] = new SpriteSheetContext("Clawdia_Direction_Anim-Sheet.png", 8, 8)
                {
                    RenderSize = Vector.Create(64, 64),
                };

                //don't tint the first character
                if (i > 0)
                {
                    characters[i].RenderColor = new Annex.Data.RGBA((byte)RNG.Next(255), (byte)RNG.Next(255), (byte)RNG.Next(255));
                }
            }

            this.Events.AddEvent("ChooseCharacter", PriorityType.INPUT, ChooseCharacter, 500);
        }
Ejemplo n.º 26
0
        private void buildTest()
        {
            Add(new Container
            {
                Padding          = new MarginPadding(25f),
                RelativeSizeAxes = Axes.Both,
                Children         = new Drawable[]
                {
                    fillContainer = new FillFlowContainer
                    {
                        RelativeSizeAxes = Axes.Both,
                        AutoSizeAxes     = Axes.None,
                    },
                    new Box
                    {
                        Anchor           = Anchor.CentreLeft,
                        Origin           = Anchor.Centre,
                        RelativeSizeAxes = Axes.Y,
                        Size             = new Vector2(3, 1),
                        Colour           = Color4.HotPink,
                    },
                    new Box
                    {
                        Anchor           = Anchor.CentreRight,
                        Origin           = Anchor.Centre,
                        RelativeSizeAxes = Axes.Y,
                        Size             = new Vector2(3, 1),
                        Colour           = Color4.HotPink,
                    },
                    new Box
                    {
                        Anchor           = Anchor.TopCentre,
                        Origin           = Anchor.Centre,
                        RelativeSizeAxes = Axes.X,
                        Size             = new Vector2(1, 3),
                        Colour           = Color4.HotPink,
                    },
                    new Box
                    {
                        Anchor           = Anchor.BottomCentre,
                        Origin           = Anchor.Centre,
                        RelativeSizeAxes = Axes.X,
                        Size             = new Vector2(1, 3),
                        Colour           = Color4.HotPink,
                    }
                }
            });

            AddToggleStep("Rotate Container", state => { fillContainer.RotateTo(state ? 45f : 0, 1000); });
            AddToggleStep("Scale Container", state => { fillContainer.ScaleTo(state ? 1.2f : 1f, 1000); });
            AddToggleStep("Shear Container", state => { fillContainer.Shear = state ? new Vector2(0.5f, 0f) : new Vector2(0f, 0f); });
            AddToggleStep("Center Container Anchor", state => { fillContainer.Anchor = state ? Anchor.Centre : Anchor.TopLeft; });
            AddToggleStep("Center Container Origin", state => { fillContainer.Origin = state ? Anchor.Centre : Anchor.TopLeft; });
            AddToggleStep("Autosize Container", state =>
            {
                if (state)
                {
                    fillContainer.RelativeSizeAxes = Axes.None;
                    fillContainer.AutoSizeAxes     = Axes.Both;
                }
                else
                {
                    fillContainer.AutoSizeAxes     = Axes.None;
                    fillContainer.RelativeSizeAxes = Axes.Both;
                    fillContainer.Width            = 1;
                    fillContainer.Height           = 1;
                }
            });
            AddToggleStep("Rotate children", state =>
            {
                if (state)
                {
                    foreach (var child in fillContainer.Children)
                    {
                        child.RotateTo(45f, 1000);
                    }
                }
                else
                {
                    foreach (var child in fillContainer.Children)
                    {
                        child.RotateTo(0f, 1000);
                    }
                }
            });
            AddToggleStep("Shear children", state =>
            {
                if (state)
                {
                    foreach (var child in fillContainer.Children)
                    {
                        child.Shear = new Vector2(0.2f, 0.2f);
                    }
                }
                else
                {
                    foreach (var child in fillContainer.Children)
                    {
                        child.Shear = Vector2.Zero;
                    }
                }
            });
            AddToggleStep("Scale children", state =>
            {
                if (state)
                {
                    foreach (var child in fillContainer.Children)
                    {
                        child.ScaleTo(1.25f, 1000);
                    }
                }
                else
                {
                    foreach (var child in fillContainer.Children)
                    {
                        child.ScaleTo(1f, 1000);
                    }
                }
            });
            AddToggleStep("Randomly scale children", state =>
            {
                if (state)
                {
                    foreach (var child in fillContainer.Children)
                    {
                        child.ScaleTo(RNG.NextSingle(1, 2), 1000);
                    }
                }
                else
                {
                    foreach (var child in fillContainer.Children)
                    {
                        child.ScaleTo(1f, 1000);
                    }
                }
            });
            AddToggleStep("Randomly set child origins", state =>
            {
                if (state)
                {
                    foreach (var child in fillContainer.Children)
                    {
                        switch (RNG.Next(9))
                        {
                        case 0:
                            child.Origin = Anchor.TopLeft;
                            break;

                        case 1:
                            child.Origin = Anchor.TopCentre;
                            break;

                        case 2:
                            child.Origin = Anchor.TopRight;
                            break;

                        case 3:
                            child.Origin = Anchor.CentreLeft;
                            break;

                        case 4:
                            child.Origin = Anchor.Centre;
                            break;

                        case 5:
                            child.Origin = Anchor.CentreRight;
                            break;

                        case 6:
                            child.Origin = Anchor.BottomLeft;
                            break;

                        case 7:
                            child.Origin = Anchor.BottomCentre;
                            break;

                        case 8:
                            child.Origin = Anchor.BottomRight;
                            break;
                        }
                    }
                }
                else
                {
                    foreach (var child in fillContainer.Children)
                    {
                        child.Origin = originDropdown.Current.Value;
                    }
                }
            });

            AddToggleStep("Stop adding children", state => { doNotAddChildren = state; });

            scheduledAdder?.Cancel();
            scheduledAdder = Scheduler.AddDelayed(
                () =>
            {
                if (fillContainer.Parent == null)
                {
                    scheduledAdder.Cancel();
                }

                if (doNotAddChildren)
                {
                    fillContainer.Invalidate();
                }

                if (fillContainer.Children.Count < 1000 && !doNotAddChildren)
                {
                    fillContainer.Add(new Container
                    {
                        Anchor       = childAnchor,
                        Origin       = childOrigin,
                        AutoSizeAxes = Axes.Both,
                        Children     = new Drawable[]
                        {
                            new Box
                            {
                                Width  = 50,
                                Height = 50,
                                Colour = Color4.White
                            },
                            new SpriteText
                            {
                                Colour = Color4.Black,
                                RelativePositionAxes = Axes.Both,
                                Position             = new Vector2(0.5f, 0.5f),
                                Origin = Anchor.Centre,
                                Text   = fillContainer.Children.Count.ToString()
                            }
                        }
                    });
                }
            },
                100,
                true
                );
        }
Ejemplo n.º 27
0
        public override Action GetAction(Suggestion suggestion, float currentHP)
        {
            var AttackChance    = 3;
            var DefendChance    = 3;
            var BuffChance      = 3;
            var DoNothingChance = 1;
            var FleeChance      = 1;

            switch (suggestion)
            {
            case Suggestion.Attack:
                AttackChance += 1;
                break;

            case Suggestion.Defend:
                DefendChance += 1;
                break;

            case Suggestion.Support:
                BuffChance += 1;
                break;

            case Suggestion.Whatever:
                AttackChance    += 2;
                DefendChance    += 2;
                BuffChance      += 2;
                DoNothingChance += 2;
                FleeChance      += 2;
                break;

            default:
                break;
            }

            if (currentHP < 0.15)
            {
                FleeChance += 2;
                //TODO Atacar Treinadores
            }

            var rand = RNG.GetRandom();
            var roll = rand.Next(0, AttackChance + DefendChance + BuffChance + DoNothingChance + FleeChance);

            if (roll < AttackChance)
            {
                return(Action.Attack);
            }
            if (roll > AttackChance && roll < AttackChance + DefendChance)
            {
                return(Action.Defend);
            }
            if (roll > AttackChance + DefendChance && roll < AttackChance + DefendChance + BuffChance)
            {
                return(Action.Buff);
            }
            if (roll > AttackChance + DefendChance + BuffChance && roll < AttackChance + DefendChance + BuffChance + DoNothingChance)
            {
                return(Action.DoNothing);
            }
            else
            {
                return(Action.Flee);
            }
        }
Ejemplo n.º 28
0
 public void OnInit()
 {
     startingPosition = Transformation.Position;
     rotateMultiplier = RNG.Range(MinRotateSpeedMult, MaxRotateSpeedMult);
     bobDirection     = RotateSpeed.Normalized();
 }
Ejemplo n.º 29
0
 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(RNG obj)
 {
     return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr);
 }
Ejemplo n.º 30
0
        public TestCaseScoreCounter()
        {
            int numerator = 0, denominator = 0;

            ScoreCounter score = new ScoreCounter(7)
            {
                Origin   = Anchor.TopRight,
                Anchor   = Anchor.TopRight,
                TextSize = 40,
                Margin   = new MarginPadding(20),
            };

            Add(score);

            ComboCounter comboCounter = new StandardComboCounter
            {
                Origin   = Anchor.BottomLeft,
                Anchor   = Anchor.BottomLeft,
                Margin   = new MarginPadding(10),
                TextSize = 40,
            };

            Add(comboCounter);

            PercentageCounter accuracyCounter = new PercentageCounter
            {
                Origin   = Anchor.TopRight,
                Anchor   = Anchor.TopRight,
                Position = new Vector2(-20, 60),
            };

            Add(accuracyCounter);

            StarCounter stars = new StarCounter
            {
                Origin   = Anchor.BottomLeft,
                Anchor   = Anchor.BottomLeft,
                Position = new Vector2(20, -160),
                Count    = 5,
            };

            Add(stars);

            SpriteText starsLabel = new SpriteText
            {
                Origin   = Anchor.BottomLeft,
                Anchor   = Anchor.BottomLeft,
                Position = new Vector2(20, -190),
                Text     = stars.Count.ToString("0.00"),
            };

            Add(starsLabel);

            AddStep(@"Reset all", delegate
            {
                score.Current.Value        = 0;
                comboCounter.Current.Value = 0;
                numerator = denominator = 0;
                accuracyCounter.SetFraction(0, 0);
                stars.Count     = 0;
                starsLabel.Text = stars.Count.ToString("0.00");
            });

            AddStep(@"Hit! :D", delegate
            {
                score.Current.Value += 300 + (ulong)(300.0 * (comboCounter.Current > 0 ? comboCounter.Current - 1 : 0) / 25.0);
                comboCounter.Increment();
                numerator++;
                denominator++;
                accuracyCounter.SetFraction(numerator, denominator);
            });

            AddStep(@"miss...", delegate
            {
                comboCounter.Current.Value = 0;
                denominator++;
                accuracyCounter.SetFraction(numerator, denominator);
            });

            AddStep(@"Alter stars", delegate
            {
                stars.Count     = RNG.NextSingle() * (stars.StarCount + 1);
                starsLabel.Text = stars.Count.ToString("0.00");
            });

            AddStep(@"Stop counters", delegate
            {
                score.StopRolling();
                comboCounter.StopRolling();
                accuracyCounter.StopRolling();
                stars.StopAnimation();
            });
        }
Ejemplo n.º 31
0
        /// <summary>
        /// Returns a random generated name
        /// </summary>
        private string GetName()
        {
            int random = RNG.Next(0, Names.Count);

            return(Names[random]);
        }
Ejemplo n.º 32
0
        private void load()
        {
            managerUpdated = beatmaps.ItemUpdated.GetBoundCopy();
            managerUpdated.BindValueChanged(beatmapUpdated);
            managerRemoved = beatmaps.ItemRemoved.GetBoundCopy();
            managerRemoved.BindValueChanged(beatmapRemoved);

            beatmapSets.AddRange(beatmaps.GetAllUsableBeatmapSets(IncludedDetails.Minimal, true).OrderBy(_ => RNG.Next()));

            // Todo: These binds really shouldn't be here, but are unlikely to cause any issues for now.
            // They are placed here for now since some tests rely on setting the beatmap _and_ their hierarchies inside their load(), which runs before the MusicController's load().
            beatmap.BindValueChanged(beatmapChanged, true);
            mods.BindValueChanged(_ => ResetTrackAdjustments(), true);
        }
Ejemplo n.º 33
0
        public override void SetUpSteps()
        {
            AddStep("set local user", () => ((DummyAPIAccess)API).LocalUser.Value = LookupCache.GetUserAsync(1).Result);

            AddStep("create leaderboard", () =>
            {
                leaderboard?.Expire();

                OsuScoreProcessor scoreProcessor;
                Beatmap.Value = CreateWorkingBeatmap(Ruleset.Value);

                var playableBeatmap  = Beatmap.Value.GetPlayableBeatmap(Ruleset.Value);
                var multiplayerUsers = new List <MultiplayerRoomUser>();

                foreach (var user in users)
                {
                    SpectatorClient.StartPlay(user, Beatmap.Value.BeatmapInfo.OnlineBeatmapID ?? 0);
                    var roomUser = OnlinePlayDependencies.Client.AddUser(new User {
                        Id = user
                    }, true);

                    roomUser.MatchState = new TeamVersusUserState
                    {
                        TeamID = RNG.Next(0, 2)
                    };

                    multiplayerUsers.Add(roomUser);
                }

                Children = new Drawable[]
                {
                    scoreProcessor = new OsuScoreProcessor(),
                };

                scoreProcessor.ApplyBeatmap(playableBeatmap);

                LoadComponentAsync(leaderboard = new MultiplayerGameplayLeaderboard(scoreProcessor, multiplayerUsers.ToArray())
                {
                    Anchor = Anchor.Centre,
                    Origin = Anchor.Centre,
                }, gameplayLeaderboard =>
                {
                    LoadComponentAsync(new MatchScoreDisplay
                    {
                        Team1Score = { BindTarget = leaderboard.TeamScores[0] },
                        Team2Score = { BindTarget = leaderboard.TeamScores[1] }
                    }, Add);

                    LoadComponentAsync(gameplayScoreDisplay = new GameplayMatchScoreDisplay
                    {
                        Anchor     = Anchor.BottomCentre,
                        Origin     = Anchor.BottomCentre,
                        Team1Score = { BindTarget = leaderboard.TeamScores[0] },
                        Team2Score = { BindTarget = leaderboard.TeamScores[1] }
                    }, Add);

                    Add(gameplayLeaderboard);
                });
            });

            AddUntilStep("wait for load", () => leaderboard.IsLoaded);
            AddUntilStep("wait for user population", () => Client.CurrentMatchPlayingUserIds.Count > 0);
        }
Ejemplo n.º 34
0
        protected override void Update()
        {
            base.Update();

            particleContainer.Add(new MedalParticle(RNG.Next(0, 359)));
        }
Ejemplo n.º 35
0
        public void ApplyToRulesetContainer(RulesetContainer <ManiaHitObject> rulesetContainer)
        {
            int availableColumns = ((ManiaRulesetContainer)rulesetContainer).AvailableColumns;
            var shuffledColumns  = Enumerable.Range(0, availableColumns).OrderBy(item => RNG.Next()).ToList();

            rulesetContainer.Objects.OfType <ManiaHitObject>().ForEach(h => h.Column = shuffledColumns[h.Column]);
        }
Ejemplo n.º 36
0
        public TestSceneGameplayCursor()
        {
            gameplayBeatmap = new GameplayBeatmap(CreateBeatmap(new OsuRuleset().RulesetInfo));

            AddStep("change background colour", () =>
            {
                background?.Expire();

                Add(background = new Box
                {
                    RelativeSizeAxes = Axes.Both,
                    Depth            = float.MaxValue,
                    Colour           = new Colour4(RNG.NextSingle(), RNG.NextSingle(), RNG.NextSingle(), 1)
                });
            });

            AddSliderStep("circle size", 0f, 10f, 0f, val =>
            {
                config.Set(OsuSetting.AutoCursorSize, true);
                gameplayBeatmap.BeatmapInfo.BaseDifficulty.CircleSize = val;
                Scheduler.AddOnce(recreate);
            });

            AddStep("test cursor container", recreate);

            void recreate() => SetContents(() => new OsuInputManager(new OsuRuleset().RulesetInfo)
            {
                Child = new OsuCursorContainer()
            });
        }
Ejemplo n.º 37
0
 public static void randBytes(byte[] buf, int length)
 {
     RNG.GetBytes(buf, length);
 }
Ejemplo n.º 38
0
 public ParticlePart(double availableDuration)
 {
     distance  = RNG.NextSingle(0.5f);
     duration  = RNG.NextDouble(availableDuration / 3, availableDuration);
     direction = RNG.NextSingle(0, MathF.PI * 2);
 }
Ejemplo n.º 39
0
 private void addRandomPrivateChannel() =>
 channelTabControl.AddChannel(new Channel(new APIUser
 {
     Id       = RNG.Next(1000, 10000000),
     Username = "******" + RNG.Next(1000)
 }));
Ejemplo n.º 40
0
 public OsuPatternFileHandler(string basePath)
 {
     CollectionFolderName = RNG.RandomString(20);
     BasePath             = basePath;
     EnsureCollectionFolderExists();
 }
Ejemplo n.º 41
0
Archivo: Random.cs Proyecto: babaq/Soul
 public Randomizer(RNG randomsource, int dimxbegin = 0, int dimxend = 0, int dimybegin = 0, int dimyend = 0, int dimzbegin = 0, int dimzend = 0, double mean = 0.5, double std = 0.5)
 {
     this.randomsource = randomsource;
     this.dimxbegin = dimxbegin;
     this.dimxend = dimxend;
     this.dimybegin = dimybegin;
     this.dimyend = dimyend;
     this.dimzbegin = dimzbegin;
     this.dimzend = dimzend;
     this.mean = mean;
     this.std = std;
 }
Ejemplo n.º 42
0
        private void OnUpdateUse()
        {
            try
            {
                if (GameManager.IsPaused || this.useSleeper)
                {
                    return;
                }

                var abilities = this.recoveryAbilities.Where(x => this.toggler.IsEnabled(x.Name))
                                .OrderBy(x => this.toggler.GetPriority(x.Name))
                                .ToList();

                if (abilities.Count == 0)
                {
                    return;
                }

                if (this.TakeBottleFromStash(abilities))
                {
                    this.useSleeper.Sleep(RNG.Randomize(0.15f, 0.05f));
                    return;
                }

                foreach (var ability in abilities)
                {
                    if (!ability.CanBeCasted())
                    {
                        continue;
                    }

                    if (this.SwitchPowerTreads(ability))
                    {
                        this.useSleeper.Sleep(RNG.Randomize(0.1f, 0.02f));
                        return;
                    }

                    if (this.DropItems(ability))
                    {
                        this.useSleeper.Sleep(
                            this.IsAllItemsDropped(ability) ? RNG.Randomize(0.1f, 0.05f) : RNG.Randomize(this.DefaultDelay, 0.05f));
                        return;
                    }

                    if (ability.UseAbility())
                    {
                        this.useSleeper.Sleep(ability.Delay + RNG.Randomize(this.DefaultDelay, 0.05f));
                        return;
                    }
                }

                if (abilities.Any(x => !x.CanPickUpItems()))
                {
                    return;
                }

                if (this.PickUpUsable(abilities))
                {
                    this.useSleeper.Sleep(RNG.Randomize(0.3f, 0.05f));
                    return;
                }

                this.pickSleeper.Sleep(0.1f);
                this.useAbilitiesHandler.IsEnabled = false;
                this.pickUpItemsHandler.IsEnabled  = true;
            }
            catch (Exception e)
            {
                Logger.Error(e);
            }
        }
Ejemplo n.º 43
0
        protected override void UpdateInitialTransforms()
        {
            base.UpdateInitialTransforms();

            const float end_scale          = 0.6f;
            const float random_scale_range = 1.6f;

            ScaleContainer.ScaleTo(HitObject.Scale * (end_scale + random_scale_range * RNG.NextSingle()))
            .Then().ScaleTo(HitObject.Scale * end_scale, HitObject.TimePreempt);

            ScaleContainer.RotateTo(getRandomAngle())
            .Then()
            .RotateTo(getRandomAngle(), HitObject.TimePreempt);

            float getRandomAngle() => 180 *(RNG.NextSingle() * 2 - 1);
        }
Ejemplo n.º 44
0
        public TestSceneChannelTabControl()
        {
            SpriteText currentText;

            Add(new Container
            {
                RelativeSizeAxes = Axes.X,
                Origin           = Anchor.Centre,
                Anchor           = Anchor.Centre,
                Children         = new Drawable[]
                {
                    channelTabControl = new TestTabControl
                    {
                        RelativeSizeAxes = Axes.X,
                        Origin           = Anchor.Centre,
                        Anchor           = Anchor.Centre,
                        Height           = 50
                    },
                    new Box
                    {
                        Colour           = Color4.Black.Opacity(0.1f),
                        RelativeSizeAxes = Axes.X,
                        Height           = 50,
                        Depth            = -1,
                        Origin           = Anchor.Centre,
                        Anchor           = Anchor.Centre,
                    }
                }
            });

            Add(new Container
            {
                Origin   = Anchor.TopLeft,
                Anchor   = Anchor.TopLeft,
                Children = new Drawable[]
                {
                    currentText = new OsuSpriteText
                    {
                        Text = "Currently selected channel:"
                    }
                }
            });

            channelTabControl.OnRequestLeave       += channel => channelTabControl.RemoveChannel(channel);
            channelTabControl.Current.ValueChanged += channel => currentText.Text = "Currently selected channel: " + channel.NewValue;

            AddStep("Add random private channel", addRandomPrivateChannel);
            AddAssert("There is only one channels", () => channelTabControl.Items.Count == 2);
            AddRepeatStep("Add 3 random private channels", addRandomPrivateChannel, 3);
            AddAssert("There are four channels", () => channelTabControl.Items.Count == 5);
            AddStep("Add random public channel", () => addChannel(RNG.Next().ToString()));

            AddRepeatStep("Select a random channel", () =>
            {
                List <Channel> validChannels = channelTabControl.Items.Where(c => !(c is ChannelSelectorTabItem.ChannelSelectorTabChannel)).ToList();
                channelTabControl.SelectChannel(validChannels[RNG.Next(0, validChannels.Count)]);
            }, 20);

            Channel channelBefore = null;

            AddStep("set first channel", () => channelTabControl.SelectChannel(channelBefore = channelTabControl.Items.First(c => !(c is ChannelSelectorTabItem.ChannelSelectorTabChannel))));

            AddStep("select selector tab", () => channelTabControl.SelectChannel(channelTabControl.Items.Single(c => c is ChannelSelectorTabItem.ChannelSelectorTabChannel)));
            AddAssert("selector tab is active", () => channelTabControl.ChannelSelectorActive.Value);

            AddAssert("check channel unchanged", () => channelBefore == channelTabControl.Current.Value);

            AddStep("set second channel", () => channelTabControl.SelectChannel(channelTabControl.Items.GetNext(channelBefore)));
            AddAssert("selector tab is inactive", () => !channelTabControl.ChannelSelectorActive.Value);

            AddUntilStep("remove all channels", () =>
            {
                foreach (var item in channelTabControl.Items.ToList())
                {
                    if (item is ChannelSelectorTabItem.ChannelSelectorTabChannel)
                    {
                        continue;
                    }

                    channelTabControl.RemoveChannel(item);
                    return(false);
                }

                return(true);
            });

            AddAssert("selector tab is active", () => channelTabControl.ChannelSelectorActive.Value);
        }
Ejemplo n.º 45
0
		public static char SelectFromRanges(string rangeString, RNG rng)
		{
			if (String.IsNullOrEmpty(rangeString)) return '?';
			var list = new List<_<char, char, int>>(); // <min, max, weight>
			var chars = rangeString.GetEnumerator();
			char a, b;
			bool stall = false;
			while (stall || chars.MoveNext())
			{
				stall = false;
				if (Char.IsWhiteSpace(chars.Current)) continue;
				if (!Char.IsLetterOrDigit(a = chars.Current)) return '?';

				if (!chars.MoveNext())
				{
					list.Add(_.Create(a, a, 1));
					break;
				}

				if (chars.Current == '-')
				{
					if (!chars.MoveNext()) return '?';
					if (!Char.IsLetterOrDigit(b = chars.Current)) return '?';
					if (Char.IsLetter(a) != Char.IsLetter(b) || Char.IsUpper(a) != Char.IsUpper(b)) return '?';
					list.Add(_.Create(a < b ? a : b, a > b ? a : b, Math.Abs(b - a) + 1));
					continue;
				}

				list.Add(_.Create(a, a, 1));

				stall = true;
			}

			if (!list.Any()) return '?';

			int wSelect = rng.Next(0, list.Sum(r => r.Item3)) + 1;
			var ranges = list.GetEnumerator();
			while (ranges.MoveNext())
			{
				if (wSelect > ranges.Current.Item3)
				{
					wSelect -= ranges.Current.Item3;
				}
				else
				{
					break;
				}
			}
			return Convert.ToChar(rng.Next(ranges.Current.Item1, ranges.Current.Item2 + 1));
		}