public CreatureGroup( Type[] types, SummonEntry[] entries ) { m_Types = types; m_Entries = entries; }
public override void OnDoubleClick(Mobile m) { if (m_TalismanType == TalismanType.None) { return; } if (this.Parent != m) { m.SendLocalizedMessage(502641); // You must equip this item to use it. } else if (m_ChargeTimeLeft > 0) { int tmptime = (m_ChargeTimeLeft2 - (DateTime.Now.Second - m_ChargeTimeLeft3.Second) + 1); if (tmptime > (m_ChargeTimeLeft2 + 1)) { tmptime -= 60; } if (tmptime > m_ChargeTimeLeft2) { tmptime = m_ChargeTimeLeft2; } m.SendLocalizedMessage(1074882, tmptime.ToString()); // You must wait ~1_val~ seconds for this to recharge. } else if (m_Charges == 0) { m.SendLocalizedMessage(501250); // This magic item is out of charges. } else { if ((int)m_TalismanType <= 4) { //Removal m.Target = new InternalTarget(this); } //Mana Phase else if (m_TalismanType == TalismanType.ManaPhase) { ManaPhase.OnUse(m, this); } else if ((int)m_TalismanType >= 9) { //Summon creature BaseCreature bc = (BaseCreature)Activator.CreateInstance(SummonEntry.GetNPC(m_TalismanType)); if (BaseCreature.Summon(bc, m, m.Location, -1, TimeSpan.FromMinutes(10.0))) { bc.FixedParticles(0x3728, 1, 10, 9910, EffectLayer.Head); bc.PlaySound(bc.GetIdleSound()); m_SummonedCreature = bc; m_Charges--; InvalidateProperties(); ChargeTimeLeft = 1800; m_ChargeTimer = new ChargeTimeLeftTimer(this); m_ChargeTimer.Start(); m_ChargeTimeLeft3 = DateTime.Now; } } else if (m_TalismanType == TalismanType.SummonRandom) { //Summon Random TalismanType tmpbc = SummonEntry.GetRandom(); BaseCreature bc = (BaseCreature)Activator.CreateInstance(SummonEntry.GetNPC(tmpbc)); if (BaseCreature.Summon(bc, m, m.Location, -1, TimeSpan.FromMinutes(10.0))) { bc.FixedParticles(0x3728, 1, 10, 9910, EffectLayer.Head); bc.PlaySound(bc.GetIdleSound()); m_SummonedCreature = bc; m_Charges--; InvalidateProperties(); ChargeTimeLeft = 1800; m_ChargeTimer = new ChargeTimeLeftTimer(this); m_ChargeTimer.Start(); m_ChargeTimeLeft3 = DateTime.Now; } } else { Item summonitem; int message; // Summon item if (m_TalismanType == TalismanType.SummonBandage) { summonitem = new Bandage(10); summonitem.ItemID = 0x0EE9; summonitem.Hue = 0xA3; message = 1075002; // You have been given some clean bandages. } else if (m_TalismanType == TalismanType.SummonBoard) { summonitem = new Board(10); summonitem.Hue = 0xA3; message = 1075000; // You have been given some wooden boards. } else // if ( m_TalismanType == TalismanType.SummonIngot ) { summonitem = new IronIngot(10); summonitem.Hue = 0xA3; message = 1075001; // You have been given some ingots. } m.AddToBackpack(summonitem); m.SendLocalizedMessage(message); m_Charges--; InvalidateProperties(); ChargeTimeLeft = 60; m_ChargeTimer = new ChargeTimeLeftTimer(this); m_ChargeTimer.Start(); m_ChargeTimeLeft3 = DateTime.Now; } } }