コード例 #1
0
    /// <summary>
    /// Returns a random object pooler based on the given potential spawn data.
    /// </summary>
    /// <param name="potentialSpawnsDataArg"></param>
    /// <returns></returns>
    private NetworkObjectPooler GetRandomObjectPooler(
        List <SerializableDataFloatAndObjectPoolerContentType> potentialSpawnsDataArg)
    {
        // initialize tuple list as empty list
        List <(float, ObjectPoolerContentType)> tupleList = new List <(float, ObjectPoolerContentType)>();

        // loop through all potential spawns
        foreach (SerializableDataFloatAndObjectPoolerContentType iterData in potentialSpawnsDataArg)
        {
            // add potential spawn data as tuple to tuple list
            tupleList.Add((iterData.value1, iterData.value2));
        }

        // get random object pooler based on spawn chance
        ObjectPoolerContentType objPoolerContent = GeneralMethods.
                                                   GetRandomEntryFromChanceToValueCouple(RollChancePickType.TargetRarest, tupleList);

        // inittialize return pooler as NULL
        NetworkObjectPooler objPooler = null;

        // if actually got a non-default value from the random entries
        if (objPoolerContent != ObjectPoolerContentType.None)
        {
            // set object pooler to associated pooler reference
            objPooler = _gameManager.SpawnManager.GetNetworkObjectPooler(objPoolerContent);
        }

        // return the retreived pooler
        return(objPooler);
    }
コード例 #2
0
    public NetworkObjectPooler GetNetworkObjectPooler(ObjectPoolerContentType
                                                      poolerContentArg)
    {
        SerializableDataObjectPoolerContentTypeAndNetworkObjectPooler match =
            netObjectPoolers.FirstOrDefault(iterData => iterData.value1 == poolerContentArg);

        if (match != null)
        {
            return(match.value2);
        }
        else
        {
            return(null);
        }
    }
コード例 #3
0
 private void Setup(SerializableDataObjectPoolerContentTypeAndNetworkObjectPooler templateArg)
 {
     value1 = templateArg.value1;
     value2 = templateArg.value2;
 }
コード例 #4
0
 private void Setup(ObjectPoolerContentType value1Arg, NetworkObjectPooler value2Arg)
 {
     value1 = value1Arg;
     value2 = value2Arg;
 }
コード例 #5
0
 private void Setup()
 {
     value1 = ObjectPoolerContentType.None;
     value2 = null;
 }
コード例 #6
0
 public SerializableDataObjectPoolerContentTypeAndNetworkObjectPooler(
     ObjectPoolerContentType value1Arg, NetworkObjectPooler value2Arg)
 {
     Setup(value1Arg, value2Arg);
 }
コード例 #7
0
 private void Setup(SerializableDataFloatAndObjectPoolerContentType templateArg)
 {
     value1 = templateArg.value1;
     value2 = templateArg.value2;
 }
コード例 #8
0
 private void Setup(float value1Arg, ObjectPoolerContentType value2Arg)
 {
     value1 = value1Arg;
     value2 = value2Arg;
 }
コード例 #9
0
 private void Setup()
 {
     value1 = 0f;
     value2 = ObjectPoolerContentType.None;
 }
コード例 #10
0
 public SerializableDataFloatAndObjectPoolerContentType(float value1Arg,
                                                        ObjectPoolerContentType value2Arg)
 {
     Setup(value1Arg, value2Arg);
 }