diff --git a/common/data/color.go b/common/data/color.go index db86d2d8b..5e73a9da4 100644 --- a/common/data/color.go +++ b/common/data/color.go @@ -1,5 +1,7 @@ package data +import "github.com/gogf/gf/v2/util/grand" + // 1. 质量枚举常量(保持不变) const ( BitmapFilterQualityLow = 1 // LOW:应用1次滤镜 @@ -20,23 +22,33 @@ const ( colorMax = 0xFFFFFF // 颜色值最大值(0xRRGGBB) ) -// GlowFilterDefault 默认值:与目标JSON完全匹配的常量 -var GlowFilterDefault = GlowFilter{ - Color: 16777215, // 0xFFFFFF(对应JSON的color:16777215) - Alpha: 0.8, // 对应JSON的alpha:0.8 - BlurX: 10, // 对应JSON的blurX:10 - BlurY: 10, // 对应JSON的blurY:10 - Strength: 8, // 对应JSON的strength:8 - Quality: 2, // 对应JSON的quality:2 - Inner: true, // 对应JSON的inner:true - Knockout: false, // 无JSON值,默认false - ColorMatrixFilter: [20]float32{1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0}, // 对应JSON的matrix数组 - Level: 1, // 对应JSON的level:"1"(转uint8) +func GetDef() GlowFilter { + + ret := GlowFilter{ + // Color: 16777215, // 0xFFFFFF(对应JSON的color:16777215) + Alpha: 0.1, // 光圈大小,透明度 + BlurX: 8, // 局外光圈大小 + BlurY: 8, // 局外光圈大小 + Strength: 8, // 颜色对比度 + Quality: 1, // 背包内光圈大小 + Inner: true, // 对应JSON的inner:true + Knockout: false, // 无JSON值,默认false + ColorMatrixFilter: [20]float32{1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0}, // 对应JSON的matrix数组 + Level: 2, // 对应JSON的level:"1"(转uint8) + } + ret.Color = RandomRGBToUint32() + return ret } -func GetDef() GlowFilter { - return GlowFilterDefault +// RandomRGBToUint32 生成随机RGB颜色并转为uint32(格式:0x00RRGGBB,最高8位留空) +func RandomRGBToUint32() uint32 { + // 生成0-255的随机R/G/B分量 + r := uint32(grand.Intn(256)) + g := uint32(grand.Intn(256)) + b := uint32(grand.Intn(256)) + // 位拼接:R左移16位,G左移8位,B不位移,组合成uint32 + return (r << 16) | (g << 8) | b } // 精灵加shinylen字段 diff --git a/modules/config/service/shiny.go b/modules/config/service/shiny.go index c344aaa23..bafde121f 100644 --- a/modules/config/service/shiny.go +++ b/modules/config/service/shiny.go @@ -71,10 +71,10 @@ func (s *ShinyService) RandShiny(id uint32) *data.GlowFilter { if len(ret) == 0 { return nil } - r := model.GenerateRandomOffspringMatrix() + var t = data.GetDef() - t.ColorMatrixFilter = r.Get() + t.ColorMatrixFilter = model.GenerateRandomOffspringMatrix().Get() return &t }