[–] 2 points 2 years ago (2 children)

No offense but this is a bad take. They didn't normalize DRM. DRM was a thing before steam was around. And DRM companies like Denuvo are going to Game Devs and Publishers to sell them their DRM, not steam.

You're mad at the wrong company.

  • source
  • parent
  • context
  •  

    This script renders a window with stats to the player as they play. Can someone help me increase the size of the window slightly and the font size? I have attempted a few parameters with no luck

    local messages = {}
    local glitter = {}
    local glitterCount = 0
    
    function addMessage(text, mood)
      for i = math.min(#messages + 1, 4), 2, -1 do
        messages[i] = messages[i - 1]
        messages[i].targetPos = i
      end
      messages[1] = { text = text, age = 0, targetPos = 1, currentPos = 1, mood = mood }
      if mood == 1 then
        for i = 1, 60 do
          local dir = vec2(math.random() - 0.5, math.random() - 0.5)
          glitterCount = glitterCount + 1
          glitter[glitterCount] = { 
            color = rgbm.new(hsv(math.random() * 360, 1, 1):rgb(), 1), 
            pos = vec2(80, 140) + dir * vec2(40, 20),
            velocity = dir:normalize():scale(0.2 + math.random()),
            life = 0.5 + 0.5 * math.random()
          }
        end
      end
    end
    
    local function updateMessages(dt)
      comboColor = comboColor + dt * 10 * comboMeter
      if comboColor > 360 then comboColor = comboColor - 360 end
      for i = 1, #messages do
        local m = messages[i]
        m.age = m.age + dt
        m.currentPos = math.applyLag(m.currentPos, m.targetPos, 0.8, dt)
      end
      for i = glitterCount, 1, -1 do
        local g = glitter[i]
        g.pos:add(g.velocity)
        g.velocity.y = g.velocity.y + 0.02
        g.life = g.life - dt
        g.color.mult = math.saturate(g.life * 4)
        if g.life < 0 then
          if i < glitterCount then
            glitter[i] = glitter[glitterCount]
          end
          glitterCount = glitterCount - 1
        end
      end
      if comboMeter > 10 and math.random() > 0.98 then
        for i = 1, math.floor(comboMeter) do
          local dir = vec2(math.random() - 0.5, math.random() - 0.5)
          glitterCount = glitterCount + 1
          glitter[glitterCount] = { 
            color = rgbm.new(hsv(math.random() * 360, 1, 1):rgb(), 1), 
            pos = vec2(195, 75) + dir * vec2(40, 20),
            velocity = dir:normalize():scale(0.2 + math.random()),
            life = 0.5 + 0.5 * math.random()
          }
        end
      end
    end
    
    local speedWarning = 0
    function script.drawUI()
      local uiState = ac.getUiState()
      updateMessages(uiState.dt)
    
      local speedRelative = math.saturate(math.floor(ac.getCarState(1).speedKmh) / requiredSpeed)
      speedWarning = math.applyLag(speedWarning, speedRelative < 1 and 1 or 0, 0.5, uiState.dt)
    
      local colorDark = rgbm(0.4, 0.4, 0.4, 1)
      local colorGrey = rgbm(0.7, 0.7, 0.7, 1)
      local colorAccent = rgbm.new(hsv(speedRelative * 120, 1, 1):rgb(), 1)
      local colorCombo = rgbm.new(hsv(comboColor, math.saturate(comboMeter / 10), 1):rgb(), math.saturate(comboMeter / 4))
    
      local function speedMeter(ref)
        ui.drawRectFilled(ref + vec2(0, -4), ref + vec2(180, 5), colorDark, 1)
        ui.drawLine(ref + vec2(0, -4), ref + vec2(0, 4), colorGrey, 1)
        ui.drawLine(ref + vec2(requiredSpeed, -4), ref + vec2(requiredSpeed, 4), colorGrey, 1)
    
        local speed = math.min(ac.getCarState(1).speedKmh, 180)
        if speed > 1 then
          ui.drawLine(ref + vec2(0, 0), ref + vec2(speed, 0), colorAccent, 4)
        end
      end
    
      ui.beginTransparentWindow('overtakeScore', vec2(uiState.windowSize.x * 0.5 - 600, 100), vec2(400, 400))
      ui.beginOutline()
    
      ui.pushStyleVar(ui.StyleVar.Alpha, 1 - speedWarning)
      ui.pushFont(ui.Font.Title)
      ui.text('Overtake Run')
      ui.popFont()
      ui.popStyleVar()
      ui.TextScaled(5)
      ui.TextSize(30)
    
      ui.pushFont(ui.Font.Huge)
      ui.text(totalScore .. ' pts')
      ui.sameLine(0, 40)
      ui.beginRotation()
      ui.textColored(math.ceil(comboMeter * 10) / 10 .. 'x', colorCombo)
      if comboMeter > 20 then
        ui.endRotation(math.sin(comboMeter / 180 * 3141.5) * 3 * math.lerpInvSat(comboMeter, 20, 30) + 90)
      end
      ui.popFont()
      ui.endOutline(rgbm(0, 0, 0, 0.3))
      
      ui.offsetCursorY(20)
      ui.pushFont(ui.Font.Title)
      local startPos = ui.getCursor()
      for i = 1, #messages do
        local m = messages[i]
        local f = math.saturate(4 - m.currentPos) * math.saturate(8 - m.age)
        ui.setCursor(startPos + vec2(20 + math.saturate(1 - m.age * 10) ^ 2 * 100, (m.currentPos - 1) * 30))
        ui.textColored(m.text, m.mood == 1 and rgbm(0, 1, 0, f) 
          or m.mood == -1 and rgbm(1, 0, 0, f) or rgbm(1, 1, 1, f))
      end
      for i = 1, glitterCount do
        local g = glitter[i]
        if g ~= nil then
          ui.drawLine(g.pos, g.pos + g.velocity * 4, g.color, 2)
        end
      end
      ui.popFont()
      ui.setCursor(startPos + vec2(0, 4 * 30))
    
      ui.pushStyleVar(ui.StyleVar.Alpha, speedWarning)
      ui.setCursorY(0)
      ui.pushFont(ui.Font.Main)
      ui.textColored('Keep speed above '..requiredSpeed..' km/h:', colorAccent)
      speedMeter(ui.getCursor() + vec2(-9, 4))
      ui.popFont()
      ui.popStyleVar()
    
      ui.endTransparentWindow()
    end
    
    view more: next ›