ui/DiseaseSprite.razor
@using Sandbox
@using Sandbox.UI
@using System
@namespace Facepunch.BombRoyale
@attribute [StyleSheet( "DiseaseSprite.razor.scss" )]
@inherits PanelComponent
<root>
<div class="icon"></div>
</root>
@code
{
private Player Player { get; set; }
public static DiseaseSprite Create( Player player )
{
var go = new GameObject();
go.Components.Create<Sandbox.WorldPanel>();
go.Name = "Disease";
var sprite = go.Components.Create<DiseaseSprite>();
sprite.Player = player;
return sprite;
}
protected override void OnFixedUpdate()
{
if ( Player.IsValid() && Player.LifeState == LifeState.Alive )
{
var transform = Transform.World;
var position = Player.WorldPosition + Vector3.Up * 80f;
var direction = (Scene.Camera.WorldPosition - position).Normal;
var targetRotation = Rotation.LookAt( direction );
WorldPosition = position;
WorldRotation = targetRotation;
transform.Scale = 0.9f + (0.1f + (MathF.Cos( Time.Now * 4f ) * 0.1f));
Transform.World = transform;
}
else
{
GameObject.Destroy();
}
base.OnFixedUpdate();
}
}