#W# Added: Added an Overworld dungeon region. Tweaked overworld animal spawn.
This commit is contained in:
parent
6213604bb1
commit
292cd625c5
10 changed files with 435 additions and 322 deletions
|
|
@ -1,6 +1,6 @@
|
|||
# Bastion
|
||||
AnkhWest 0x0003
|
||||
1734 2023 0
|
||||
1735 2023 0
|
||||
|
||||
LoomEastAddon 0x1060
|
||||
1875 2040 0
|
||||
|
|
|
|||
|
|
@ -895,5 +895,33 @@
|
|||
"entries": [
|
||||
{ "name": "carpenter", "probability": 100, "maxCount": 1 }
|
||||
]
|
||||
},
|
||||
{
|
||||
"$type": "Spawner",
|
||||
"guid": "2126cd7b-a05a-48c9-b863-115cd1d797c1",
|
||||
"location": [1732, 2031, 0],
|
||||
"map": "Veridia",
|
||||
"count": 1,
|
||||
"minDelay": "00:05:00",
|
||||
"maxDelay": "00:10:00",
|
||||
"homeRange": 2,
|
||||
"walkingRange": 5,
|
||||
"entries": [
|
||||
{ "name": "keeperofchivalry", "probability": 100, "maxCount": 1 }
|
||||
]
|
||||
},
|
||||
{
|
||||
"$type": "Spawner",
|
||||
"guid": "36e3210f-3fa0-439d-92cc-65a12c7cbd86",
|
||||
"location": [1750, 1997, 0],
|
||||
"map": "Veridia",
|
||||
"count": 1,
|
||||
"minDelay": "00:05:00",
|
||||
"maxDelay": "00:10:00",
|
||||
"homeRange": 3,
|
||||
"walkingRange": -1,
|
||||
"entries": [
|
||||
{ "name": "necromancer", "probability": 100, "maxCount": 1 }
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@
|
|||
"homeRange": 30,
|
||||
"walkingRange": 45,
|
||||
"entries": [
|
||||
{ "name": "bird", "probability": 100, "maxCount": 18 },
|
||||
{ "name": "bird", "probability": 100, "maxCount": 10 },
|
||||
{ "name": "cat", "probability": 100, "maxCount": 2 },
|
||||
{ "name": "dog", "probability": 100, "maxCount": 2 },
|
||||
{ "name": "rat", "probability": 100, "maxCount": 3 }
|
||||
|
|
@ -263,7 +263,7 @@
|
|||
"homeRange": 50,
|
||||
"walkingRange": 65,
|
||||
"entries": [
|
||||
{ "name": "bird", "probability": 100, "maxCount": 28 },
|
||||
{ "name": "bird", "probability": 100, "maxCount": 15 },
|
||||
{ "name": "cat", "probability": 100, "maxCount": 5 },
|
||||
{ "name": "dog", "probability": 100, "maxCount": 3 },
|
||||
{ "name": "rat", "probability": 100, "maxCount": 4 }
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -2347,7 +2347,7 @@
|
|||
]
|
||||
},
|
||||
{
|
||||
"$type": "GreetingDungeonRegion",
|
||||
"$type": "GreetingOverworldSpawnRegion",
|
||||
"Map": "Veridia",
|
||||
"Name": "the Brigand Camp",
|
||||
"Priority": 55,
|
||||
|
|
@ -2356,7 +2356,7 @@
|
|||
]
|
||||
},
|
||||
{
|
||||
"$type": "GreetingDungeonRegion",
|
||||
"$type": "GreetingOverworldSpawnRegion",
|
||||
"Map": "Veridia",
|
||||
"Name": "the Evil Mage Fortress",
|
||||
"Priority": 55,
|
||||
|
|
@ -2366,7 +2366,7 @@
|
|||
]
|
||||
},
|
||||
{
|
||||
"$type": "GreetingDungeonRegion",
|
||||
"$type": "GreetingOverworldSpawnRegion",
|
||||
"Map": "Veridia",
|
||||
"Name": "the Ratman Fortress",
|
||||
"Priority": 55,
|
||||
|
|
@ -2375,7 +2375,7 @@
|
|||
]
|
||||
},
|
||||
{
|
||||
"$type": "GreetingDungeonRegion",
|
||||
"$type": "GreetingOverworldSpawnRegion",
|
||||
"Map": "Veridia",
|
||||
"Name": "the Tower of the Lich",
|
||||
"Priority": 55,
|
||||
|
|
@ -2384,7 +2384,7 @@
|
|||
]
|
||||
},
|
||||
{
|
||||
"$type": "GreetingDungeonRegion",
|
||||
"$type": "GreetingOverworldSpawnRegion",
|
||||
"Map": "Veridia",
|
||||
"Name": "the Church of Ruin",
|
||||
"Priority": 55,
|
||||
|
|
@ -2394,7 +2394,7 @@
|
|||
]
|
||||
},
|
||||
{
|
||||
"$type": "GreetingDungeonRegion",
|
||||
"$type": "GreetingOverworldSpawnRegion",
|
||||
"Map": "Veridia",
|
||||
"Name": "the Ruined Farm",
|
||||
"Priority": 55,
|
||||
|
|
@ -2404,7 +2404,7 @@
|
|||
]
|
||||
},
|
||||
{
|
||||
"$type": "GreetingDungeonRegion",
|
||||
"$type": "GreetingOverworldSpawnRegion",
|
||||
"Map": "Veridia",
|
||||
"Name": "the Orc Fort",
|
||||
"Priority": 55,
|
||||
|
|
@ -2413,7 +2413,7 @@
|
|||
]
|
||||
},
|
||||
{
|
||||
"$type": "GreetingDungeonRegion",
|
||||
"$type": "GreetingOverworldSpawnRegion",
|
||||
"Map": "Veridia",
|
||||
"Name": "the Savage Camp",
|
||||
"Priority": 55,
|
||||
|
|
@ -2422,7 +2422,7 @@
|
|||
]
|
||||
},
|
||||
{
|
||||
"$type": "GreetingDungeonRegion",
|
||||
"$type": "GreetingOverworldSpawnRegion",
|
||||
"Map": "Veridia",
|
||||
"Name": "the Church of Daemons",
|
||||
"Priority": 55,
|
||||
|
|
@ -2431,7 +2431,7 @@
|
|||
]
|
||||
},
|
||||
{
|
||||
"$type": "GreetingDungeonRegion",
|
||||
"$type": "GreetingOverworldSpawnRegion",
|
||||
"Map": "Veridia",
|
||||
"Name": "the Rivermouth Cemetery",
|
||||
"Priority": 55,
|
||||
|
|
@ -2441,7 +2441,7 @@
|
|||
]
|
||||
},
|
||||
{
|
||||
"$type": "GreetingDungeonRegion",
|
||||
"$type": "GreetingOverworldSpawnRegion",
|
||||
"Map": "Veridia",
|
||||
"Name": "the Myrish Cemetery",
|
||||
"Priority": 55,
|
||||
|
|
@ -2450,7 +2450,7 @@
|
|||
]
|
||||
},
|
||||
{
|
||||
"$type": "GreetingDungeonRegion",
|
||||
"$type": "GreetingOverworldSpawnRegion",
|
||||
"Map": "Veridia",
|
||||
"Name": "the Bastion Cemetery",
|
||||
"Priority": 55,
|
||||
|
|
@ -2460,7 +2460,7 @@
|
|||
]
|
||||
},
|
||||
{
|
||||
"$type": "GreetingDungeonRegion",
|
||||
"$type": "GreetingOverworldSpawnRegion",
|
||||
"Map": "Veridia",
|
||||
"Name": "the Mireport Cemetery",
|
||||
"Priority": 55,
|
||||
|
|
|
|||
|
|
@ -3819,7 +3819,7 @@ namespace Server.Mobiles
|
|||
{
|
||||
var tc = Core.TickCount;
|
||||
|
||||
if (!Controlled && !Summoned && Region is Server.Regions.DungeonRegion)
|
||||
if (!Controlled && !Summoned && Region is Server.Regions.GreetingDungeonRegion)
|
||||
{
|
||||
if (Combatant == null)
|
||||
{
|
||||
|
|
|
|||
41
Projects/UOContent/Mobiles/Vendors/NPC/Necromancer.cs
Normal file
41
Projects/UOContent/Mobiles/Vendors/NPC/Necromancer.cs
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
using ModernUO.Serialization;
|
||||
using System.Collections.Generic;
|
||||
using Server.Items;
|
||||
|
||||
namespace Server.Mobiles
|
||||
{
|
||||
[SerializationGenerator(0, false)]
|
||||
public partial class Necromancer : BaseVendor
|
||||
{
|
||||
private readonly List<SBInfo> m_SBInfos = new();
|
||||
|
||||
[Constructible]
|
||||
public Necromancer() : base("the necromancer")
|
||||
{
|
||||
SetSkill(SkillName.Necromancy, 65.0, 88.0);
|
||||
SetSkill(SkillName.SpiritSpeak, 65.0, 88.0);
|
||||
SetSkill(SkillName.Meditation, 60.0, 83.0);
|
||||
SetSkill(SkillName.MagicResist, 65.0, 88.0);
|
||||
SetSkill(SkillName.Wrestling, 36.0, 68.0);
|
||||
}
|
||||
|
||||
protected override List<SBInfo> SBInfos => m_SBInfos;
|
||||
|
||||
public override NpcGuild NpcGuild => NpcGuild.MagesGuild;
|
||||
|
||||
public override VendorShoeType ShoeType => Utility.RandomBool() ? VendorShoeType.Shoes : VendorShoeType.Sandals;
|
||||
|
||||
public override void InitSBInfo()
|
||||
{
|
||||
m_SBInfos.Add(new SBMage());
|
||||
}
|
||||
|
||||
public override void InitOutfit()
|
||||
{
|
||||
base.InitOutfit();
|
||||
|
||||
AddItem(new Robe(Utility.RandomGreenHue()));
|
||||
AddItem(new WizardsHat(Utility.RandomGreenHue()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
using Server;
|
||||
using Server.Mobiles;
|
||||
|
||||
namespace Server.Regions
|
||||
{
|
||||
public class GreetingOverworldSpawnRegion : DungeonRegion
|
||||
{
|
||||
public GreetingOverworldSpawnRegion(string name, Map map, int priority, params Rectangle3D[] area)
|
||||
: base(name, map, priority, area)
|
||||
{
|
||||
}
|
||||
public override bool MountsAllowed => false;
|
||||
public override void OnEnter(Mobile m)
|
||||
{
|
||||
base.OnEnter(m);
|
||||
if (m.Player)
|
||||
{
|
||||
m.SendMessage($"You entered <BASEFONT COLOR='#FF0000'>{this.Name}</BASEFONT>.");
|
||||
}
|
||||
if (m is PlayerMobile player && player.Mounted )
|
||||
{
|
||||
if ( player.Mount is BaseMount )
|
||||
{
|
||||
Server.Custom.AutoStable.StoreMount(player);
|
||||
}
|
||||
else
|
||||
{
|
||||
BaseMount.Dismount(player);
|
||||
player.SendMessage("Mounts are not permitted in this area.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override void OnExit(Mobile m)
|
||||
{
|
||||
base.OnExit(m);
|
||||
if ( m is PlayerMobile player )
|
||||
{
|
||||
Server.Custom.AutoStable.RestoreMount(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -65,5 +65,6 @@ public static class RegionJsonRegistration
|
|||
RegionJsonSerializer.Register<GreetingTownRegion>();
|
||||
RegionJsonSerializer.Register<GreetingDungeonRegion>();
|
||||
RegionJsonSerializer.Register<MountlessTownRegion>();
|
||||
RegionJsonSerializer.Register<GreetingOverworldSpawnRegion>();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue