68 lines
No EOL
1.5 KiB
C#
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();
|
|
} |