ModernUO/Projects/UOContent/Engines/Quests/Regions/QuestCompleteObjectiveRegion.cs
Kamron Batman 1f778cfacf
fix: Fixes regions having the wrong type (#1260)
## Possible Breaking Change
* Reverted regions.json back to RunUO until newer regions are implemented and proper expansion checks are added.

### Other Changes
- [X] Adds `Region.IsPartOf<T1, T2>()` to check for multiple types.
- [X] Fixes regions.json being wrong
- [X] Adds lots of missing regions. **They are not implemented properly yet**
- [X] Adds regions.xml -> regions.json (check ModernUO Discord)
- [X] Adds expansion specific regions.
2022-11-21 16:47:40 -08:00

39 lines
1 KiB
C#

using System;
using System.Xml;
using Server;
using Server.Regions;
using Server.Mobiles;
namespace Server.Engines.Quests;
public class QuestCompleteObjectiveRegion : BaseRegion
{
public QuestCompleteObjectiveRegion(string name, Map map, Region parent, int priority, params Rectangle3D[] area) : base(name, map, parent, priority, area)
{
}
public QuestCompleteObjectiveRegion(string name, Map map, Region parent, params Rectangle3D[] area) : base(name, map, parent, area)
{
}
public Type Quest { get; set; }
public Type Objective { get; set; }
public override void OnEnter(Mobile m)
{
base.OnEnter(m);
if (Quest != null && Objective != null)
{
if (m is PlayerMobile player && player?.Quest != null && player.Quest.GetType() == Quest)
{
QuestObjective obj = player.Quest.FindObjective(Objective);
if (obj is { Completed: false })
{
obj.Complete();
}
}
}
}
}