// MonoBehaviour's interface

    void Awake()
    {
        // Cache components.

        {
            m_CharacterController = GetComponent <tnCharacterController>();
            m_CharacterInput      = GetComponent <tnCharacterInput>();
            m_StatsContainer      = GetComponent <tnStatsContainer>();
            m_Energy  = GetComponent <tnEnergy>();
            m_Respawn = GetComponent <tnRespawn>();
        }

        // Force values refresh.

        {
            ComputeRadius(FP.Zero);
            ComputeEnergyCost(FP.Zero);
            ComputeCooldown(FP.Zero);
            ComputeKickForce(FP.Zero);
            ComputeTackleForce(FP.Zero);
        }

        // Compute charging layer.

        m_ChargingLayer = LayerMask.NameToLayer("Charging");

        // Set sort order.

        sortOrder = BehaviourSortOrder.s_SortOrder_Kick;
    }
    // MonoBehaviour's interface

    void Awake()
    {
        m_Energy = GetComponentInParent <tnEnergy>();

        if (m_SlotPrefab == null || m_SlotsRoot == null)
        {
            return;
        }

        m_SlotsCount = Mathf.Max(1, m_SlotsCount);

        m_Slots = new tnUIEnergySlot[m_SlotsCount];

        // Spawn slots.

        for (int slotIndex = 0; slotIndex < m_Slots.Length; ++slotIndex)
        {
            tnUIEnergySlot slotInstance = Instantiate <tnUIEnergySlot>(m_SlotPrefab);
            slotInstance.Clear();

            slotInstance.transform.SetParent(m_SlotsRoot, false);

            slotInstance.SetColor(m_StartingBarColor);

            m_Slots[slotIndex] = slotInstance;
        }

        // Spawn separators

        if (m_SeparatorsRoot == null || m_SeparatorPrefab == null)
        {
            return;
        }

        m_Separators = new tnUIEnergySlotSeparator[m_SlotsCount - 1];

        float barLenght  = m_SlotsRoot.rect.width;
        float slotLenght = barLenght / m_Slots.Length;

        for (int separatorIndex = 0; separatorIndex < m_Separators.Length; ++separatorIndex)
        {
            tnUIEnergySlotSeparator separatorInstance = Instantiate <tnUIEnergySlotSeparator>(m_SeparatorPrefab);

            separatorInstance.transform.SetParent(m_SeparatorsRoot, false);
            RectTransform separatorTransform = (RectTransform)separatorInstance.transform;
            separatorTransform.anchoredPosition = new Vector2(slotLenght * (separatorIndex + 1), 0f);

            m_Separators[separatorIndex] = separatorInstance;
        }
    }
    // UTILS

    private void SetEnergyRecoveryEnabled(bool i_Enabled)
    {
        for (int index = 0; index < charactersCount; ++index)
        {
            GameObject character = GetCharacterByIndex(index);

            if (character == null)
            {
                continue;
            }

            tnEnergy energy = character.GetComponent <tnEnergy>();
            if (energy != null)
            {
                energy.SetAutorecoveryEnabled(i_Enabled);
            }
        }
    }
    // MonoBehaviour's INTERFACE

    void Awake()
    {
        // Cache components.

        {
            m_Rigidbody2D = GetComponent <TSRigidBody2D>();
            m_Collider2D  = GetComponent <TSCollider2D>();

            m_CharacterInput = GetComponent <tnCharacterInput>();
            m_StatsContainer = GetComponent <tnStatsContainer>();
            m_Energy         = GetComponent <tnEnergy>();
            m_Respawn        = GetComponent <tnRespawn>();
        }

        // Init data.

        {
            m_OriginalLayer = gameObject.layer;
            m_DashLayer     = LayerMask.NameToLayer("Charging");
        }

        // Force values refresh.

        {
            ComputeAppliedForce(FP.Zero);
            ComputeMass(FP.Zero);
            ComputeDrag(FP.Zero);
            ComputeMaxSpeed(FP.Zero);

            ComputeDashMass(FP.Zero);
            ComputeDashDrag(FP.Zero);
            ComputeDashAppliedForce(FP.Zero);
            ComputeDashCooldown(FP.Zero);
            ComputeDashDuration(FP.Zero);
            ComputeDashEnergyCost(FP.Zero);
        }

        // Set sort order.

        sortOrder = BehaviourSortOrder.s_SortOrder_CharacterController;
    }
Exemple #5
0
    // MonoBehaviour's interface

    void Awake()
    {
        // Cache components.

        {
            m_CharacterInput = GetComponent <tnCharacterInput>();
            m_StatsContainer = GetComponent <tnStatsContainer>();
            m_Energy         = GetComponent <tnEnergy>();
            m_Respawn        = GetComponent <tnRespawn>();
        }


        // Force values refresh.

        {
            ComputeEnergyCostRate(FP.Zero);
            ComputeForceMagnitude(FP.Zero);
            ComputeRadius(FP.Zero);
        }

        // Set sort order.

        sortOrder = BehaviourSortOrder.s_SortOrder_Attract;
    }
    // CTOR

    public tnStandardAIInputFillerBase(GameObject i_Self)
        : base(i_Self)
    {
        m_Energy = i_Self.GetComponent <tnEnergy>();
    }