public static void AddRelics() { addedRelics = new List <string>(); Assembly ass = SGAmod.Instance.Code; foreach (Type typeoff in ass.GetTypes()) { //SGAmod.Instance.Logger.Debug("Checking assembly: "+ typeoff.Name); if (typeoff.GetInterfaces().Contains(typeof(ISGABoss))) { //ISGABoss iboss = (ISGABoss)typeoff.GetInterface("ISGABoss"); ISGABoss iboss = (ass.CreateInstance(typeoff.FullName) as ISGABoss); //SGAmod.Instance.Logger.Debug("--Found--"); string relicstr = iboss.RelicName(); if (relicstr == "NOU") { continue; } if (relicstr == "Caliburn") { AttemptAddRelic("Caliburn_A"); AttemptAddRelic("Caliburn_B"); AttemptAddRelic("Caliburn_C"); continue; } AttemptAddRelic(relicstr); } } }
public static void AttemptDropRelic(ModNPC modnpc) { ISGABoss iboss = modnpc as ISGABoss; string itemtype = "Relic_Item_" + iboss.RelicName(); if (itemtype == "Relic_Item_SpaceBoss") { itemtype = "Relic_Item_Phaethon"; } if (itemtype == "Relic_Item_Caliburn") { itemtype = "Relic_Item_Caliburn_A"; if (modnpc.npc.ai[2] == 1) { itemtype = "Relic_Item_Caliburn_B"; } if (modnpc.npc.ai[2] == 2) { itemtype = "Relic_Item_Caliburn_C"; } } Item.NewItem(modnpc.npc.position, modnpc.npc.Hitbox.Size(), SGAmod.Instance.ItemType(itemtype)); }