示例#1
0
 public static Vector3 GetDirectionxy(float angle)
 {
     GetDirectionxy_dir.x = MathDxx.Sin(angle);
     GetDirectionxy_dir.y = MathDxx.Cos(angle);
     GetDirectionxy_dir.z = 0;
     return(GetDirectionxy_dir);
 }
示例#2
0
        public static long GetNeedDiamond(long gold)
        {
            int num  = LocalSave.Instance.mShop.get_buy_golds(0);
            int num2 = LocalSave.Instance.mShop.get_buy_golds(1);
            int num3 = LocalSave.Instance.mShop.get_buy_golds(2);
            int num4 = LocalModelManager.Instance.Shop_Shop.get_buy_gold_diamond(0);
            int num5 = LocalModelManager.Instance.Shop_Shop.get_buy_gold_diamond(1);
            int num6 = LocalModelManager.Instance.Shop_Shop.get_buy_gold_diamond(2);

            if (gold <= num)
            {
                float num7 = ((float)gold) / ((float)num);
                return((long)MathDxx.CeilToInt(num7 * num4));
            }
            if (gold <= num2)
            {
                long  num8 = gold - num;
                float num9 = ((float)num8) / ((float)(num2 - num));
                return((long)(MathDxx.CeilToInt(num9 * (num5 - num4)) + num4));
            }
            long  num10 = gold - num2;
            float num11 = ((float)num10) / ((float)(num3 - num2));

            return((long)(MathDxx.CeilToInt(num11 * (num6 - num5)) + num5));
        }
示例#3
0
        private static float ExcuteReboundWall(Vector3 position, float angle, Collider o, float offsetdir)
        {
            float   x         = MathDxx.Sin(angle);
            float   z         = MathDxx.Cos(angle);
            Vector3 direction = new Vector3(x, 0f, z);

            RaycastHit[] hitArray = Physics.RaycastAll(position + (offsetdir * direction), direction, 100f, ((int)1) << o.gameObject.layer);
            float        num3     = getAngle(direction);

            for (int i = 0; i < hitArray.Length; i++)
            {
                RaycastHit hit = hitArray[i];
                if (hit.collider.gameObject == o.gameObject)
                {
                    Vector3 vector2 = hit.point - hit.collider.transform.position;
                    Vector3 size    = hit.collider.GetComponent <BoxCollider>().size;
                    float   num5    = (size.x * hit.transform.localScale.x) / ((size.z * 1.23f) * hit.transform.localScale.z);
                    if (vector2.z > 0f)
                    {
                        float introduced12 = Mathf.Abs(vector2.x);
                        if (introduced12 < (vector2.z * num5))
                        {
                            return(180f - angle);
                        }
                    }
                    if (vector2.z < 0f)
                    {
                        float introduced13 = Mathf.Abs(vector2.x);
                        if (introduced13 < (-vector2.z * num5))
                        {
                            return(180f - angle);
                        }
                    }
                    if (vector2.x > 0f)
                    {
                        float introduced14 = Mathf.Abs(vector2.z);
                        if (introduced14 < (vector2.x / num5))
                        {
                            return(-angle);
                        }
                    }
                    return(-angle);
                }
            }
            return(-angle);
        }
示例#4
0
        public static float ExcuteReboundWall(float angle, Vector3 pos, GameObject o)
        {
            float   x         = MathDxx.Sin(angle);
            float   z         = MathDxx.Cos(angle);
            Vector3 direction = new Vector3(x, 0f, z);
            Vector3 origin    = pos - direction;

            foreach (RaycastHit hit in Physics.RaycastAll(origin, direction, 2f, ((int)1) << o.gameObject.layer))
            {
                if (hit.collider.gameObject == o)
                {
                    Vector3 vector3 = hit.point - hit.collider.transform.position;
                    Vector3 size    = hit.collider.GetComponent <BoxCollider>().size;
                    float   num4    = (size.x * hit.transform.localScale.x) / ((size.z * 1.23f) * hit.transform.localScale.z);
                    if (vector3.z > 0f)
                    {
                        float introduced12 = Mathf.Abs(vector3.x);
                        if (introduced12 <= (vector3.z * num4))
                        {
                            return(180f - angle);
                        }
                    }
                    if (vector3.z < 0f)
                    {
                        float introduced13 = Mathf.Abs(vector3.x);
                        if (introduced13 <= (-vector3.z * num4))
                        {
                            return(180f - angle);
                        }
                    }
                    if (vector3.x > 0f)
                    {
                        float introduced14 = Mathf.Abs(vector3.z);
                        if (introduced14 <= (vector3.x / num4))
                        {
                            return(-angle);
                        }
                    }
                    return(-angle);
                }
            }
            return(0f);
        }