Beispiel #1
0
    public void FillSettingsDisplayWithPlayerPrefs()
    {
        for (int i = 0; i < menuCategories.Count; i++)
        {
            GameObject[] i_settingsRef = menuCategories[i].GetComponent <SettingsMenuOrganizer>().childrenObjects;

            for (int j = 0; j < i_settingsRef.Length; j++)
            {
                UIBehaviour i_thisSetting = i_settingsRef[j].GetComponent <UIBehaviour>();

                if (i_thisSetting is SliderUI)
                {
                    SliderUI i_sliderRef = i_thisSetting as SliderUI;
                    int      value       = Mathf.RoundToInt(PlayerPrefs.GetFloat("REU_" + i_sliderRef.name, i_sliderRef.defaultValue));
                    i_sliderRef.ForceModifyValue(value);
                }
                else if (i_thisSetting is MultichoiceUI)
                {
                    MultichoiceUI i_multiChoiceRef = i_thisSetting as MultichoiceUI;

                    i_multiChoiceRef.ForceModifyValue(PlayerPrefs.GetInt("REU_" + i_multiChoiceRef.name, i_multiChoiceRef.defaultValue));
                }
                else if (i_thisSetting is ToggleUI)
                {
                    ToggleUI i_toggleRef = i_thisSetting as ToggleUI;

                    i_toggleRef.ForceModifyValue(SwissArmyKnife.ConvertPlayerPrefStringAsBool(PlayerPrefs.GetString("REU_" + i_toggleRef.name, i_toggleRef.defaultValueIsYes? "true":"false")));
                }
            }
        }
    }
Beispiel #2
0
    void UpdateCombatCamera()
    {
        Vector3 i_middlePosition    = Vector3.Lerp(GameManager.playerOne.transform.position, GameManager.playerTwo.transform.position, 0.5f);
        Vector3 i_directionToCenter = i_middlePosition - zone.GetCenterPosition();
        float   i_xAngle            = Vector3.Angle(zone.transform.TransformDirection(new Vector3(0, -1, 0)), i_directionToCenter);
        float   i_yAngle            = Vector3.Angle(zone.transform.TransformDirection(new Vector3(1, 0, 0)), i_directionToCenter);

        float i_xDistance = Mathf.Abs(i_directionToCenter.magnitude * Mathf.Sin(i_xAngle * Mathf.Deg2Rad));
        float i_yDistance = Mathf.Abs(i_directionToCenter.magnitude * Mathf.Sin(i_yAngle * Mathf.Deg2Rad));

        int i_xDirection = 1;
        int i_yDirection = 1;

        float i_directionAngle = SwissArmyKnife.SignedAngleBetween(zone.transform.TransformDirection(new Vector3(0, -1, 0)), i_directionToCenter, Vector3.up);

        if (i_directionAngle >= 0 && i_directionAngle < 90)
        {
            i_xDirection = -1; i_yDirection = -1;
        }
        if (i_directionAngle >= 90 && i_directionAngle < 180)
        {
            i_xDirection = -1; i_yDirection = 1;
        }
        if (i_directionAngle >= 180 && i_directionAngle < 270)
        {
            i_xDirection = 1; i_yDirection = 1;
        }
        if (i_directionAngle >= 270 && i_directionAngle < 360)
        {
            i_xDirection = 1; i_yDirection = -1;
        }

        Vector3 i_directionToCorner = zone.cornerA_access - zone.transform.position;
        float   i_xMaxDistance      = i_directionToCorner.magnitude * Mathf.Sin(Vector3.Angle(zone.transform.TransformDirection(new Vector3(0, -1, 0)), i_directionToCorner) * Mathf.Deg2Rad);
        float   i_yMaxDistance      = i_directionToCorner.magnitude * Mathf.Sin(Vector3.Angle(zone.transform.TransformDirection(new Vector3(1, 0, 0)), i_directionToCorner) * Mathf.Deg2Rad);

        i_xDistance = (Mathf.Clamp(i_xDistance, 0, i_xMaxDistance) * i_xDirection) / i_xMaxDistance;
        i_yDistance = (Mathf.Clamp(i_yDistance, 0, i_yMaxDistance) * i_yDirection) / i_yMaxDistance;

        float i_wantedRotationAngle = Mathf.Lerp(-maxRotation, maxRotation, (i_xDistance + 1) / 2f);

        wantedAngle      = i_wantedRotationAngle;
        currentDistanceX = i_xDistance;
        currentDistanceY = i_yDistance;

        Quaternion i_wantedRotation = Quaternion.Euler(defaultRotation.eulerAngles.x, defaultRotation.eulerAngles.y + i_wantedRotationAngle, defaultRotation.eulerAngles.z);

        pivot.transform.localRotation = Quaternion.Lerp(pivot.transform.localRotation, i_wantedRotation, Time.deltaTime * rotationSpeed);
        if (enableTranslation)
        {
            float   i_wantedTranslation = Mathf.Lerp(-maxForwardTranslation, maxForwardTranslation, (i_yDistance + 1) / 2f);
            Vector3 i_wantedPosition    = new Vector3(defaultTranslation.x, defaultTranslation.y, defaultTranslation.z + i_wantedTranslation);
            virtualCamera.transform.localPosition = Vector3.Lerp(virtualCamera.transform.localPosition, i_wantedPosition, Time.deltaTime * translationSpeed);
        }
    }
Beispiel #3
0
    /// <summary>
    /// Need cleaning => Create core with enemy and drop it afterward
    /// </summary>
    protected void DropCore()
    {
        GameObject i_newCore = Instantiate(Resources.Load <GameObject>("EnemyResource/EnemyCore"));

        i_newCore.name = "Core of " + gameObject.name;
        i_newCore.transform.position = transform.position;
        Vector3 i_wantedDirectionAngle = SwissArmyKnife.RotatePointAroundPivot(Vector3.forward, Vector3.up, new Vector3(0, UnityEngine.Random.Range(0, 360), 0));
        float   i_throwForce           = UnityEngine.Random.Range(deathValues.minMaxDropForce.x, deathValues.minMaxDropForce.y);

        i_wantedDirectionAngle.y = i_throwForce * 0.035f;
        i_newCore.GetComponent <CorePart>().Init(null, i_wantedDirectionAngle.normalized * i_throwForce, 1, (int)UnityEngine.Random.Range(deathValues.minMaxCoreHealthValue.x, deathValues.minMaxCoreHealthValue.y));
    }
    // Start is called before the first frame update
    void Awake()
    {
        selectedFont     = robotoTextFont;
        narrationManager = this;
        CreateDialogueBox();
        textWritingCoroutine = null;
        dialogueBoxInstance  = null;

        player1Transform = GameManager.playerOne.transform;
        player2Transform = GameManager.playerTwo.transform;
        ChangeTextColor(PlayerPrefs.GetInt("REU_In-Game Text Color", 0)); // initiation, either with saved value or with base value
        ChangeTextSize(PlayerPrefs.GetInt("REU_In-Game Text Size", 1));
        ChangeSelectedFont(SwissArmyKnife.ConvertPlayerPrefStringAsBool(PlayerPrefs.GetString("REU_Stylized In-Game Text Font")));
        StartCoroutine(CheckElementToActivate());
    }
Beispiel #5
0
        public void ResetsProperly()
        {
            var sak = new SwissArmyKnife(4, 0.1, SwissArmyKnifeTool.BandPass);

            foreach (var data in TestHelper.GetDataStream(5))
            {
                sak.Update(data);
            }
            Assert.IsTrue(sak.IsReady);
            Assert.AreNotEqual(0m, sak.Current.Value);
            Assert.AreNotEqual(0, sak.Samples);

            sak.Reset();

            TestHelper.AssertIndicatorIsInDefaultState(sak);
        }
Beispiel #6
0
    private void GenerateReviveParts()
    {
        float i_currentAngle           = 0;
        float i_defaultAngleDifference = 360f / revivePartsCount;

        for (int i = 0; i < revivePartsCount; i++)
        {
            GameObject i_revivePart = Instantiate(Resources.Load <GameObject>("PlayerResource/PlayerCore"), null);
            i_revivePart.name = "Part " + i + " of " + gameObject.name;
            i_revivePart.transform.position = transform.position;
            Vector3 i_wantedDirectionAngle = SwissArmyKnife.RotatePointAroundPivot(Vector3.forward, Vector3.up, new Vector3(0, i_currentAngle, 0));
            float   i_throwForce           = Random.Range(minMaxProjectionForce.x, minMaxProjectionForce.y);
            i_wantedDirectionAngle.y = i_throwForce * 0.035f;
            i_revivePart.GetComponent <CorePart>().Init(this, i_wantedDirectionAngle.normalized * i_throwForce, revivePartsCount, 0);
            i_currentAngle += i_defaultAngleDifference + Random.Range(-i_defaultAngleDifference * partExplosionAngleRandomness, i_defaultAngleDifference * partExplosionAngleRandomness);
        }
    }
Beispiel #7
0
    protected Vector3 UpdateNewDestinationAlongBezierCurve(Vector3 _endPosition)
    {
        float i_distanceToPointRatio = (1 + (transform.position - _endPosition).magnitude / bezierDistanceToHeightRatio); // widens the arc of surrounding the farther the surroundingPoint is

        Vector3 i_p0 = transform.position;                                                                                // The starting point

        Vector3 i_p2 = SwissArmyKnife.GetFlattedDownPosition(_endPosition, transform.position);                           // The destination

        float i_angle = Vector3.SignedAngle(i_p2 - i_p0, focusedPawnController.transform.position - i_p0, Vector3.up);

        int i_moveSens = i_angle > 1 ? 1 : -1;

        Vector3 i_p1 = i_p0 + (i_p2 - i_p0) / 0.5f + Vector3.Cross(i_p2 - i_p0, Vector3.up) * i_moveSens * bezierCurveHeight * i_distanceToPointRatio;  // "third point" of the bezier curve

        // Calculating position on bezier curve, following start point, end point and avancement
        // In this version, the avancement has been replaced by a constant because it's recalculated every frame
        Vector3 i_positionOnBezierCurve = (Mathf.Pow(0.5f, 2) * i_p0) + (2 * 0.5f * 0.5f * i_p1) + (Mathf.Pow(0.5f, 2) * i_p2);

        return(SwissArmyKnife.GetFlattedDownPosition(i_positionOnBezierCurve, focusedPawnController.transform.position));
    }
Beispiel #8
0
    private void FaceEnemyMiddlePoint()
    {
        Vector3 i_pointToFace = new Vector3();

        if (playerTransform == GameManager.playerOne.transform)
        {
            i_pointToFace  = EnemyManager.i.groupOneMiddlePoint;
            closestEnemies = EnemyManager.i.enemyGroupOne;
        }
        else if (playerTransform == GameManager.playerTwo.transform)
        {
            i_pointToFace  = EnemyManager.i.groupTwoMiddlePoint;
            closestEnemies = EnemyManager.i.enemyGroupTwo;
        }

        if ((i_pointToFace - transform.position).magnitude > minimalDistanceToFollow)
        {
            transform.LookAt(SwissArmyKnife.GetFlattedDownPosition(i_pointToFace, transform.position));
        }
    }
Beispiel #9
0
        public void ComparesButterAgainstExternalData()
        {
            var indicator = new SwissArmyKnife(20, 0.1, SwissArmyKnifeTool.Butter);

            RunTestIndicator(indicator, "Butter", 0.01m);
        }
Beispiel #10
0
        public void ComparesHPAgainstExternalData()
        {
            var indicator = new SwissArmyKnife(20, 0.1, SwissArmyKnifeTool.HighPass);

            RunTestIndicator(indicator, "HP", 0.01m);
        }
Beispiel #11
0
        public void ComparesBandPassAgainstExternalData()
        {
            var indicator = new SwissArmyKnife(20, 0.1, SwissArmyKnifeTool.BandPass);

            RunTestIndicator(indicator, "BP", 0.043m);
        }
Beispiel #12
0
        public void ComparesGaussAgainstExternalData()
        {
            var indicator = new SwissArmyKnife("", 20, 0.1, SwissArmyKnifeTool.Gauss);

            RunTestIndicator(indicator, "Gauss", 0.01m);
        }