public ClassSelectionMenu(BaseClass clss, ArchetypeSelectionHandler handler, uint textId)
     : base(textId)
 {
     Class = clss;
     foreach (var archetype in ArchetypeMgr.Archetypes[(int)clss.Id])
     {
         if (archetype != null)
         {
             var arche = archetype;	// local reference
             AddItem(new GossipMenuItem(archetype.ToString(), convo => handler(convo, arche)));
         }
     }
 }
Example #2
0
 private static void AddClass(BaseClass clss)
 {
     BaseClasses[(int)clss.Id] = clss;
 }
Example #3
0
		public void FinalizeDataHolder()
		{
			Race = ArchetypeMgr.GetRace(RaceId);
			Class = ArchetypeMgr.GetClass(ClassId);

			if (Class == null || Race == null)
			{
				throw new ContentException("Could not load Archetype \"{0}\" - Invalid Class or race.", this);
			}

			var races = ArchetypeMgr.Archetypes[(uint)ClassId];
			if (races == null)
			{
				ArchetypeMgr.Archetypes[(uint)ClassId] = races = new Archetype[WCellDef.RaceTypeLength];
			}

			StartLocation = new WorldZoneLocation(StartMapId, StartPosition, StartZoneId);
			if (StartLocation.Map == null)
			{
				LogManager.GetCurrentClassLogger().Warn("Failed to initialize Archetype \"" + this + "\" - StartMap does not exist: " + StartMapId);
				//ArrayUtil.Set(ref RaceClassMgr.BaseRaces, (uint)Id, null);
			}
			else
			{
				if (StartLocation.ZoneTemplate == null)
				{
					LogManager.GetCurrentClassLogger().Warn("Failed to initialize Archetype \"" + this +
												 "\" - StartZone \"" + StartZoneId + "\" does not exist in StartMap \"" +
												 StartMapId + "\"");
					//ArrayUtil.Set(ref RaceClassMgr.BaseRaces, (uint)Id, null);
				}
				else
				{
					races[(uint)RaceId] = this;
				}
			}

			//get levelstats
		}
Example #4
0
 private static void AddClass(BaseClass clss)
 {
     BaseClasses[(int)clss.Id] = clss;
 }