public ShaderVariant(Shader shader, PassType passType, params string[] keywords)
			{
				this.shader = shader;
				this.passType = passType;
				this.keywords = keywords;
				ShaderVariantCollection.ShaderVariant.Internal_CheckVariant(shader, passType, keywords);
			}
        public FilterButterworth2(double frequency = 5, int sampleRate = 100, PassType passType = PassType.Lowpass, double resonance = 1.4142135623730950488016887242097)
        {
            this.resonance = resonance;
            this.frequency = frequency;
            this.sampleRate = sampleRate;
            this.passType = passType;

            switch (passType)
            {
                case PassType.Lowpass:
                    c = 1.0f / (double)Math.Tan(Math.PI * frequency / sampleRate);
                    a1 = 1.0f / (1.0f + resonance * c + c * c);
                    a2 = 2f * a1;
                    a3 = a1;
                    b1 = 2.0f * (1.0f - c * c) * a1;
                    b2 = (1.0f - resonance * c + c * c) * a1;
                    break;
                case PassType.Highpass:
                    c = (double)Math.Tan(Math.PI * frequency / sampleRate);
                    a1 = 1.0f / (1.0f + resonance * c + c * c);
                    a2 = -2f * a1;
                    a3 = a1;
                    b1 = 2.0f * (c * c - 1.0f) * a1;
                    b2 = (1.0f - resonance * c + c * c) * a1;
                    break;
            }
        }
        /// <summary>
        /// Sets only the sides defined as passable for the given pass type.
        /// </summary>
        public void AllowPassableAtSetSides(PassType passType)
        {
            switch (passType)
            {
            case PassType.Entering:
                isEnterableOnAll = false;
                Passable         = true;
                break;

            case PassType.Leaving:
                isLeavableOnAll = false;
                Passable        = true;
                break;

            case PassType.Atmospheric:
                isAtmosPassableOnAll = false;
                AtmosPassable        = true;
                break;

            default:
                Logger.LogWarning("Unknown DirectionalPassable PassType. Doing nothing.", Category.Direction);
                break;
            }
        }
示例#4
0
 public DeltaQuery(PassType mode, object str, PassCategory cat, Color cfg) : this(mode, str, cat, new TextStyle(cfg))
 {
 }
示例#5
0
 private bool ContainsInternal(Shader shader, PassType passType, string[] keywords);
示例#6
0
 private static extern void Internal_CheckVariant(Shader shader, PassType passType, string[] keywords);
示例#7
0
 private bool ContainsInternal(Shader shader, PassType passType, string[] keywords)
 {
     throw new NotImplementedException("なにこれ");
 }
示例#8
0
 public void Add(string Key, PassType t, object s, PassCategory c, Color c_fg)
 {
     Add(Key, new QueryCriteria(t, s, c, c_fg));
 }
示例#9
0
 public void Add(string Key, PassType t, object s)
 {
     Add(Key, t, s, PassCategory.DefaultRange);
 }
示例#10
0
		/**
		 * Creates the DTW object and sets signal feature object.
		 *
		 * @param signal feature extractor object
		 */
		public Dtw(Extractor signal)
		{
			from = signal;
			points = new DtwPoint[signal.GetFramesCount()][];
			distanceFn = new distanceFunction(Functions.euclideanDistance);
			passType = PassType.Neighbors;
		}
示例#11
0
        public DynamicTexture Construct(Entity entity, Vector3 position, Vector3 lookAt, int width, int height, string label, PassType type = PassType.Opaque)
        {
            var pipeline = new RenderPipeline(this.Device, new NullMeterRegistry());

            var gBuffer   = new GBuffer(this.Device, width, height);
            var viewPoint = new PerspectiveCamera(gBuffer.AspectRatio);

            viewPoint.Move(position, lookAt);
            var pass = new Pass(type, 0);

            var dynamicTexture = new DynamicTexture(entity, pipeline, viewPoint, gBuffer, pass, label);

            this.Container.Add(dynamicTexture);

            return(dynamicTexture);
        }
示例#12
0
 public PassBuffer(PassType type, int length)
 {
     this.elementType = type;
     this.array       = new byte[type.ByteSize() * length];
 }
示例#13
0
 public Pass(PassType type, int iteration)
 {
     this.Type      = type;
     this.Iteration = iteration;
 }
示例#14
0
        /// <summary>
        /// Find fragments in the specified triangle.
        /// </summary>
        /// <param name="fragCoord0"></param>
        /// <param name="fragCoord1"></param>
        /// <param name="fragCoord2"></param>
        /// <param name="pointers"></param>
        /// <param name="group"></param>
        /// <param name="passBuffers"></param>
        /// <param name="result"></param>
        unsafe private static void FindFragmentsInTriangle(vec3 fragCoord0, vec3 fragCoord1, vec3 fragCoord2, void *[] pointers, LinearInterpolationInfoGroup group, PassBuffer[] passBuffers, List <Fragment> result)
        {
            int attributeCount = passBuffers.Length - 1;
            var pixelList      = new List <vec3>();

            FindPixelsAtTriangle(fragCoord0, fragCoord1, fragCoord2, pixelList);
            //OnSamePlane(fragCoord0, fragCoord1, fragCoord2, pixelList);
            for (int i = 0; i < pixelList.Count; i++) // for each pixel at this line..
            {
                vec3  pixel = pixelList[i];
                var   fragment = new Fragment(pixel, attributeCount);
                float p0, p1, p2;
                LinearInterpolationTriangle(pixel, fragCoord0, fragCoord1, fragCoord2, out p0, out p1, out p2);
                for (int t = 0; t < attributeCount; t++) // new pass-buffer objects.
                {
                    PassType passType = passBuffers[t + 1].elementType;
                    fragment.attributes[t] = new PassBuffer(passType, 1);        // only one element.
                }
                for (int attrIndex = 0; attrIndex < attributeCount; attrIndex++) // fill data in pass-buffer.
                {
                    PassBuffer attribute         = fragment.attributes[attrIndex];
                    void *     fragmentAttribute = attribute.Mapbuffer().ToPointer();
                    switch (attribute.elementType)
                    {
                    case PassType.Float:
                    {
                        var fAttr = (float *)fragmentAttribute; var array = (float *)pointers[attrIndex];
                        fAttr[0] = array[group.array[0].gl_VertexID] * p0 + array[group.array[1].gl_VertexID] * p1 + array[group.array[2].gl_VertexID] * p2;
                    } break;

                    case PassType.Vec2:
                    {
                        var fAttr = (vec2 *)fragmentAttribute; var array = (vec2 *)pointers[attrIndex];
                        fAttr[0] = array[group.array[0].gl_VertexID] * p0 + array[group.array[1].gl_VertexID] * p1 + array[group.array[2].gl_VertexID] * p2;
                    } break;

                    case PassType.Vec3:
                    {
                        var fAttr = (vec3 *)fragmentAttribute; var array = (vec3 *)pointers[attrIndex];
                        fAttr[0] = array[group.array[0].gl_VertexID] * p0 + array[group.array[1].gl_VertexID] * p1 + array[group.array[2].gl_VertexID] * p2;
                    } break;

                    case PassType.Vec4:
                    {
                        var fAttr = (vec4 *)fragmentAttribute; var array = (vec4 *)pointers[attrIndex];
                        fAttr[0] = array[group.array[0].gl_VertexID] * p0 + array[group.array[1].gl_VertexID] * p1 + array[group.array[2].gl_VertexID] * p2;
                    } break;

                    case PassType.Mat2:
                    {
                        var fAttr = (mat2 *)fragmentAttribute; var array = (mat2 *)pointers[attrIndex];
                        fAttr[0] = array[group.array[0].gl_VertexID] * p0 + array[group.array[1].gl_VertexID] * p1 + array[group.array[2].gl_VertexID] * p2;
                    } break;

                    case PassType.Mat3:
                    {
                        var fAttr = (mat3 *)fragmentAttribute; var array = (mat3 *)pointers[attrIndex];
                        fAttr[0] = array[group.array[0].gl_VertexID] * p0 + array[group.array[1].gl_VertexID] * p1 + array[group.array[2].gl_VertexID] * p2;
                    } break;

                    case PassType.Mat4:
                    {
                        var fAttr = (mat4 *)fragmentAttribute; var array = (mat4 *)pointers[attrIndex];
                        fAttr[0] = array[group.array[0].gl_VertexID] * p0 + array[group.array[1].gl_VertexID] * p1 + array[group.array[2].gl_VertexID] * p2;
                    } break;

                    default:
                        throw new NotDealWithNewEnumItemException(typeof(PassType));
                    }
                    attribute.Unmapbuffer();
                }
                result.Add(fragment);
            }
        }
        /// <summary>
        /// 收集passtype-keyword
        /// </summary>
        /// <param name="passType"></param>
        /// <param name="material"></param>
        ShaderVariantCollection.ShaderVariant AddVariantOfPassTypeToCollection(PassType passType, Material material)
        {
            var shader             = material.shader;
            var keywords           = new List <string>();
            var shaderAllkeyworlds = GetShaderAllKeyworlds(shader);

            //Fog
            if (shaderAllkeyworlds.Contains("FOG_LINEAR") || shaderAllkeyworlds.Contains("FOG_EXP") || shaderAllkeyworlds.Contains("FOG_EXP2"))
            {
                if (RenderSettings.fog)
                {
                    switch (RenderSettings.fogMode)
                    {
                    case FogMode.Linear:
                        keywords.Add("FOG_LINEAR");
                        break;

                    case FogMode.Exponential:
                        keywords.Add("FOG_EXP");
                        break;

                    case FogMode.ExponentialSquared:
                        keywords.Add("FOG_EXP2");
                        break;

                    default:
                    {
                        break;
                    }
                    }
                }
            }

            //Instancing
            if (material.enableInstancing)
            {
                keywords.Add("INSTANCING_ON");
            }

            //添加mat中的keyword
            foreach (var key in material.shaderKeywords)
            {
                keywords.Add(key);
            }

            //打开的global keyword
            foreach (var key in ForceEnabledGlobalKeywords)
            {
                if (shaderAllkeyworlds.Contains(key) /*&& Shader.IsKeywordEnabled(key)*/)
                {
                    keywords.Add(key);
                }
            }

            //关闭的global keyword
            foreach (var key in ForceDisabledGlobalKeywords)
            {
                keywords.Remove(key);
            }

            return(CreateVariant(shader, passType, keywords.ToArray()));
        }
 private bool AddInternal(Shader shader, PassType passType, string[] keywords);
            public string[] keywords;         // 0x10

            // Constructors
            public ShaderVariant(Shader shader, PassType passType, params /* 0x00000001800D4E50-0x00000001800D4E60 */ string[] keywords)
            {
                this.shader   = default;
                this.passType = default;
                this.keywords = default;
            }             // 0x0000000180035770-0x00000001800357E0
示例#18
0
        private unsafe PassBuffer[] VertexShaderStage(int count, DrawElementsType type, IntPtr indices, VertexArrayObject vao, ShaderProgram program, GLBuffer indexBuffer)
        {
            PassBuffer[] passBuffers = null;
            VertexShader vs          = program.VertexShader; if (vs == null)

            {
                return(passBuffers);
            }

            // init pass-buffers to record output from vertex shader.
            FieldInfo[] outFieldInfos = (from item in vs.outVariableDict select item.Value.fieldInfo).ToArray();
            uint        vertexCount   = GetVertexCount(vao, indexBuffer, type);

            //int vertexSize = GetVertexSize(outFieldInfos);
            passBuffers = new PassBuffer[1 + outFieldInfos.Length];
            void *[] pointers = new void *[1 + outFieldInfos.Length];
            {
                // the first pass-buffer stores gl_Position.
                var passBuffer = new PassBuffer(PassType.Vec4, (int)vertexCount);
                pointers[0]    = (void *)passBuffer.Mapbuffer();
                passBuffers[0] = passBuffer;
            }
            for (int i = 1; i < passBuffers.Length; i++)
            {
                var      outField   = outFieldInfos[i - 1];
                PassType passType   = outField.FieldType.GetPassType();
                var      passBuffer = new PassBuffer(passType, (int)vertexCount);
                pointers[i]    = (void *)passBuffer.Mapbuffer();
                passBuffers[i] = passBuffer;
            }

            // execute vertex shader for each vertex.
            byte[]   indexData       = indexBuffer.Data;
            int      indexLength     = indexData.Length / ByteLength(type);
            GCHandle pin             = GCHandle.Alloc(indexData, GCHandleType.Pinned);
            IntPtr   pointer         = pin.AddrOfPinnedObject();
            var      gl_VertexIDList = new List <uint>();

            for (int indexID = indices.ToInt32() / ByteLength(type), c = 0; c < count && indexID < indexLength; indexID++, c++)
            {
                uint gl_VertexID = GetVertexID(pointer, type, indexID);
                if (gl_VertexIDList.Contains(gl_VertexID))
                {
                    continue;
                }
                else
                {
                    gl_VertexIDList.Add(gl_VertexID);
                }

                var instance = vs.CreateCodeInstance() as VertexCodeBase; // an executable vertex shader.
                instance.gl_VertexID = (int)gl_VertexID;                  // setup gl_VertexID.
                // setup "in SomeType varName;" vertex attributes.
                Dictionary <uint, VertexAttribDesc> locVertexAttribDict = vao.LocVertexAttribDict;
                foreach (InVariable inVar in vs.inVariableDict.Values) // Dictionary<string, InVariable>.Values
                {
                    VertexAttribDesc desc = null;
                    if (locVertexAttribDict.TryGetValue(inVar.location, out desc))
                    {
                        byte[]           dataStore        = desc.vbo.Data;
                        int              byteIndex        = desc.GetDataIndex(gl_VertexID);
                        VertexAttribType vertexAttribType = (VertexAttribType)desc.dataType;
                        object           value            = dataStore.ToStruct(inVar.fieldInfo.FieldType, byteIndex);
                        inVar.fieldInfo.SetValue(instance, value);
                    }
                }
                // setup "uniform SomeType varName;" in vertex shader.
                Dictionary <string, UniformValue> nameUniformDict = program.nameUniformDict;
                foreach (UniformVariable uniformVar in vs.UniformVariableDict.Values)
                {
                    string       name = uniformVar.fieldInfo.Name;
                    UniformValue obj  = null;
                    if (nameUniformDict.TryGetValue(name, out obj))
                    {
                        if (obj.value != null)
                        {
                            uniformVar.fieldInfo.SetValue(instance, obj.value);
                        }
                    }
                }

                instance.main(); // execute vertex shader code.

                // copy data to pass-buffer.
                {
                    PassBuffer passBuffer = passBuffers[0];
                    var        array      = (vec4 *)pointers[0];
                    array[gl_VertexID] = instance.gl_Position;
                }
                for (int i = 1; i < passBuffers.Length; i++)
                {
                    var outField = outFieldInfos[i - 1];
                    var obj      = outField.GetValue(instance);
                    switch (outField.FieldType.GetPassType())
                    {
                    case PassType.Float: { var array = (float *)pointers[i]; array[gl_VertexID] = (float)obj; } break;

                    case PassType.Vec2: { var array = (vec2 *)pointers[i]; array[gl_VertexID] = (vec2)obj; } break;

                    case PassType.Vec3: { var array = (vec3 *)pointers[i]; array[gl_VertexID] = (vec3)obj; } break;

                    case PassType.Vec4: { var array = (vec4 *)pointers[i]; array[gl_VertexID] = (vec4)obj; } break;

                    case PassType.Mat2: { var array = (mat2 *)pointers[i]; array[gl_VertexID] = (mat2)obj; } break;

                    case PassType.Mat3: { var array = (mat3 *)pointers[i]; array[gl_VertexID] = (mat3)obj; } break;

                    case PassType.Mat4: { var array = (mat4 *)pointers[i]; array[gl_VertexID] = (mat4)obj; } break;

                    default:
                        throw new NotImplementedException();
                    }
                    // a general way to do this:
                    //var obj = outField.GetValue(instance);
                    //byte[] bytes = obj.ToBytes();
                    //PassBuffer passBuffer = passBuffers[i];
                    //var array = (byte*)passBuffer.AddrOfPinnedObject();
                    //for (int t = 0; t < bytes.Length; t++)
                    //{
                    //    array[gl_VertexID * vertexSize + t] = bytes[t];
                    //}
                }
            }
            pin.Free();

            for (int i = 0; i < passBuffers.Length; i++)
            {
                passBuffers[i].Unmapbuffer();
            }

            return(passBuffers);
        }
 private extern bool AddInternal(Shader shader, PassType passType, string[] keywords);
示例#20
0
 public ImagePass(RenderTexture tex, PassType type)
 {
     Texture = tex;
     Type    = type;
 }
示例#21
0
        public int GetFreeCharacterPassId(PassType passType)
        {
            switch (passType)
            {
            case PassType.Developer:
                using (MySqlConnection connection = new MySqlConnection(ConnectionString))
                {
                    connection.Open();
                    using (MySqlCommand command = new MySqlCommand(SelectMaxDevPassIdSql, connection))
                    {
                        using (MySqlDataReader reader = command.ExecuteReader())
                        {
                            if (reader.Read())
                            {
                                if (reader.IsDBNull(0))
                                {
                                    return(1);
                                }
                                else
                                {
                                    return(reader.GetInt32(0) + 1);
                                }
                            }
                        }
                    }
                }
                break;

            case PassType.Admin:
                using (MySqlConnection connection = new MySqlConnection(ConnectionString))
                {
                    connection.Open();
                    using (MySqlCommand command = new MySqlCommand(SelectMaxAdminPassId, connection))
                    {
                        using (MySqlDataReader reader = command.ExecuteReader())
                        {
                            if (reader.Read())
                            {
                                if (reader.IsDBNull(0))
                                {
                                    return(1);
                                }
                                else
                                {
                                    return(reader.GetInt32(0) + 1);
                                }
                            }
                        }
                    }
                }
                break;

            case PassType.Media:
                using (MySqlConnection connection = new MySqlConnection(ConnectionString))
                {
                    connection.Open();
                    using (MySqlCommand command = new MySqlCommand(SelectMaxMediaPassId, connection))
                    {
                        using (MySqlDataReader reader = command.ExecuteReader())
                        {
                            if (reader.Read())
                            {
                                if (reader.IsDBNull(0))
                                {
                                    return(1);
                                }
                                else
                                {
                                    return(reader.GetInt32(0) + 1);
                                }
                            }
                        }
                    }
                }
                break;

            case PassType.Regular:
                using (MySqlConnection connection = new MySqlConnection(ConnectionString))
                {
                    connection.Open();
                    using (MySqlCommand command = new MySqlCommand(SelectMaxRegularPassId, connection))
                    {
                        using (MySqlDataReader reader = command.ExecuteReader())
                        {
                            if (reader.Read())
                            {
                                if (reader.IsDBNull(0))
                                {
                                    return(1);
                                }
                                else
                                {
                                    return(reader.GetInt32(0) + 1);
                                }
                            }
                        }
                    }
                }
                break;
            }
            return(0);
        }
示例#22
0
 public void Add(string Key, PassType t, object s, PassCategory c)
 {
     Add(Key, new QueryCriteria(t, s, c));
 }
示例#23
0
 public bool CreateNewCharacter(string playerSocialClubName, string firstName, string familyName, PassType passType, Gender gender, int mother, int father, int eyeColor, int hair, int hairColor, string faceFeatures)
 {
     return(CreateNewCharacter(playerSocialClubName, firstName, familyName, passType, gender, mother, father, eyeColor, hair, hairColor, faceFeatures, 0));
 }
示例#24
0
 private static void Internal_CheckVariant(Shader shader, PassType passType, string[] keywords)
 {
     throw new NotImplementedException("なにこれ");
 }
示例#25
0
        private bool CreateNewCharacter(string playerSocialClubName, string firstName, string familyName, PassType passType, Gender gender, int mother, int father, int eyeColor, int hair, int hairColor, string faceFeatures, int repeatCount)
        {
            if (firstName.Length > MaxCharacterFirstNameLength)
            {
                throw new CharacterFirstNameTooLongException(firstName);
            }
            if (familyName.Length > MaxCharacterFamilyNameLength)
            {
                throw new CharacterFamilyNameTooLongException(familyName);
            }

            string commandSql  = null;
            int    passId      = GetFreeCharacterPassId(passType);
            long   regDate     = (long)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalMilliseconds;
            int    bankId      = GenerateCharacterBankIdOrPhone();
            int    phoneNumber = GenerateCharacterBankIdOrPhone();

            switch (passType)
            {
            case PassType.Developer:
                commandSql = string.Format(InsertCharacterSql, playerSocialClubName, firstName, familyName, passId, "null", "null", "null", (int)gender, regDate, bankId, phoneNumber, mother, father, eyeColor, hair, hairColor, faceFeatures);
                break;

            case PassType.Admin:
                commandSql = string.Format(InsertCharacterSql, playerSocialClubName, firstName, familyName, "null", passId, "null", "null", (int)gender, regDate, bankId, phoneNumber, mother, father, eyeColor, hair, hairColor, faceFeatures);
                break;

            case PassType.Media:
                commandSql = string.Format(InsertCharacterSql, playerSocialClubName, firstName, familyName, "null", "null", passId, "null", (int)gender, regDate, bankId, phoneNumber, mother, father, eyeColor, hair, hairColor, faceFeatures);
                break;

            case PassType.Regular:
                commandSql = string.Format(InsertCharacterSql, playerSocialClubName, firstName, familyName, "null", "null", "null", passId, (int)gender, regDate, bankId, phoneNumber, mother, father, eyeColor, hair, hairColor, faceFeatures);
                break;
            }
            using (MySqlConnection connection = new MySqlConnection(ConnectionString))
            {
                connection.Open();
                using (MySqlCommand command = new MySqlCommand(commandSql, connection))
                {
                    try
                    {
                        return(command.ExecuteNonQuery() > 0);
                    }
                    catch (MySqlException e)
                    {
                        if (e.Number == 1062 && repeatCount <= DuplicateKeyOnRandomValueMaxRetryCount)
                        {
                            Log.Warn("Duplicate entry exception suppressed, repeatCount: {0}", repeatCount);
                            return(CreateNewCharacter(playerSocialClubName, firstName, familyName, passType, gender, mother, father, eyeColor, hair, hairColor, faceFeatures, repeatCount + 1));
                        }
                        throw;
                    }
                }
            }
        }
 public ICollection <ShaderVariant> GetVariants(Shader shader, PassType passType) => m_ShaderVariants.ContainsKey(shader) ? m_ShaderVariants[shader].Where(x => x.passType == passType).ToList() : new List <ShaderVariant>();
示例#27
0
 public IrPass(string name, PassType type)
 {
     Name = name;
     Type = type;
 }
示例#28
0
 private bool RemoveInternal(Shader shader, PassType passType, string[] keywords);
示例#29
0
 public IrPass(List <OpcodeToken> instructions, string name, PassType type)
 {
     Name = name;
     Type = type;
 }
示例#30
0
 public DeltaQuery(PassType mode, object str) : this(mode, str, PassCategory.DefaultRange)
 {
 }
示例#31
0
 public void TryPassBall(ulong passerPid, ulong targetPid, PassType type)
 {
     InvokeServerRpc(PassBallServer, passerPid, targetPid, type);
 }
 public void PreviewRendererWriteRenderTileCallback(uint sessionId, uint x, uint y, uint w, uint h, uint sample, uint depth, PassType passtype, float[] pixels, int pixlen)
 {
     if (IsStopped || (sample > 5 && Session.Scene.Device.IsCpu && sample % 10 != 0))
     {
         return;
     }
     DisplayBuffer(sessionId, x, y, w, h, passtype, ref pixels, pixlen, (int)depth);
     PreviewEventArgs.PreviewNotifier.NotifyIntermediateUpdate(RenderWindow);
 }
示例#33
0
        public FilterButterworth(float frequency, int sampleRate, PassType passType, float resonance)
        {
            this.resonance = resonance;
            this.frequency = frequency;
            this.sampleRate = sampleRate;
            this.passType = passType;

            switch (passType)
            {
                case PassType.Lowpass:
                    c = 1.0f / (float)Math.Tan(Math.PI * frequency / sampleRate);
                    a1 = 1.0f / (1.0f + resonance * c + c * c);
                    a2 = 2f * a1;
                    a3 = a1;
                    b1 = 2.0f * (1.0f - c * c) * a1;
                    b2 = (1.0f - resonance * c + c * c) * a1;
                    break;
                case PassType.Highpass:
                    c = (float)Math.Tan(Math.PI * frequency / sampleRate);
                    a1 = 1.0f / (1.0f + resonance * c + c * c);
                    a2 = -2f * a1;
                    a3 = a1;
                    b1 = 2.0f * (c * c - 1.0f) * a1;
                    b2 = (1.0f - resonance * c + c * c) * a1;
                    break;
            }
        }
示例#34
0
    public void PassBallClient(ulong passerPid, Vector3 pos, PassType type)
    {
        Player passer = GameManager.GetPlayerByNetworkID(passerPid);

        StartCoroutine(AutoCatchPass(GameManager.GetPlayer(), pos));
    }
			private static extern void Internal_CheckVariant(Shader shader, PassType passType, string[] keywords);
示例#36
0
        public PassResult WideOpenCatch(int catchRating, int specCatchRating, PassType type)
        {
            double yards = Math.Abs(type.GetYards());

            if (type.OnTarget())
            {
                double num = -0.005300 * catchRating * catchRating + 1.165 * catchRating + 35;
                //double num = Math.pow(64.9746 * Math.E, 0.0042 * (100 - catchRating));
                int  randNum = Random.GetInstance().Next(100);
                bool caught  = num > randNum;
                if (!caught)
                {
                    return(PassResult.Incomplete);
                }
                if (num - randNum > 15)
                {
                    return(PassResult.In_Stride);
                }
                else
                {
                    return(PassResult.Slowed);
                }
            }
            else if (yards < 1)
            {
                double rating  = .75 * catchRating + .25 * specCatchRating;
                double num     = 0.001000 * rating * rating + 0.7500 * rating + 10.00;
                int    randNum = Random.GetInstance().Next(100);
                bool   caught  = num > randNum;
                if (!caught)
                {
                    return(PassResult.Incomplete);
                }
                if (num - randNum > 25)
                {
                    return(PassResult.Slowed);
                }
                else
                {
                    return(PassResult.Dove);
                }
            }
            else if (yards < 3)
            {
                double num = 0.0;
                if (specCatchRating > 50)
                {
                    num = 0.008200 * specCatchRating * specCatchRating - 0.33 * specCatchRating + 1;
                }
                else
                {
                    num = 0.0008000 * specCatchRating * specCatchRating + 0.04000 * specCatchRating + 1.000;
                }
                int  randNum = Random.GetInstance().Next(0, 100);
                bool caught  = num > randNum;
                if (!caught)
                {
                    return(PassResult.Incomplete);
                }
                else
                if (num - randNum > 25)
                {
                    return(PassResult.Slowed);
                }
                else
                {
                    return(PassResult.Dove);
                }
            }
            return(PassResult.Incomplete);
        }
		private extern bool RemoveInternal(Shader shader, PassType passType, string[] keywords);
		private extern bool ContainsInternal(Shader shader, PassType passType, string[] keywords);
示例#39
0
		/**
		 * Sets the pass type.
		 *
		 * @param type pass type
		 */
		public void SetPassType(PassType type)
		{
			passType = type;
		}