当前位置: 首页>>代码示例>>C#>>正文


C# Dice.rollInRange方法代码示例

本文整理汇总了C#中Dice.rollInRange方法的典型用法代码示例。如果您正苦于以下问题:C# Dice.rollInRange方法的具体用法?C# Dice.rollInRange怎么用?C# Dice.rollInRange使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Dice的用法示例。


在下文中一共展示了Dice.rollInRange方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: generateAStar

        /// <summary>
        /// This function fills in the details of the star.
        /// </summary>
        /// <param name="s">The star to be filled in</param>
        /// <param name="ourDice">The dice object used</param>
        /// <param name="maxMass">Max mass of the system</param>
        /// <param name="sysName">The name of the system</param>
        public static void generateAStar(Star s, Dice ourDice, double maxMass, string sysName)
        {
            //check mass first - if unset, set it.
            if (s.currMass == 0)
            {
                if (s.orderID == Star.IS_PRIMARY)
                {
                    s.updateMass(libStarGen.rollStellarMass(ourDice, s.orderID));
                    maxMass = s.currMass;
                }

                else
                    s.updateMass(libStarGen.rollStellarMass(ourDice, s.orderID, maxMass));
            }

            //if we are in the white dwarf branch, reroll mass.
            if (s.evoLine.findCurrentAgeGroup(s.starAge) == StarAgeLine.RET_COLLASPEDSTAR)
                s.updateMass(ourDice.rollInRange(0.9, 1.4),true);

            //set the generic name
            s.name = Star.genGenericName(sysName, s.orderID);

            //initalize the luminosity first, then update it given the current age, status and mass.
            s.setLumin();
            s.currLumin = Star.getCurrLumin(s.evoLine, s.starAge, s.currMass);

            //determine the temperature
            s.effTemp = Star.getInitTemp(s.currMass);
            s.effTemp = Star.getCurrentTemp(s.evoLine, s.currLumin, s.starAge, s.currMass, ourDice);

            //DERIVED STATS: RADIUS, Spectral Type
            s.radius = Star.getRadius(s.currMass, s.effTemp, s.currLumin, s.evoLine.findCurrentAgeGroup(s.starAge));
            s.setSpectralType();
            s.starColor = Star.setColor(ourDice, s.effTemp);

            //set flare status.
            libStarGen.setFlareStatus(s, ourDice);

               //end this here. We will hand orbital mechanics elsewhere.
        }
开发者ID:KoihimeNakamura,项目名称:CelestialNavigation,代码行数:47,代码来源:libStarGen.cs

示例2: rollStellarMass

        /// <summary>
        /// This function rolls for mass on a star.
        /// </summary>
        /// <param name="velvetBag">The dice object</param>
        /// <param name="orderID">The order ID of the star</param>
        /// <param name="maxMass">the maximum mass. Has a default value of 0.0, indicating no max mass (may be left out)</param>
        /// <returns>The rolled mass of a star</returns>
        public static double rollStellarMass(Dice velvetBag, int orderID, double maxMass = 0.0)
        {
            int rollA, rollB; //roll integers
            double tmpRoll; //test value.

            if (maxMass == 0.0)
            {
                if (!OptionCont.stellarMassRangeSet)
                {
                    if (orderID == Star.IS_PRIMARY && OptionCont.forceGardenFavorable)
                    {
                        rollA = velvetBag.rng(6);
                        if (rollA == 1) rollA = 5;
                        if (rollA == 2) rollA = 6;
                        if (rollA == 3 || rollA == 4) rollA = 7;
                        if (rollA == 5 || rollA == 6) rollA = 8;

                        return Star.getMassByRoll(rollA, velvetBag.gurpsRoll());
                    }
                    else
                    {
                        return Star.getMassByRoll(velvetBag.gurpsRoll(), velvetBag.gurpsRoll());
                    }
                }
                else
                {
                    return velvetBag.rollInRange(OptionCont.minStellarMass, OptionCont.maxStellarMass);
                }
            }

            else
            {
                int currPos = Star.getStellarMassPos(maxMass);

                //error bound checking. The entire program is kinda predicated aroudn the idea you won't have this happen.
                //IF IT DOES, then do the simple method.
                if (currPos == -1)
                {
                    do
                    {
                        tmpRoll = Star.getMassByRoll(velvetBag.gurpsRoll(), velvetBag.gurpsRoll());
                    } while (tmpRoll > maxMass);

                    return tmpRoll;
                }

                //else, roll for the new index.
                rollA = velvetBag.gurpsRoll();
                rollB = velvetBag.rng(rollA, 6);

                //get the new index
                if (currPos - rollB <= 0) currPos = 0;
                else currPos = currPos - rollB;

                return Star.getMassByIndex(currPos);
            }
        }
开发者ID:KoihimeNakamura,项目名称:CelestialNavigation,代码行数:64,代码来源:libStarGen.cs


注:本文中的Dice.rollInRange方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。