Example #1
0
    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();
    }
Example #2
0
    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);
    }
Example #3
0
    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));
        }
    }
Example #4
0
    public SuiControllerDiving(Suicider sui) : base(sui)
    {
        Suiciders.Add(sui);

        AudioManager.GetInstance().SoundDie.Play();
        GameSettings.SuiDeathsCount++;
        sui.DudeAnimator.ClearClip();
    }
Example #5
0
    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();
    }
Example #6
0
 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();
 }
Example #7
0
    private void JumpRandomSui()
    {
        Suicider sui = GetRandomWalkingSuiInsideJumpArea();

        if (sui == null)
        {
            return;
        }

        sui.SetController(new SuiControllerPreparingForJump(sui));
    }
Example #8
0
    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();
    }
Example #9
0
    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);
    }
Example #10
0
    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();
    }
Example #11
0
    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();
    }
Example #12
0
    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();
    }
Example #13
0
    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();
            }
        }
    }
Example #14
0
 private void Awake()
 {
     Suicider = GetComponentInChildren <Suicider>();
 }
Example #15
0
 public SuiControllerIdleTest(Suicider sui) : base(sui)
 {
 }
Example #16
0
 public SuiController(Suicider sui)
 {
     m_sui = sui;
 }
Example #17
0
 public SuiControllerWithSuperhero(Suicider sui) : base(sui)
 {
     Suiciders.Add(sui);
 }