public SuiControllerSinking(Suicider sui) : base(sui) { Suiciders.Add(sui); m_waterHeight = sui.WaterLevel.GetWaterHeight(sui.transform.position.x, true); sui.IsKinematic = true; sui.Dude.SetBobyPartsKinematic(true); sui.DudeAnimator.Sink(); m_sui.SetHealthBarVisible(true); m_sui.SetHealthValue(1.0f); if (m_sui.WaterCircles != null) { m_sui.WaterCircles.Stop(); m_sui.WaterCircles = null; } m_sui.WaterCircles = WaterCirclesPool.Instance.Get(); if (m_sui.WaterCircles != null) { m_sui.WaterCircles.Play(m_sui.transform.position); } m_sui.m_waterWaiver.Reset(); }
private void AddSui(Suicider sui) { GrabEffect grabEffect = m_grabEffectPool.Get(); if (grabEffect != null) { grabEffect.transform.position = sui.transform.position; grabEffect.Play(); } sui.IsKinematic = false; sui.Dude.SetBobyPartsKinematic(false); sui.DudeAnimator.ClearClip(); sui.Dude.PlugIn(Dude); sui.SetController(new SuiControllerWithSuperhero(sui)); if (m_suiciders.Count > 0) { Dude dude = m_suiciders.Peek().Dude; dude.PlugOut(); dude.PlugIn(sui.Dude); } m_suiciders.Push(sui); }
private void ReleaseSuiciders() { Dude.SetBobyPartsKinematic(true); DudeAnimator.SetupPivots(); int total = GGHeroGame.GetTotal(); int totalBefore = total + GameSettings.SuiRescuedCount; GameSettings.SuiRescuedCount += GetHoldingSuis(); int totalAfter = total + GameSettings.SuiRescuedCount; m_gameplay.ReportAchievementIfNeeded(totalBefore, totalAfter); Vector2 rescuePosition = transform.position.x < 0.0f ? m_rescuePointLeft.position : m_rescuePointRight.position; while (m_suiciders.Count > 0) { Suicider sui = m_suiciders.Pop(); ShowSurvivalName(sui); sui.Dude.PlugOut(); sui.SetController(new SuiControllerRescuing(sui, rescuePosition)); } }
public SuiControllerDiving(Suicider sui) : base(sui) { Suiciders.Add(sui); AudioManager.GetInstance().SoundDie.Play(); GameSettings.SuiDeathsCount++; sui.DudeAnimator.ClearClip(); }
public SuiControllerPreparingForJump(Suicider sui) : base(sui) { Suiciders.Add(sui); m_basePosition = sui.transform.position; m_jumpAfterTime = Random.Range(JumpTimeBounds.x, JumpTimeBounds.y); sui.Dude.SetBobyPartsKinematic(true); sui.DudeAnimator.PrepareToJump(); }
public SuiControllerRescuing(Suicider sui, Vector2 destinationPosition) : base(sui) { m_destinationPosition = destinationPosition + Random.insideUnitCircle * 0.06f; sui.IsKinematic = true; sui.Dude.SetBobyPartsKinematic(true); // This also looks cool // sui.DudeAnimator.Walk(); sui.DudeAnimator.SetupPivots(); sui.Reset(); }
private void JumpRandomSui() { Suicider sui = GetRandomWalkingSuiInsideJumpArea(); if (sui == null) { return; } sui.SetController(new SuiControllerPreparingForJump(sui)); }
public SuiControllerFalling(Suicider sui) : base(sui) { Suiciders.Add(sui); m_waterHeight = sui.WaterLevel.GetWaterHeight(sui.transform.position.x, true); m_fallingSpeed = Random.Range(GameSettings.SuiFallingSpeedMin, GameSettings.SuiFallingSpeedMax); sui.IsKinematic = true; sui.Dude.SetBobyPartsKinematic(true); sui.DudeAnimator.Fall(); }
private void ShowSurvivalName(Suicider sui) { if (sui == null) { return; } Transform container = sui.transform.position.x < 0.0f ? m_survivalNamesLeft : m_survivalNamesRight; m_survivorNameManager.SetName(m_randomNames.GetName(sui.IsFemale), sui.TintColor, sui.transform.position, container); }
public SuiControllerWalkAway(Suicider sui) : base(sui) { Suiciders.Add(sui); float direction = m_sui.transform.position.x < 0.0f ? -1.0f : 1.0f; m_walker = new Walker(sui.transform, direction, Random.Range(0.2f, 0.4f)); sui.IsKinematic = true; sui.Dude.SetBobyPartsKinematic(true); sui.DudeAnimator.Walk(); sui.Reset(); }
public SuiControllerWalkOnBridge(Suicider sui, Vector2 startPosition, float direction, RectBounds bridgeWalkArea) : base(sui) { Suiciders.Add(sui); sui.transform.position = startPosition; m_horiDirection = direction; float speed = Random.Range(0.2f, 0.4f); m_walker = new Walker(sui.transform, m_horiDirection, speed); m_bridgeWalkArea = bridgeWalkArea; sui.IsKinematic = true; sui.Dude.SetBobyPartsKinematic(true); sui.DudeAnimator.Walk(); }
private void GenerateSuicider(float xCoord, float direction) { Vector3 initialPosition = new Vector3(xCoord, BridgeHeight, 0.0f); SuiciderRoot suiciderRoot = m_suiciderPool.Get(); if (suiciderRoot == null) { return; } suiciderRoot.transform.position = initialPosition; Suicider suicider = suiciderRoot.Suicider; suicider.TintColor = ColorPalette.GetRandomColor(); suicider.SkinTintColor = ColorPalette.GetRandomSkinColor(); suicider.Initialize(m_waterLevel); suicider.SortOrder = 21; suicider.SetIsFemale(Random.value > 0.5f); suicider.SetController(new SuiControllerWalkOnBridge(suicider, initialPosition, direction, m_bridgeWalkArea)); suicider.Reset(); }
public void NotifyCollisionWithSui(Suicider sui) { if (sui != null && sui.IsGrabable) { if (CanTakeSui()) { AddSui(sui); Dude.SetBobyPartsKinematic(true); DudeAnimator.SetupPivots(); if (Dude.IsConnected(BodyPartType.HandLeft)) { Dude.SetBobyPartKinematic(BodyPartType.HandLeft, false); } if (Dude.IsConnected(BodyPartType.HandRight)) { Dude.SetBobyPartKinematic(BodyPartType.HandRight, false); } AudioManager.GetInstance().SoundCatch.Play(); } } }
private void Awake() { Suicider = GetComponentInChildren <Suicider>(); }
public SuiControllerIdleTest(Suicider sui) : base(sui) { }
public SuiController(Suicider sui) { m_sui = sui; }
public SuiControllerWithSuperhero(Suicider sui) : base(sui) { Suiciders.Add(sui); }