Jump to content

The Bart's Nightmare Lifebars Project


Recommended Posts

Hello! I come here to release some sort of compatibility add-on thingy, I am not sure if this is the appropiate section so move it if you want.

ZZgonX.gif

These lifebars is the thing I wanted to show and share, basically they are some sort of fun and quirky lifebar that I recreated from the game Bart's Nightmare into MUGEN just for fun, included in the file there will be the files necessary, they use the following sprite groups: 31223, 31224 and 31230.

If you do want to add these lifebars into your MUGEN characters (essentially, be compatible with this lifebar thingamajic) You should add this code:

;BAET LIFEBAR
[Statedef 3563200]
type = A
physics = N
velset = 0,0
movetype = I
anim = 0
[State No]
type = NotHitBy
trigger1 = 1
value = SCA
[State No]
type = AssertSpecial
trigger1 = 1
flag = nobardisplay
[State No]
type = AssertSpecial
trigger1 = 1
flag = invisible
[State 0, PalFXWiz]
type = PalFX
trigger1 = 1
time = 2
add = 256,256,256
mul = 256,0,0
sinadd = 0,0,0,1
invertall = 0
color = 256
[State Get P1 Life]
type = VarSet
trigger1 = !Time
v = 3
value = 35
[State Get P1 Life]
type = VarSet
trigger1 = !Time
v = 9
value = 35
[State Get P1 Life]
type = VarSet
trigger1 = !Time
v = 0
value = root,life
[State Get P1 Power]
type = VarSet
trigger1 = !Time
v = 1
value = root,power
[State Reset Time from successful hit]
type = VarSet
trigger1 = !time
trigger2 = root,movetype != H
v = 10
value = 0
[State Time from recovery]
type = VarSet
trigger1 = !time
trigger2 = root,movetype = H && var(11)>2
v = 11
value = 0
[State Huge Damage Sound]
type = PlaySnd
trigger1 = var(0)-root,life >= lifemax/6
value = S24795,1582
abspan = 0
channel = 5

[State Decrease current damage]
type = VarAdd
triggerall = time%4=0
trigger1 = (var(9)!=var(2)) && (root,movetype != H || root,ctrl) && var(11) >= 1 ;emulate a bit of MUGEN's innacuracy
trigger1 = var(9)=[0,35]
v = 9
value = ifelse(var(9)>var(2),-(var(9)>0),(var(9)<35))
[State Find current index for the sprite (0-35)]
type = VarSet
trigger1 = 1
v = 2
value = ifelse(var(0)>=root,lifemax,0,ifelse(var(0)<=0,35,35-ceil(35*var(0)/(root,lifemax/1.0))))
[State Reset Shit]
type = VarSet
trigger1 = var(10) = 0 && root,movetype = H && var(11) >= 1
var(9) = (var(2))

[State Reset Shit]
type = VarAdd
trigger1 = root,stateno=5150 && var(9)<35 && time%4=0
var(9) = 1
[State Try catching it]
type = VarAdd
triggerall = time%4=0
trigger1 = var(2)!=var(3)
v = 3
value = ifelse(var(2)>var(3),1,-1)
[State if updated]
type = RemoveExplod
triggerall = numexplod(3563200)
trigger1 = time%4=0;var(2)!=var(3)
id = 3563200
[State if updated]
type = RemoveExplod
triggerall = numexplod(3563201)
trigger1 = time%4=0
id = 3563201
;anim = 3563200+var(3)
[State if updated]
type = RemoveExplod
trigger1 = time%16=0
id = 3563202
[State if updated]
type = RemoveExplod
triggerall = numexplod(3563203)
trigger1 = time%16=0
id = 3563203
[State if updated]
type = RemoveExplod
triggerall = numexplod(3563206)
trigger1 = time%4=0
id = 3563206
[State Find current index for power number]
type = VarSet
trigger1 = 1
v = 4
value = var(1)/1000
[State 0, PlaySnd]
type = PlaySnd
triggerall = time%16=0
trigger1 = var(4)>var(5)
value = S24795,1580
abspan = 0
channel = 5
[State Try catching it]
type = VarAdd
triggerall = time%16=0
trigger1 = var(4)!=var(5)
v = 5
value = ifelse(var(4)>var(5),1,-1)
[State Try catching it]
type = PlaySnd
triggerall = time%2=0
triggerall = var(7)>=root,powermax
trigger1 = var(7)!=var(8)
value = S24795,1581
abspan = 0
channel = 5
[State Try catching it]
type = VarSet
trigger1 = time%2=0
var(8)=var(7)
[State Find Difference]
type = VarSet
trigger1 = 1
v = 6
value = root,power
[State Try catching it]
type = VarAdd
triggerall = time%2=0
trigger1 = var(6)!=var(7)
v = 7
value = ifelse(var(6)>var(7),1,-1)*ifelse(abs(var(6)-var(7))>10,floor((abs(var(6)-var(7))**0.65)),1)

[State 0, ModifyExplod]
type = ModifyExplod
trigger1 = numexplod(3563205)
ID = 3563205
pos = ifelse(teamside=1,ceil(const240p(67))+ceil(const240p(floor(44*(var(7)%1000)/1000.0))),ceil(GameWidth)-ceil(const240p(67))-ceil(const240p(floor(44*(var(7)%1000)/1000.0)))),ceil(const240p(50))
postype = left
[State Damage Bar]
type = Explod
trigger1 = !numexplod(3563206)
anim = 3563200+var(9)
ID = 3563206
pos = ifelse(teamside=1,ceil(const240p(32)),ceil(GameWidth)-ceil(const240p(32))),ceil(const240p(28))
postype = left
facing = 1-(Teamside=2)*2
vfacing = 1
bindtime = -1
removetime = -1
pausemovetime = 9999999
supermovetime = 9999999
scale = ceil(const240p(2)),ceil(const240p(2))
sprpriority = 98
ownpal = 0
removeongethit = 0
[State Make face]
type = Explod
trigger1 = !numexplod(3563200)
anim = 3563250+(var(3)>=6)+(var(3)>=12)+(var(3)>=18)+(var(3)>=24)+(var(3)>=30)
ID = 3563200
pos = ifelse(teamside=1,ceil(const240p(32)),ceil(GameWidth)-ceil(const240p(32))),ceil(const240p(28))
postype = left
facing = 1-(Teamside=2)*2
vfacing = 1
bindtime = -1
removetime = -1
pausemovetime = 9999999
supermovetime = 9999999
scale = 1,1;ceil(const240p(2)),ceil(const240p(2))
sprpriority = 99
ownpal = 1
removeongethit = 0
[State Make bar]
type = Explod
trigger1 = !numexplod(3563201)
anim = 3563200+var(3)
ID = 3563201
pos = ifelse(teamside=1,ceil(const240p(32)),ceil(GameWidth)-ceil(const240p(32))),ceil(const240p(28))
postype = left
facing = 1-(Teamside=2)*2
vfacing = 1
bindtime = -1
removetime = -1
pausemovetime = 9999999
supermovetime = 9999999
scale = ceil(const240p(2)),ceil(const240p(2))
sprpriority = 99
ownpal = 1
removeongethit = 0
[State Make Digit1]
type = Explod
trigger1 = !numexplod(3563202)
anim = 3563240+ifelse(var(5)>=99,9,var(5)/10)
ID = 3563202
pos = ifelse(teamside=1,ceil(const240p(67)),ceil(GameWidth)-ceil(const240p(95))),ceil(const240p(16))
postype = left
facing = 1
vfacing = 1
bindtime = -1
removetime = -1
pausemovetime = 9999999
supermovetime = 9999999
scale = ceil(const240p(2)),ceil(const240p(2))
sprpriority = 99
ownpal = 1
removeongethit = 0
[State Make Digit2]
type = Explod
trigger1 = !numexplod(3563203)
anim = 3563240+ifelse(var(5)>=99,9,var(5)-ifelse(var(5)>9,10*(var(5)/10),0))
ID = 3563203
pos = ifelse(teamside=1,ceil(const240p(83)),ceil(GameWidth)-ceil(const240p(79))),ceil(const240p(16))
postype = left
facing = 1
vfacing = 1
bindtime = -1
removetime = -1
pausemovetime = 9999999
supermovetime = 9999999
scale = ceil(const240p(2)),ceil(const240p(2))
sprpriority = 99
ownpal = 1
removeongethit = 0
[State Make Power Gauger]
type = Explod
trigger1 = !numexplod(3563205)
anim = 3563237
ID = 3563205
pos = ifelse(teamside=1,ceil(const240p(67)),ceil(GameWidth)-ceil(const240p(111))),ceil(const240p(50))
postype = left
facing = 1
vfacing = 1
bindtime = -1
removetime = -1
pausemovetime = 9999999
supermovetime = 9999999
scale = ceil(const240p(1)),ceil(const240p(1))
sprpriority = 99
ownpal = 1
removeongethit = 0
[State Make Power Bar]
type = Explod
trigger1 = !numexplod(3563204)
anim = 3563236
ID = 3563204
pos = ifelse(teamside=1,ceil(const240p(67)),ceil(GameWidth)-ceil(const240p(67))),ceil(const240p(50))
postype = left
facing = 1-(Teamside=2)*2
vfacing = 1
bindtime = -1
removetime = -1
pausemovetime = 9999999
supermovetime = 9999999
scale = ceil(const240p(1)),ceil(const240p(1))
sprpriority = 99
ownpal = 1
removeongethit = 0

[State Update stuff]
type = VarSet
trigger1 = 1
v = 0
value = root,life
[State Update stuff]
type = VarSet
trigger1 = 1
v = 1
value = root,power
[State Time from successful hit goes up]
type = VarAdd
trigger1 = root,movetype = H
v = 10
value = 1
[State Time from recovery]
type = VarAdd
trigger1 = root,movetype != H || root,ctrl
v = 11
value = 1

And then add in statedef -3:

;;;;;Life Meter by Daniel9999999;;;;;
[State Make lifebar]
type = Helper
;Bar Exists
triggerall = enemy,animexist(3563200)&&enemy,animexist(3563201)&&enemy,animexist(3563202)&&enemy,animexist(3563203)
triggerall = enemy,animexist(3563204)&&enemy,animexist(3563205)&&enemy,animexist(3563206)&&enemy,animexist(3563207)
triggerall = enemy,animexist(3563208)&&enemy,animexist(3563209)&&enemy,animexist(3563210)&&enemy,animexist(3563211)
triggerall = enemy,animexist(3563212)&&enemy,animexist(3563213)&&enemy,animexist(3563214)&&enemy,animexist(3563215)
triggerall = enemy,animexist(3563216)&&enemy,animexist(3563217)&&enemy,animexist(3563218)&&enemy,animexist(3563219)
triggerall = enemy,animexist(3563220)&&enemy,animexist(3563221)&&enemy,animexist(3563222)&&enemy,animexist(3563223)
triggerall = enemy,animexist(3563224)&&enemy,animexist(3563225)&&enemy,animexist(3563226)&&enemy,animexist(3563227)
triggerall = enemy,animexist(3563228)&&enemy,animexist(3563229)&&enemy,animexist(3563230)&&enemy,animexist(3563231)
triggerall = enemy,animexist(3563232)&&enemy,animexist(3563233)&&enemy,animexist(3563234)&&enemy,animexist(3563235)
triggerall = enemy,animexist(3563236)&&enemy,animexist(3563237)
;numbers exist
triggerall = enemy,animexist(3563240)&&enemy,animexist(3563241)&&enemy,animexist(3563242)&&enemy,animexist(3563243)
triggerall = enemy,animexist(3563244)&&enemy,animexist(3563245)&&enemy,animexist(3563246)&&enemy,animexist(3563247)
triggerall = enemy,animexist(3563248)&&enemy,animexist(3563249)
;faces exists
triggerall = enemy,animexist(3563250)&&enemy,animexist(3563251)&&enemy,animexist(3563252)&&enemy,animexist(3563253)
triggerall = enemy,animexist(3563254)&&enemy,animexist(3563255)
;not simul mode.
triggerall = enemy,teammode != Simul || teammode != Simul
trigger1 = !Numhelper(3563200)
helpertype = normal ;player
name = "Life-o-Meter"
ID = 3563200
stateno = 3563200
pos = -9000,-9000
postype = p1
facing = 1
keyctrl = 0
ownpal = 1
supermovetime = 99999999
pausemovetime = 99999999
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

After adding the code into your character, it's time to add the rest of the resources, first, to add the sprites you need, import the groups 31223 and 31224 (in fighter factory, go to Project > New > Empty > Character, then go to Sprite > Open and find the sprite file for this thing, then open the air file in the Animations tab, and then the SND file (if you wish to add the lifebar sounds)), then add the animations into your character(s) (via text mode or importing), and then the sounds (via importing).

After all that's done, if you wish to add some face portraits like Lilith there, you can use the sprite 31223,66 included as a template, and thus, crop some facial expressions for your character, and even your own! Remember it's 6, one for each health tier.

Why did I share this?

You might be thinking, MUGEN's lifebars are fine, why are you doing this? Well I wanted to just make a little thingy in the mean time that I can use in my MUGEN vids and I wanted to share my work as well, besides I'm wondering if you guys will make some stuff for this, it's not very hard to implement other than just using fighter factory's importing features and voila. You can even change the palettes for the lifebar to suit your fancy, so go crazy!

Welp, here are the files:

http://www.mediafire.com/download/d9n4h9xbwe15qsv/lifebar_baetnitemare.zip

Have fun!

Link to comment
Share on other sites

I don't really like custom stuff, but this is just amazing looking. I always really did like Bart's lifebar reactions in Nightamare and Virtual. I might create a mini roster just to goof around with this. Does it work with all Mugen versions?

Any reason on why it's called Baet Nitemare, though?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...