Beispiel #1
0
        public static bool RunPlayerMethod(string methodName, bool useItem, Player player, params object[] parameters)
        {
            if (Events.player.delegates.ContainsKey(methodName))
            {
                return(RunPlayerEvent(methodName, useItem, player, parameters));
            }
            bool result = false;

            object[] array = new object[parameters.Length + 1];
            array[0] = player;
            for (int i = 0; i < parameters.Length; i++)
            {
                array[i + 1] = parameters[i];
            }
            if (useItem)
            {
                Item item = player.inventory[player.selectedItem];
                if (item.RunMethod(methodName, array))
                {
                    result = true;
                }
            }
            for (int j = 0; j < player.armor.Length; j++)
            {
                Item item2 = player.armor[j];
                if (item2.RunMethod(methodName, array))
                {
                    result = true;
                }
            }
            for (int k = 0; k < player.buffType.Length; k++)
            {
                if (RunSpecifiedMethod("Buff " + Main.buffName[player.buffType[k]], player.buffCode[k], methodName, array))
                {
                    result = true;
                }
            }
            foreach (string key in Config.globalMod["ModPlayer"].Keys)
            {
                object obj = Config.globalMod["ModPlayer"][key];
                if (obj != null && RunSpecifiedMethod(key + " ModPlayer", obj, methodName, array))
                {
                    result = true;
                }
            }
            return(result);
        }