blizzless-diiis/src/DiIiS-NA/D3-GameServer/GSSystem/ActorSystem/StaticItem.cs
Lucca Faria Ferri 2ebdff6c61 MonsterBrain.cs cleanup.
Removed Blizzless using comments as it clutters the dependency view.
2023-01-27 12:02:19 -08:00

58 lines
1.7 KiB
C#

using DiIiS_NA.Core.Helpers.Math;
using DiIiS_NA.Core.Logging;
using DiIiS_NA.D3_GameServer.Core.Types.SNO;
using DiIiS_NA.GameServer.Core.Types.Math;
using DiIiS_NA.GameServer.Core.Types.SNO;
using DiIiS_NA.GameServer.Core.Types.TagMap;
using DiIiS_NA.GameServer.GSSystem.MapSystem;
using DiIiS_NA.GameServer.GSSystem.PlayerSystem;
using DiIiS_NA.GameServer.MessageSystem;
using DiIiS_NA.GameServer.MessageSystem.Message.Definitions.World;
using System;
namespace DiIiS_NA.GameServer.GSSystem.ActorSystem
{
public class StaticItem : Gizmo
{
public override ActorType ActorType { get { return ActorType.Item; } }
public StaticItem(World world, ActorSno sno, TagMap tags)
: base(world, sno, tags)
{
GBHandle.Type = (int)ActorType.Item;
GBHandle.GBID = -1;//944034263;
Attributes[GameAttribute.Operatable] = true;
}
public override bool Reveal(Player player)
{
if (!base.Reveal(player))
return false;
return true;
}
public override void OnTargeted(Player player, TargetMessage message)
{
Logger.Debug("(OnTargeted) StaticItem has been activated! Id: {0}, Type: {1}", SNO, ActorData.TagMap[ActorKeys.GizmoGroup]);
//handling quest triggers
if (World.Game.QuestProgress.QuestTriggers.ContainsKey((int)SNO))
{
var trigger = World.Game.QuestProgress.QuestTriggers[(int)SNO];
if (trigger.triggerType == DiIiS_NA.Core.MPQ.FileFormats.QuestStepObjectiveType.InteractWithActor)
{
World.Game.QuestProgress.UpdateCounter((int)SNO);
if (trigger.count == World.Game.QuestProgress.QuestTriggers[(int)SNO].counter)
try
{
trigger.questEvent.Execute(World); // launch a questEvent
}
catch (Exception e)
{
Logger.WarnException(e, "questEvent()");
}
}
}
}
}
}