示例#1
0
    public void ReplaceBoostEffect(ShipEffects newEffects)
    {
        var index     = GameComponentsLookup.BoostEffect;
        var component = CreateComponent <BoostEffectComponent>(index);

        component.effects = newEffects;
        ReplaceComponent(index, component);
    }
    private void SystemEffects()
    {
        if (curWarpCoreHealth <= maxWarpCoreHealth * 0.125f || ActiveWarpCore)
        {
            curEnergy = 0;
            if (WarpCoreDisable == null)
            {
                WarpCoreDisable        = gameObject.AddComponent <ShipEffects>();
                WarpCoreDisable.Effect = ShipEffects.ShipEffect.WarpCoreDisable;
            }
        }
        if (curWarpCoreHealth > maxWarpCoreHealth * 0.125f && !ActiveWarpCore)
        {
            if (WarpCoreDisable != null)
            {
                Destroy(WarpCoreDisable);
                WarpCoreDisable = null;
            }
        }

        if (curSensorsSystemHealth <= maxSensorsSystemHealth * 0.125f || ActiveSensors)
        {
            _es.VisionRadius = NormalSensors / 5;
        }
        else
        {
            _es.VisionRadius = NormalSensors;
        }


        if (curLifeSupportSystemHealth <= maxLifeSupportSystemHealth * 0.125f || ActiveLifeSupport)
        {
            if (curCrew > 0)
            {
                if (curCrew > 15)
                {
                    float T9;
                    T9       = maxCrew / 100;
                    curCrew -= T9 / 50;
                }
                if (curCrew < 15)
                {
                    float T9;
                    T9       = maxCrew / 1000;
                    curCrew -= T9 / 50;
                }
            }
            else
            {
                curCrew = 0;
            }
        }
        if (curEnergy < maxEnergy)
        {
            curEnergy += Time.deltaTime;
        }
        if (maxCrew > 0)
        {
            if (curImpulseSystemHealth <= maxImpulseSystemHealth * 0.125f || ActiveImpulse || curCrew <= 0)
            {
                if (Ship)
                {
                    gameObject.GetComponent <MoveComponent>().enabled = false;
                }
            }
        }
        else if (maxCrew <= 0)
        {
            if (curImpulseSystemHealth <= maxImpulseSystemHealth * 0.125f || ActiveImpulse)
            {
                if (Ship)
                {
                    gameObject.GetComponent <MoveComponent>().enabled = false;
                }
            }
        }
        if (maxCrew > 0)
        {
            if (curImpulseSystemHealth > maxImpulseSystemHealth * 0.125f && !ActiveImpulse && curCrew > 0)
            {
                if (Ship)
                {
                    gameObject.GetComponent <MoveComponent>().enabled = true;
                }
            }
        }
        else
        {
            if (curImpulseSystemHealth > maxImpulseSystemHealth * 0.125f && !ActiveImpulse)
            {
                if (Ship)
                {
                    gameObject.GetComponent <MoveComponent>().enabled = true;
                }
            }
        }
    }