mirror of
https://github.com/bombsquad-community/plugin-manager.git
synced 2025-10-08 14:54:36 +00:00
Added health Indicator mod
ver 1.2
This commit is contained in:
parent
617e75c0bf
commit
61b351ce07
1 changed files with 79 additions and 0 deletions
79
plugins/utilities/health_indicator.py
Normal file
79
plugins/utilities/health_indicator.py
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
"""Health Indicator mod v1.2
|
||||
Made by Cross Joy
|
||||
For 1.7.20+"""
|
||||
|
||||
# ----------------------
|
||||
# v1.2 update
|
||||
# Enhance compatibility with other mods.
|
||||
# Fixed the health is not displaying accurately.
|
||||
# ----------------------
|
||||
|
||||
# You can contact me through discord:
|
||||
# My Discord Id: Cross Joy#0721
|
||||
# My BS Discord Server: https://discord.gg/JyBY6haARJ
|
||||
|
||||
# Add a simple health indicator on every player and bot.
|
||||
|
||||
# ba_meta require api 8
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import babase
|
||||
import bascenev1lib.actor.spaz
|
||||
from bascenev1lib.actor.spaz import Spaz
|
||||
import bascenev1 as bs
|
||||
import bascenev1lib
|
||||
|
||||
|
||||
def new_init_spaz_(func):
|
||||
def wrapper(*args, **kwargs):
|
||||
func(*args, **kwargs)
|
||||
m = bs.newnode('math',
|
||||
owner=args[0].node,
|
||||
attrs={'input1': (0, 0.7, 0),
|
||||
'operation': 'add'})
|
||||
args[0].node.connectattr('position', m, 'input2')
|
||||
args[0]._hitpoint_text = bs.newnode(
|
||||
'text',
|
||||
owner=args[0].node,
|
||||
attrs={'text': "\ue047" + str(args[0].hitpoints),
|
||||
'in_world': True,
|
||||
'shadow': 1.0,
|
||||
'flatness': 1.0,
|
||||
'color': (1, 1, 1),
|
||||
'scale': 0.0,
|
||||
'h_align': 'center'})
|
||||
m.connectattr('output', args[0]._hitpoint_text, 'position')
|
||||
bs.animate(args[0]._hitpoint_text, 'scale', {0: 0.0, 1.0: 0.01})
|
||||
|
||||
return wrapper
|
||||
|
||||
|
||||
def new_handlemessage_spaz_(func):
|
||||
def wrapper(*args, **kwargs):
|
||||
def update_hitpoint_text(spaz):
|
||||
spaz._hitpoint_text.text = "\ue047" + str(spaz.hitpoints)
|
||||
r = spaz.hitpoints / 1000
|
||||
spaz._hitpoint_text.color = (1, r, r, 1)
|
||||
|
||||
func(*args, **kwargs)
|
||||
if isinstance(args[1], bs.PowerupMessage):
|
||||
if args[1].poweruptype == 'health':
|
||||
update_hitpoint_text(args[0])
|
||||
if isinstance(
|
||||
args[1], bs.HitMessage) or isinstance(
|
||||
args[1], bs.ImpactDamageMessage):
|
||||
update_hitpoint_text(args[0])
|
||||
|
||||
return wrapper
|
||||
|
||||
|
||||
# ba_meta export plugin
|
||||
class ByCrossJoy(babase.Plugin):
|
||||
|
||||
def __init__(self):
|
||||
pass
|
||||
|
||||
def on_app_running(self) -> None:
|
||||
Spaz.__init__ = new_init_spaz_(Spaz.__init__)
|
||||
Spaz.handlemessage = new_handlemessage_spaz_(Spaz.handlemessage)
|
||||
Loading…
Add table
Add a link
Reference in a new issue