public void SetGraphicsPreset(int value)
        {
            ChangedByPreset = true;
            SelectedPreset  = (EffectPreset)value;

            switch (SelectedPreset)
            {
            case EffectPreset.LowPreset:
                LowPresetEvent.Invoke();
                break;

            case EffectPreset.MediumPreset:
                MediumPresetEvent.Invoke();
                break;

            case EffectPreset.HighPreset:
                HighPresetEvent.Invoke();
                break;

            case EffectPreset.UltraPreset:
                UltraPresetEvent.Invoke();
                break;

            default:
                break;
            }
        }
Exemple #2
0
 public override void BeforeSwitch(FageStateMachine stateMachine, string afterId)
 {
     base.BeforeSwitch(stateMachine, afterId);
     _effector   = null;
     _screen     = null;
     _blur       = null;
     _presetFrom = null;
     _presetTo   = null;
 }
Exemple #3
0
    public EffectPreset DumpEffect()
    {
        EffectPreset result = new EffectPreset();

        result.id                           = "dump";
        result.screenEnable                 = screen.enabled;
        result.screenSaturation             = screen.screenSaturation;
        result.chromaticAberrationMagnetude = screen.chromaticAberrationMagnetude;
        result.staticMagnetude              = screen.staticMagnetude;
        result.blurEnable                   = blur.enabled;
        result.blurSize                     = blur.blurSize;
        return(result);
    }
Exemple #4
0
        public override void SerializeStatusEffect(StatusEffect status, EffectPreset preset)
        {
            base.SerializeStatusEffect(status, preset);

            var disease = status as Disease;

            CanDegenerate         = disease.CanHealByItself;
            StraightSleepHealTime = disease.StraightSleepHealTime;
            CanBeHealedBySleeping = disease.CanBeHealedBySleeping;
            AutoHealTime          = (int)At.GetField(disease, "m_autoHealTime");
            DegenerateTime        = (float)At.GetField(disease, "m_degenerateTime");
            DiseaseType           = (Diseases)At.GetField(disease, "m_diseasesType");
        }
Exemple #5
0
    public override void AfterSwitch(FageStateMachine stateMachine, string beforeId)
    {
        base.AfterSwitch(stateMachine, beforeId);
        _effector = stateMachine as CameraEffector;
        _screen   = _effector.screen;
        _blur     = _effector.blur;

        EffectRequest request = _effector.GetRequest();

        if (request == null)
        {
            _effector.ReserveState("CameraEffectorIdle");
            return;
        }

        _presetFrom = _effector.DumpEffect();
        _presetTo   = _effector.GetPreset(request.preset);
        if (_presetTo == null)
        {
            _effector.ReserveState("CameraEffectorIdle");
            return;
        }

        if (request.second > 0)
        {
            if ((_presetFrom.blurSize != _presetTo.blurSize) &&
                (_presetFrom.blurEnable != _presetTo.blurEnable))
            {
                _blur.enabled = true;
            }
            if ((_presetFrom.screenSaturation != _presetTo.screenSaturation) ||
                (_presetFrom.chromaticAberrationMagnetude != _presetTo.chromaticAberrationMagnetude) ||
                (_presetFrom.staticMagnetude != _presetTo.staticMagnetude) &&
                (_presetFrom.screenEnable != _presetTo.screenEnable))
            {
                _screen.enabled = true;
            }
            LeanTween.value(_effector.gameObject, 0f, 1f, request.second).setOnUpdate(OnTweenUpdate).setOnComplete(OnTweenComplete);
        }
        else
        {
            OnTweenComplete();
        }
    }
        public virtual void SerializeStatusEffect(StatusEffect status, EffectPreset preset)
        {
            PresetID               = preset?.PresetID ?? -1;
            Identifier             = status.IdentifierName?.Trim();
            IgnoreBuildupIfApplied = status.IgnoreBuildUpIfApplied;
            BuildupRecoverySpeed   = status.BuildUpRecoverSpeed;
            DisplayedInHUD         = status.DisplayInHud;
            IsHidden               = status.IsHidden;
            Lifespan               = status.StatusData.LifeSpan;
            RefreshRate            = status.RefreshRate;
            LengthType             = status.LengthType.ToString();

            ComplicationStatusIdentifier = status.ComplicationStatus?.IdentifierName;
            RequiredStatusIdentifier     = status.RequiredStatus?.IdentifierName;
            RemoveRequiredStatus         = status.RemoveRequiredStatus;
            NormalizeDamageDisplay       = status.NormalizeDamageDisplay;
            IgnoreBarrier = status.IgnoreBarrier;

            GetStatusLocalization(status, out Name, out Description);

            Tags = new List <string>();
            status.InitTags();
            var tags = (TagSource)At.GetField(status, "m_tagSource");

            foreach (var tag in tags.Tags)
            {
                Tags.Add(tag.TagName);

                ListManager.AddTagSource(tag, Name);
            }

            // For existing StatusEffects, the StatusData contains the real values, so we need to SetValue to each Effect.
            var statusData = status.StatusData.EffectsData;
            var components = status.GetComponentsInChildren <Effect>();

            for (int i = 0; i < components.Length; i++)
            {
                var comp = components[i];
                if (comp && comp.Signature.Length > 0)
                {
                    comp.SetValue(statusData[i].Data);
                }
            }

            Effects = new List <DM_EffectTransform>();

            if (status.transform.childCount > 0)
            {
                var signature = status.transform.GetChild(0);
                if (signature)
                {
                    foreach (Transform child in signature.transform)
                    {
                        var effectsChild = DM_EffectTransform.ParseTransform(child);

                        if (effectsChild.ChildEffects.Count > 0 || effectsChild.Effects.Count > 0 || effectsChild.EffectConditions.Count > 0)
                        {
                            Effects.Add(effectsChild);
                        }
                    }
                }
            }
        }