예제 #1
0
 protected override void ButtonUpdate()
 {
     this.m_stateUpdateTimer += Time.deltaTime;
     if (this.m_stateUpdateTimer >= 0.2f)
     {
         this.UpdateState();
         this.m_stateUpdateTimer = 0f;
     }
     if (this.m_partsEnabled)
     {
         this.m_enabledTimer += Time.deltaTime;
         if (this.m_partType == BasePart.PartType.Bellows)
         {
             Vector3 localScale = this.m_gadgetSprite.transform.localScale;
             localScale.y = Bellows.CompressionScale(this.m_enabledTimer);
             this.m_gadgetSprite.transform.localScale = localScale;
             if (this.m_enabledTimer > 0.8f + ((!Bellows.HasAlienBellows) ? 0.3f : 0.15f))
             {
                 this.m_enabledTimer = 0f;
             }
         }
         else
         {
             this.m_gadgetSprite.transform.localPosition = (Vector3)UnityEngine.Random.insideUnitCircle * 0.075f + new Vector3(0f, 0f, -0.1f);
         }
     }
 }
예제 #2
0
    public void FixedUpdate()
    {
        float num = Time.time - this.m_timeBoostStarted;

        if (num > 0.8f + this.InflateDuration)
        {
            this.m_enabled = false;
            return;
        }
        if (num < 0.5f)
        {
            this.m_enabled = true;
            float num2 = 1f - num / 0.5f;
            num2 = 1f - num2 * num2;
            float   d        = num2 * this.m_boostForce;
            Vector3 vector   = base.transform.TransformDirection(this.m_direction);
            Vector3 position = base.transform.position + vector * 0.5f;
            Vector3 a        = vector;
            base.rigidbody.AddForceAtPosition(d * a, position, ForceMode.Force);
        }
        Vector3 one = Vector3.one;

        one.y *= Bellows.CompressionScale(num);
        if (this.scaleTarget != null)
        {
            this.scaleTarget.localScale = one;
        }
        else
        {
            base.transform.localScale = one;
        }
    }