using GCGame.Table;
using UnityEngine;

/// <summary>
///     模型材质属性相关修改
///     Effect.txt 表格扩展参数说明
///     Param1 :EffectParam.txt中id值  身体材质属性相关配置
///     Param2 :EffectParam.txt中id值  右武器材质属性相关配置
///     Param3 :EffectParam.txt中id值  左武器材质属性相关配置
///     Param4 :EffectParam.txt中id值  预留参数
/// 
///     EffectParams 参考ChangeMatPro
/// </summary>
public class Impact_ModeMatPro : ImpactEffectBase
{
    private ChangeMatPro _materialPropertyMod;
    public override EffectLogic.EffectType ImpactEffectType
    {
        get { return EffectLogic.EffectType.TYPE_CHANGMATPRO; }
    }

    public override void StartEffect()
    {
        base.StartEffect();
        if (objCharacter != null && Data != null)
        {
            var paramid = Data.GetParamValuebyIndex(bodyPart);
            var param = TableManager.GetEffectParamByID(paramid, 0);
            if (param != null && _materialPropertyMod == null)
            {
                _materialPropertyMod = new ChangeMatPro(objCharacter, BodyToModelPart(bodyPart), param);
                _materialPropertyMod.Start(param, Data.Duration);
            }
        }
    }

    public override void StopEffect()
    {
        base.StopEffect();
        if (_materialPropertyMod != null)
            _materialPropertyMod.StopEffect();
    }

    protected override void UpdateInherited()
    {
        if (_materialPropertyMod != null)
            _materialPropertyMod.OnUpdate();
    }
}