コード例 #1
0
    void Start()
    {
        //instance = this;
        if (randomizeSeedOnStart)
        {
            seed = Random.Range(0, int.MaxValue);
        }

        random = new DRandom();
        random.Init(seed);

        if (randomizeRoomSize)
        {
            targetRooms = 30 + (int)(random.value() * 50f);
        }
        Debug.Log(targetRooms);

        roomsCount   = 0;
        globalVoxels = new Dictionary <Vector3, GameObject>();
        dungeonSet   = random.range(0, data.sets.Count - 1);
        //Debug.Log("Generating dungeon with data:");
        //Debug.Log("Rooms count: " + targetRooms);
        //Debug.Log("Using set: " + data.sets[dungeonSet].name);

        StartGeneration();
    }
コード例 #2
0
    void Start()
    {
        //instance = this;
        if (randomizeSeedOnStart)
        {
            seed = Random.Range(0, int.MaxValue);
        }

        random = new DRandom();
        random.Init(seed);

        if (randomizeRoomSize)
        {
            targetRooms = 15 + (int)(random.value() * 50f);
        }

        roomsCount   = 0;
        globalVoxels = new Dictionary <Vector3, GameObject>();
        dungeonSet   = random.range(0, data.sets.Count - 1);
        //Debug.Log("Generating dungeon with data:");
        //Debug.Log("Rooms count: " + targetRooms);
        //Debug.Log("Using set: " + data.sets[dungeonSet].name);

        try
        {
            StartCoroutine(StartGeneration());
        }
        catch (Exception e)
        {
            Console.WriteLine(e);
            throw;
        }

        Debug.Log("Generated in: " + stopwatch.ElapsedMilliseconds + "ms");
    }
コード例 #3
0
    private void Start()
    {
        random = new DRandom();
        random.Init(Random.Range(0, int.MaxValue));

        PositionOnFloor();
    }
コード例 #4
0
 public VisualRow(NewVipAvtoSet.NormativesRow norma, DRandom random)
 {
     Id = norma.Tag;
     _minval = norma.MinValue;
     _maxval = norma.MaxValue;
     _random = random;
 }
コード例 #5
0
    public CandidatesManager(ElementsFactory factoryOwner, ZonesGenerator zonesGenerator)
    {
        this.factoryOwner   = factoryOwner;
        this.zonesGenerator = zonesGenerator;

        random = new DRandom();
        random.Init(factoryOwner.Seed);
    }
コード例 #6
0
 public GeneratorDoor GetRandomDoor(DRandom random)
 {
     doors.Shuffle(random.random);
     for (int i = 0; i < doors.Count; i++)
     {
         if (doors[i].open)
         {
             return(doors[i]);
         }
     }
     Debug.LogError("Room::GetRandomDoor() - No open doors...");
     return(null);
 }
コード例 #7
0
    public ConnPoint GetRandomOpenConnPoint(DRandom random)
    {
        connPoints.Shuffle(random.random);

        int connPointsCount = connPoints.Count;

        for (int i = 0; i < connPointsCount; i++)
        {
            if (connPoints[i].open)
            {
                return(connPoints[i]);
            }
        }

        Debug.Log("Room::GetRandomOpenConnPoint() - No open connection points.");
        return(null);
    }
コード例 #8
0
ファイル: Diesel.cs プロジェクト: natashalysakova/Protocol
        public Diesel(string compName, string gosNumb, string vend, int numb, DateTime dogov, double maxval, DateTime vypiska)
            : base(compName, gosNumb, vend, numb, dogov, maxval, vypiska)
        {
            values = new double[6, 2];
            maxValueMeters = (-1.0 / 0.43) * Math.Log(1.0 - (maxValue / 100.0));

            DRandom r = new DRandom();

            do
            {
                avgValue = 0;
                values[0, 1] = Math.Round(r.NextDouble(maxValue*0.25, maxValue - 4));
                values[0, 0] = Math.Round((-1.0 / 0.43) * Math.Log(1.0 - (values[0, 1] / 100.0)), 3);

                for (int i = 1; i < values.GetLength(0); i++)
                {
                    values[i, 1] = Math.Round(r.NextDouble(values[0, 1] - 7, values[0, 1] + 7));
                    Thread.Sleep(2);
                    values[i, 0] = Math.Round((-1.0 / 0.43) * Math.Log(1.0 - (values[i, 1] / 100.0)), 3);
                }

                for (int i = 0; i < values.GetLength(0); i++)
                {
                    avgValue += values[i, 1];
                    avgValueMeters += values[i, 0];
                }

                avgValue /= 6;
                avgValueMeters /= 6;

            } while (avgValue > maxValue);

            avgValue = Math.Round(avgValue, 3);
            maxValueMeters = Math.Round(maxValueMeters, 2);
            avgValueMeters = Math.Round(avgValueMeters, 3);
        }
コード例 #9
0
 public Element[] GetAllClosingElementsShuffled(DRandom random)
 {
     closingElements.Shuffle(random.random);
     return(closingElements.ToArray());
 }
コード例 #10
0
 public Element[] GetAllTwoWayOpenElementsShuffled(DRandom random)
 {
     openTwoWayElements.Shuffle(random.random);
     return(openTwoWayElements.ToArray());
 }
コード例 #11
0
    // MOAR REFACTOR!! GENERILIZE! GENERILIZE!

    public Element[] GetAllHallwayElementsShuffled(DRandom random)
    {
        hallwayElements.Shuffle(random.random);
        return(hallwayElements.ToArray());
    }
コード例 #12
0
        public RewardInfo RandomReward(Player player, int randomId, string reason)
        {
            DRandom    di = _drandoms[randomId];
            RewardInfo ri = new RewardInfo();

            ri.items = new List <RewardItem>();
            ri.res   = new List <ResInfo>();
            if (di.weight.Object.Length <= 0)//必掉
            {
                if (di.gid.Object.Length > 0)
                {
                    for (int i = 0; i < di.gid.Object.Length; i++)
                    {
                        PlayerItem item = this.AddItem(player, di.gid.Object[i], di.count.Object[i], reason);
                        DItem      d    = _ditems[di.gid.Object[i]];
                        RewardItem rii  = new RewardItem();
                        rii.count   = di.count.Object[i];
                        rii.icon    = d.icon;
                        rii.id      = di.gid.Object[i];
                        rii.name    = d.name;
                        rii.quality = d.quality;
                        rii.type    = d.type;
                        ri.items.Add(rii);
                    }
                }
                if (di.res_type.Object.Length > 0)
                {
                    for (int i = 0; i < di.res_type.Object.Length; i++)
                    {
                        //Support su = Spring.bean(PlayerService.class).getSupport(pid);
                        var playerController = Server.GetController <PlayerController>();
                        playerController.AddCurrency(player, di.res_type.Object[i], di.res_count.Object[i], reason);
                        ResInfo res = new ResInfo()
                        {
                            type  = di.res_type.Object[i],
                            count = di.res_count.Object[i]
                        };
                        ri.res.Add(res);
                    }
                }
            }
            else//随机一个
            {
                int index = MathUtil.RandomIndex(di.weight.Object);
                if (di.gid.Object.Length > 0)
                {
                    //约定,如果随机的话,随机到小于等于0的id就是没随到东西
                    int itemId = di.gid.Object[index];
                    if (itemId > 0)
                    {
                        PlayerItem item = this.AddItem(player, di.gid.Object[index], di.count.Object[index], reason);
                        DItem      d    = _ditems[di.gid.Object[index]];
                        RewardItem rii  = new RewardItem();
                        rii.count   = di.count.Object[index];
                        rii.icon    = d.icon;
                        rii.id      = di.gid.Object[index];
                        rii.name    = d.name;
                        rii.quality = d.quality;
                        rii.type    = d.type;
                        ri.items.Add(rii);
                    }
                }
                else if (di.res_type.Object.Length > 0)
                {
                    //约定,如果随机的话,随机到小于等于0的id就是没随到东西
                    int resType = di.res_type.Object[index];
                    if (resType > 0)
                    {
                        var playerController = Server.GetController <PlayerController>();
                        playerController.AddCurrency(player, di.res_type.Object[index], di.res_count.Object[index], reason);

                        ResInfo res = new ResInfo()
                        {
                            type  = di.res_type.Object[index],
                            count = di.res_count.Object[index]
                        };
                        ri.res.Add(res);
                    }
                }
            }
            return(ri);
        }