AvatarsConquest/Scripts/Regions/RegionMusic.cs

141 lines
No EOL
4.2 KiB
C#

using System;
using Server;
using Server.Mobiles;
using Server.Network;
using Server.Regions;
using Server.Items;
namespace Server.Misc
{
class RegionMusic
{
public static bool isLand( Region region )
{
if ( ( region.IsDefault || region.Name == null || region.Name == "" ) )
return true;
return false;
}
public static void MusicRegion( Mobile from, Map map, Point3D loc, Point3D old )
{
Region regOld = Region.Find( old, map );
Region regNew = Region.Find( loc, map );
bool changeMusic = true;
if ( regOld != regNew )
{
if ( ( regNew is BuildingRegion && regOld is InnRegion ) ||
( regNew is InnRegion && regOld is BuildingRegion ) )
{ changeMusic = true; }
else if (
regNew is TreasureRegion || regOld is TreasureRegion ||
regNew is UnderworldEntrance || regOld is UnderworldEntrance ||
regNew is GardenRegion || regOld is GardenRegion ||
regNew is BuildingRegion || regOld is BuildingRegion ||
regNew is GateRegion || regOld is GateRegion ||
regNew is ShrineRegion || regOld is ShrineRegion ||
regNew is HouseRegion || regOld is HouseRegion )
{ changeMusic = false; }
else if (
( regNew is OutskirtRegion && regOld is TownRegion ) ||
( regNew is TownRegion && regOld is OutskirtRegion )
)
{ changeMusic = false; }
if ( changeMusic )
{
MusicName toPlay = LandMusic[Utility.Random(LandMusic.Length)];
if ( regNew is CaveRegion )
toPlay = CaveMusic[Utility.Random(CaveMusic.Length)];
else if ( regNew is DungeonRegion )
toPlay = DungeonMusic[Utility.Random(DungeonMusic.Length)];
else if ( regNew is GraveRegion )
toPlay = DungeonMusic[Utility.Random(DungeonMusic.Length)];
else if ( regNew is DangerRegion )
toPlay = DungeonMusic[Utility.Random(DungeonMusic.Length)];
else if ( regNew is PirateRegion )
toPlay = CaveMusic[Utility.Random(CaveMusic.Length)];
else if ( regNew is InnRegion )
toPlay = TavernMusic[Utility.Random(TavernMusic.Length)];
else if ( regNew is BuildingRegion )
toPlay = VillageMusic[Utility.Random(VillageMusic.Length)];
else if ( regNew is TownRegion )
toPlay = VillageMusic[Utility.Random(VillageMusic.Length)];
else if ( regNew is OutskirtRegion )
toPlay = VillageMusic[Utility.Random(VillageMusic.Length)];
from.Send(PlayMusic.GetInstance(toPlay));
}
}
}
public static MusicName[] TavernMusic = new MusicName[]
{
MusicName.Tavern01,
MusicName.Tavern02,
MusicName.Tavern03,
MusicName.Tavern04,
MusicName.Tavern05
};
public static MusicName[] VillageMusic = new MusicName[]
{
MusicName.Britain1,
MusicName.Bucsden,
MusicName.Jhelom,
MusicName.Magincia,
MusicName.Minoc,
MusicName.Ocllo,
MusicName.Serpents,
MusicName.Skarabra,
MusicName.Trinsic,
MusicName.Vesper,
MusicName.Wind,
MusicName.Yew,
MusicName.InTown01,
MusicName.Nujelm,
MusicName.Cove,
MusicName.Moonglow
};
public static MusicName[] CaveMusic = new MusicName[]
{
MusicName.Create1,
MusicName.OldUlt02,
MusicName.OldUlt03,
MusicName.OldUlt05,
MusicName.OldUlt06,
MusicName.Samlethe,
MusicName.Cave01,
MusicName.Jungle_a,
MusicName.Swamp_a,
MusicName.Jungle_a
};
public static MusicName[] DungeonMusic = new MusicName[]
{
MusicName.OldUlt03,
MusicName.OldUlt05,
MusicName.Samlethe,
MusicName.Dungeon9,
MusicName.Dungeon2,
MusicName.Dungeon3,
MusicName.Approach
};
public static MusicName[] LandMusic = new MusicName[]
{
MusicName.Create1,
MusicName.OldUlt02,
MusicName.OldUlt03,
MusicName.Linelle,
MusicName.Forest_a,
MusicName.Mountn_a,
MusicName.Plains_a,
MusicName.Victory,
MusicName.Travel
};
}
}