LADXHD/InGame/GameObjects/Things/ObjSpikes2D.cs
2023-12-14 17:21:22 -05:00

38 lines
1.2 KiB
C#

using Microsoft.Xna.Framework;
using ProjectZ.InGame.GameObjects.Base;
using ProjectZ.InGame.GameObjects.Base.CObjects;
using ProjectZ.InGame.GameObjects.Base.Components;
using ProjectZ.InGame.Map;
using ProjectZ.InGame.Things;
namespace ProjectZ.InGame.GameObjects.Things
{
class ObjSpikes2D : GameObject
{
private readonly DamageFieldComponent _damageField;
public ObjSpikes2D(Map.Map map, int posX, int posY) : base(map)
{
SprEditorImage = Resources.SprWhite;
EditorIconSource = new Rectangle(0, 0, 16, 16);
EditorColor = Color.Red;
EntityPosition = new CPosition(posX, posY, 0);
EntitySize = new Rectangle(0, 0, 16, 16);
var box = new CBox(posX, posY + 10, 0, 16, 6, 8);
AddComponent(DamageFieldComponent.Index, _damageField = new DamageFieldComponent(box, HitType.Object, 2)
{
OnDamage = DamagePlayer
});
}
private bool DamagePlayer()
{
MapManager.ObjLink.InflictSpikeDamage2D();
return MapManager.ObjLink.HitPlayer(new Vector2(0, -1), _damageField.DamageType, _damageField.Strength, true);
}
}
}