server-master/srcs/WingsAPI.Game/Maps/MapItem.cs
2026-02-10 18:21:30 +01:00

68 lines
No EOL
1.5 KiB
C#

// WingsEmu
//
// Developed by NosWings Team
using System;
using WingsEmu.Game.Items;
using WingsEmu.Game.Managers;
namespace WingsEmu.Game.Maps;
public abstract class MapItem
{
private long _transportId;
protected GameItemInstance ItemInstance;
public MapItem(short x, short y, bool isQuest, IMapInstance mapInstance)
{
PositionX = x;
PositionY = y;
IsQuest = isQuest;
MapInstance = mapInstance;
CreatedDate = DateTime.UtcNow;
ShowMessageEasterEgg = DateTime.UtcNow;
TransportId = 0;
}
public virtual int Amount { get; set; }
public DateTime? CreatedDate { get; set; }
public DateTime ShowMessageEasterEgg { get; set; }
public virtual int ItemVNum { get; set; }
public short PositionX { get; set; }
public short PositionY { get; set; }
public bool IsQuest { get; }
public IMapInstance MapInstance { get; }
public long TransportId
{
get
{
if (_transportId == 0)
{
// create transportId thru factory
// TODO: Review has some problems, aka. issue corresponding to weird/multiple/missplaced drops
_transportId = TransportFactory.Instance.GenerateTransportId();
}
return _transportId;
}
private set
{
if (value != _transportId)
{
_transportId = value;
}
}
}
public abstract GameItemInstance GetItemInstance();
}