forked from CaptainKirb49/Forever-Engine-Reboot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
FixLater-HealthIcon.hx
92 lines (73 loc) · 2.28 KB
/
FixLater-HealthIcon.hx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
//Fix Later...
//Taken from Forever Engine Feather, edited accordingly. Shoutouts to BeastlyGhost.
package gameObjects.userInterface;
import flixel.FlxSprite;
import flixel.graphics.FlxGraphic;
import flixel.math.FlxMath;
import sys.FileSystem;
class HealthIcon extends FlxSprite
{
// rewrite using da new icon system as ninjamuffin would say it
public var sprTracker:FlxSprite;
public var initialWidth:Float = 0;
public var initialHeight:Float = 0;
public var canBounce:Bool = true;
public var suffix:String = '';
public function new(char:String = 'bf', isPlayer:Bool = false)
{
super();
updateIcon(char, isPlayer);
}
override function update(elapsed:Float)
{
super.update(elapsed);
if (sprTracker != null)
setPosition(sprTracker.x + sprTracker.width + 10, sprTracker.y - 30);
}
public dynamic function updateAnim(health:Float)
{
if (frames.frames.length >= 3 && health > 80)
animation.curAnim.curFrame = 2;
if (health < 20)
animation.curAnim.curFrame = 1;
else
animation.curAnim.curFrame = 0;
}
public function bop(framerate:Float)
{
if (!canBounce)
return;
var iconLerp = 1 - Main.framerateAdjust(framerate);
scale.set(FlxMath.lerp(1, scale.x, iconLerp), FlxMath.lerp(1, scale.y, iconLerp));
updateHitbox();
}
public function updateIcon(char:String = 'bf', isPlayer:Bool = false)
{
var trimmedChar:String = char;
if (trimmedChar.contains('-'))
trimmedChar = trimmedChar.substring(0, trimmedChar.indexOf('-'));
//screw this code
//never mind i have to re-add it :sob:
var iconPath = char;
if (!FileSystem.exists(Paths.getPath('images/icons/icon-' + iconPath + '.png', IMAGE)))
{
if (iconPath != trimmedChar)
iconPath = trimmedChar;
else
iconPath = 'face';
}
antialiasing = true;
var iconGraphic:FlxGraphic = Paths.image('images/icons/');
var iconWidth:Int = 1;
loadGraphic(iconGraphic); // get file size;
// icons with endless frames;
iconWidth = Std.int(iconGraphic.width / 150) - 1;
iconWidth = iconWidth + 1;
loadGraphic(iconGraphic, true, Std.int(iconGraphic.width / iconWidth), iconGraphic.height); // then load it;
initialWidth = width;
initialHeight = height;
animation.add('icon', [for (i in 0...frames.frames.length) i], 0, false, isPlayer);
animation.play('icon');
scrollFactor.set();
}
}