mirror of
https://github.com/Phantop/LADXHD.git
synced 2024-11-01 04:14:22 +00:00
57 lines
1.9 KiB
C#
57 lines
1.9 KiB
C#
|
using Microsoft.Xna.Framework;
|
||
|
using Microsoft.Xna.Framework.Graphics;
|
||
|
using ProjectZ.InGame.GameObjects.Base;
|
||
|
using ProjectZ.InGame.GameObjects.Base.CObjects;
|
||
|
using ProjectZ.InGame.GameObjects.Base.Components;
|
||
|
using ProjectZ.InGame.Things;
|
||
|
|
||
|
namespace ProjectZ.InGame.GameObjects.Bosses
|
||
|
{
|
||
|
class BossFinalBossFinalTail : GameObject
|
||
|
{
|
||
|
private readonly BossFinalBoss _owner;
|
||
|
|
||
|
private readonly DrawComponent _drawComponent;
|
||
|
private readonly DamageFieldComponent _damageFieldComponent;
|
||
|
|
||
|
public readonly CSprite Sprite;
|
||
|
|
||
|
public BossFinalBossFinalTail(Map.Map map, BossFinalBoss owner, string spriteId, Vector2 position) : base(map)
|
||
|
{
|
||
|
Tags = Values.GameObjectTag.Enemy;
|
||
|
|
||
|
EntityPosition = new CPosition(position.X, position.Y, 0);
|
||
|
EntitySize = new Rectangle(-8, -8, 16, 16);
|
||
|
|
||
|
_owner = owner;
|
||
|
|
||
|
Sprite = new CSprite(spriteId, EntityPosition);
|
||
|
|
||
|
var damageCollider = new CBox(EntityPosition, -3, -3, 6, 6, 3);
|
||
|
AddComponent(DamageFieldComponent.Index, _damageFieldComponent = new DamageFieldComponent(damageCollider, HitType.Enemy, 2));
|
||
|
AddComponent(DrawComponent.Index, _drawComponent = new DrawComponent(Draw, Values.LayerBottom, EntityPosition));
|
||
|
|
||
|
SetActive(false);
|
||
|
}
|
||
|
|
||
|
public void DeactivateDamageField()
|
||
|
{
|
||
|
_damageFieldComponent.IsActive = false;
|
||
|
}
|
||
|
|
||
|
public void SetActive(bool state)
|
||
|
{
|
||
|
_damageFieldComponent.IsActive = state;
|
||
|
_drawComponent.IsActive = state;
|
||
|
}
|
||
|
|
||
|
private void Draw(SpriteBatch spriteBatch)
|
||
|
{
|
||
|
if (!_drawComponent.IsActive)
|
||
|
return;
|
||
|
|
||
|
Sprite.SpriteShader = _owner.Sprite.SpriteShader;
|
||
|
Sprite.Draw(spriteBatch);
|
||
|
}
|
||
|
}
|
||
|
}
|