You are on page 1of 5

-- bf and dad health bar

-- made by Held_der_Zeit

nameList = {
-- {"json name", "display name"}
-- not making contained due to possible variants interfering
-- ONLY ADD

{"bf", "BOYFRIEND"},
{"bf-car", "BOYFRIEND"},
{"bf-christmas", "BOYFRIEND"},
{"bf-pixel", "BOYFRIEND"},

{"gf", "GIRLFRIEND"},
{"gf-car", "GIRLFRIEND"},
{"gf-christmas", "GIRLFRIEND"},
{"gf-pixel", "GIRLFRIEND"},

{"dad", "MR. DEAREST"},

{"spooky", "SKID & PUMP"},

{"pico", "PICO"},

{"mom", "MS. MEAREST"},


{"mom-car", "MS. MEAREST"},
{"parents-christmas", "DAD & MOM"},

{"senpai", "SENPAI"},
{"senpai-angry", "SENPAI"},

{"monster", "???"},
{"monster-christmas", "???"},

{"tankman", "CPT. TANKMAN"},

{"bf-holding-gf", "BOYFRIEND & GIRLFRIEND"}


}

---------------------------------------
-- NO CHANGING PAST HERE
---------------------------------------

displayNameBf = "ERROR BF NAME MISSING IT IS A CRITICAL ERROR!"


displayNameDad = "ERROR DAD NAME MISSING IT IS A CRITICAL ERROR!"
-- these should be overridden, if you see that as the name, then you need to add
your character into the list below!

healthBgColor = "222222" --must be in hexadecimal (default: "222222" = dark grey)

function onCreate()
-- y pos for bar
if downscroll then
barY = 80
else
barY = screenHeight - 70
end
bfBarX = screenWidth - 600 -- x pos for bar of bf

dadBarX = 200 -- x pos for bar of dad

iconOffX = 10
iconOffY = 75

textOff = 20 --textOffset Y

borderscale = 0.7
border = 4 * borderscale -- border margin
end

function onCreatePost()

makeLuaSprite("bfBarBorder", "healthBarBorder", bfBarX, barY)


setObjectCamera("bfBarBorder", 'hud')
scaleObject("bfBarBorder", borderscale, borderscale, true)
addLuaSprite("bfBarBorder")

makeLuaSprite("bfBar", null, bfBarX+border, barY+border)


makeGraphic("bfBar", getProperty("bfBarBorder.width")-border,
getProperty("bfBarBorder.height")-border, 'ffffff')
setObjectCamera("bfBar", 'hud')
addLuaSprite("bfBar")
-- setProperty("bfBar.angularVelocity", 10)
-- setProperty("bfBar.angle", 180)

--scaleObject("bfBar", 0.5, 1, true)

--setProperty("bfBar.origin.x", bfBarX+getProperty("bfBarBorder.width")-border)
--setProperty("bfBar.flipX", true)

--setProperty("camHUD.zoom", 0.5)

-- makeLuaSprite("originBF", null, getProperty("bfBar.origin.x"),


getProperty("bfBar.origin.y"))
-- makeGraphic("originBF", 10, 10, 'ffffff')
-- addLuaSprite("originBF", false)
-- setObjectCamera("originBF", 'hud')

makeLuaSprite("dadBarBorder", "healthBarBorder", dadBarX, barY)


setObjectCamera("dadBarBorder", 'hud')
scaleObject("dadBarBorder", borderscale, borderscale, true)
addLuaSprite("dadBarBorder")

makeLuaSprite("dadBar", null, dadBarX+border, barY+border)


makeGraphic("dadBar", getProperty("dadBarBorder.width")-border,
getProperty("dadBarBorder.height")-border, 'ffffff')
setObjectCamera("dadBar", 'hud')
addLuaSprite("dadBar")

-- version checker (compatability for older version of psych)


-- hiding og hud
--if stringStartsWith(version, "0.7") then
--debugPrint("newVersion")
setObjectOrder("bfBar", getObjectOrder("bfBarBorder")-1)

makeLuaSprite("bfBarBg", null, bfBarX, barY)


makeGraphic("bfBarBg", getProperty("bfBarBorder.width"),
getProperty("bfBarBorder.height"), healthBgColor)
setObjectOrder("bfBarBg", getObjectOrder("bfBarBorder")-2)
setObjectCamera("bfBarBg", 'hud')
--scaleObject("bfBarBg", 0.7, 0.7, true)
addLuaSprite("bfBarBg")

setObjectOrder("dadBar", getObjectOrder("dadBarBorder")-1)

makeLuaSprite("dadBarBg", null, dadBarX, barY)


makeGraphic("dadBarBg", getProperty("dadBarBorder.width"),
getProperty("dadBarBorder.height"), healthBgColor)
setObjectOrder("dadBarBg", getObjectOrder("dadBarBorder")-2)
setObjectCamera("dadBarBg", 'hud')
--scaleObject("dadBarBg", 0.7, 0.7, true)
addLuaSprite("dadBarBg")
--end

setProperty("healthBar.alpha", 0)
setProperty("healthBarBg.alpha", 0)
--setProperty("scoreTxt.alpha", 0)

--setProperty("iconP1.alpha", 0)
--setProperty("iconP2.alpha", 0)

getDisplayNames()

makeLuaText("displayBoy", displayNameBf, getProperty("bfBarBorder.width") -


border*2, bfBarX, barY - border - textOff)
setTextAlignment("displayBoy", 'right')
addLuaText("displayBoy")

makeLuaText("displayDad", displayNameDad, getProperty("dadBarBorder.width") -


border*2, dadBarX, barY - border - textOff)
setTextAlignment("displayDad", 'left')
addLuaText("displayDad")

updateHealthBarColors()

-- bfBarFull = getProperty("bfBar.width")
-- debugPrint(bfBarFull)
end

function onSongStart()
setProperty("healthBar.visible", false)
setProperty("healthBarBg.visible", false)
end

function onUpdatePost(elapsed)
hpBf = getHealth()
hpDad = 2 - getHealth()

scaleObject("bfBar", hpBf/2, 1, true)


--setProperty("bfBar.scale.x", (bfBarFull / 2) * (hpBf/2))
--updateHitbox("bfBar")
--debugPrint(bfBarFull .. " - " .. (bfBarFull / 2) * hpBf)
scaleObject("dadBar", hpDad/2, 1, true)

--keeping icons where they are


setProperty("iconP1.x", bfBarX + getProperty("bfBarBorder.width") + iconOffX)
setProperty("iconP1.y", barY - iconOffY)

setProperty("iconP2.x", dadBarX - iconOffX*15)


setProperty("iconP2.y", barY - iconOffY)

--getDisplayNames()

end

function rgbToHex(r, g, b)
--%02x: 0 means replace " "s with "0"s, 2 is width, x means hex
return string.format("%02x%02x%02x",
math.floor(r),
math.floor(g),
math.floor(b))
end

function onEvent(name, value1, value2, strumTime)


if name == "Change Character" then
updateHealthBarColors()
getDisplayNames()
end
end

function updateHealthBarColors()
dadColor = getProperty("dad.healthColorArray")
dadHexColor = rgbToHex(dadColor[1], dadColor[2], dadColor[3])

bfColor = getProperty("boyfriend.healthColorArray")
bfHexColor = rgbToHex(bfColor[1], bfColor[2], bfColor[3])

doTweenColor("boyColorTween", "bfBar", bfHexColor, 0.01, "linear")


doTweenColor("dadColorTween", "dadBar", dadHexColor, 0.01, "linear")
-- setProperty("bfBar.color", bfHexColor)
-- setProperty("dadBar.color", dadHexColor)
end

function getDisplayNames()
-- directly taken from 'Mc Madness V1.1 DEMO/mods/scripts/hudStuff.lua' :p

for i = 0,#nameList-1 do
if nameList[i+1][1] == dadName then
displayNameDad = nameList[i+1][2]
end
if nameList[i+1][1] == boyfriendName then
displayNameBf = nameList[i+1][2]
end
end

setTextString("displayBoy", displayNameBf)
setTextString("displayDad", displayNameDad)
end

You might also like