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"))); } } } }
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); } }
/// <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()); }
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); }
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); } }
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)); }
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)); } }
public void ComparesButterAgainstExternalData() { var indicator = new SwissArmyKnife(20, 0.1, SwissArmyKnifeTool.Butter); RunTestIndicator(indicator, "Butter", 0.01m); }
public void ComparesHPAgainstExternalData() { var indicator = new SwissArmyKnife(20, 0.1, SwissArmyKnifeTool.HighPass); RunTestIndicator(indicator, "HP", 0.01m); }
public void ComparesBandPassAgainstExternalData() { var indicator = new SwissArmyKnife(20, 0.1, SwissArmyKnifeTool.BandPass); RunTestIndicator(indicator, "BP", 0.043m); }
public void ComparesGaussAgainstExternalData() { var indicator = new SwissArmyKnife("", 20, 0.1, SwissArmyKnifeTool.Gauss); RunTestIndicator(indicator, "Gauss", 0.01m); }