using UnityEngine;
using UnityEngine.UI;

// basic api routing experiment
class MultiGraphic : Graphic {
    public Graphic[] Graphics;

    public override bool IsActive() {
        return false;
    }

    public override void CrossFadeColor(Color targetColor, float duration, bool ignoreTimeScale, bool useAlpha) {
        base.CrossFadeColor(targetColor, duration, ignoreTimeScale, useAlpha);
        
        foreach (var graphic in Graphics) {
            graphic.CrossFadeColor(targetColor, duration, ignoreTimeScale, useAlpha);
        }
    }

    public override void CrossFadeAlpha(float alpha, float duration, bool ignoreTimeScale) {
        base.CrossFadeAlpha(alpha, duration, ignoreTimeScale);
        
        foreach (var graphic in Graphics) {
            graphic.CrossFadeAlpha(alpha, duration, ignoreTimeScale);
        }
    }

    public override void CrossFadeColor(Color targetColor, float duration, bool ignoreTimeScale, bool useAlpha, bool useRGB) {
        base.CrossFadeColor(targetColor, duration, ignoreTimeScale, useAlpha, useRGB);
        
        foreach (var graphic in Graphics) {
            graphic.CrossFadeColor(targetColor, duration, ignoreTimeScale, useAlpha, useRGB);
        }
    }
}