Exemple #1
0
        public static void FactionItemReset_OnCommand(CommandEventArgs e)
        {
            ArrayList pots = new ArrayList();

            foreach (Item item in World.Items.Values)
            {
                if (item is IFactionItem && !(item is HoodedShroudOfShadows))
                {
                    pots.Add(item);
                }
            }

            int[] hues = new int[Factions.Count * 2];

            for (int i = 0; i < Factions.Count; ++i)
            {
                hues[0 + (i * 2)] = Factions[i].Definition.HuePrimary;
                hues[1 + (i * 2)] = Factions[i].Definition.HueSecondary;
            }

            int count = 0;

            for (int i = 0; i < pots.Count; ++i)
            {
                Item         item = (Item)pots[i];
                IFactionItem fci  = (IFactionItem)item;

                if (fci.FactionItemState != null || item.LootType != LootType.Blessed)
                {
                    continue;
                }

                bool isHued = false;

                for (int j = 0; j < hues.Length; ++j)
                {
                    if (item.Hue == hues[j])
                    {
                        isHued = true;
                        break;
                    }
                }

                if (isHued)
                {
                    fci.FactionItemState = null;
                    ++count;
                }
            }

            e.Mobile.SendMessage("{0} items reset", count);
        }
Exemple #2
0
        public static bool AddFactionProperties(IFactionItem item, ObjectPropertyList list)
        {
            if (item.FactionItemState != null)
            {
                list.Add(1041350); // faction item

                if (item.FactionItemState.MinRank > 0)
                {
                    list.Add(1094805, item.FactionItemState.MinRank.ToString()); // Faction Rank: ~1_VALUE~
                }
                return(true);
            }

            return(false);
        }
Exemple #3
0
        public static bool CanUse(IFactionItem item, Mobile m, int failmessage = 500294)
        {
            if (item == null)
            {
                return(true);
            }

            var state = PlayerState.Find(m);

            if (state != null && state.Faction == item.FactionItemState.Faction)
            {
                return(true);
            }

            if (failmessage > 0)
            {
                m.SendLocalizedMessage(failmessage); // You cannot use that.
            }

            return(false);
        }
Exemple #4
0
 public static bool ReadFactionItemState(this IFactionItem obj, List <ClilocItemRec> properties)
 {
     return(ClilocHelper.Contains(properties, 1041350));
 }