diff verbage.lua @ 1:822b6ca3ef89

Import of 2.15, moving to wowace svn.
author Farmbuyer of US-Kilrogg <farmbuyer@gmail.com>
date Sat, 16 Apr 2011 06:03:29 +0000
parents
children 9a37bd40eb5e
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/verbage.lua	Sat Apr 16 06:03:29 2011 +0000
@@ -0,0 +1,484 @@
+
+local todo = [[
+- broadcasted entries triggering auto-shard don't have "shard" text
+
+- [DONE,TEST,comm] releasing before DBM signals wipe results in outdoor location
+
+- implement ack, then fallback to recording if not ack'd
+
+- special treatment for recipes / BoE items?  default to guild vault?
+
+- rebroadcasting entire boss sections, entire days.  maybe only whisper
+to specific people rather than broadcast.
+
+- signpost a potential boss kill, pipeline loot until the cache clears
+
+- Being able to drag rows up and down the main loot grid would be awesome.  Coding
+that would be likely to drive me batshiat insane.
+]]
+
+local addon = select(2,...)
+
+addon.helptree = {
+	{
+		value = "about",
+		text = "About",
+	},
+	{
+		value = "basic",
+		text = "Basics",
+		children = {
+			{
+				value = "loot",
+				text = "Loot Entries",
+			},
+			{
+				value = "boss",
+				text = "Boss Entries",
+			},
+		},
+	},
+	{
+		value = "tracking",
+		text = "Tracking Loot",
+		children = {
+			{
+				value = "enabled",
+				text = "Full Tracking",
+			},
+			{
+				value = "bcast",
+				text = "Rebroadcasting",
+			},
+		},
+	},
+	{
+		value = "texts",
+		text = "Generated Texts",
+		children = {
+			{
+				value = "forum",
+				text = "Forum Markup",
+			},
+			{
+				value = "other",
+				text = "Other Texts",
+			},
+			{
+				value = "saved",
+				text = "Saved Texts",
+			},
+		},
+	},
+	{
+		value = "tips",
+		text = "Handy Tips",
+		children = {
+			{
+				value = "slashies",
+				text = "Slash Commands",
+			},
+		},
+	},
+	{
+		value = "todo",
+		text = "TODOs, Bugs, etc",
+		children = {
+			{
+				value = "gotchas",
+				text = "Gotchas",
+			},
+			{
+				value = "todolist",
+				text = "TODO/knownbugs",
+			},
+        },
+	},
+}
+
+-- Help text.  Formatting doesn't matter, but use a blank line to split
+-- paragraphs.  This file needs to be edited with a text editor that doesn't
+-- do anything stupid by placing extra spaces at the end of lines.
+do
+local replacement_colors = { ["+"]="|cff30adff", ["<"]="|cff00ff00", [">"]="|r" }
+local T={}
+T.about = [[
+Ouro Loot is the fault of Farmbuyer of Ouroboros on US-Kilrogg.  Bug reports,
+comments, and suggestions are welcome at the project page at curse.com or send
+them to <farmbuyer@gmail.com>.
+]]
+
+T.basic = [[
+The </ouroloot> (and </loot> by default) command opens this display.  The buttons
+on the right side control operation and are mostly self-explanatory.  Hovering over
+things will usually display some additional text in the gray line at the bottom.
+
+Each tab on the left side can additionally create extra contols in the lower-right
+section of the display.
+
+The first tab on the left side, <Loot>, is where everything goes to and comes
+from.  Looting events and Deadly Boss Mods notifications go to the <Loot> tab; the
+other tabs are all generated from the information in the <Loot> tab.
+]]
+
+T.basic_loot = [[
+A "loot row" in the first tab has three columns:  the item, the recipient, and any
+extra notes.  The recipient's class icon is displayed by their names, if class
+information is available at the time.
+
+<Mouse Hover>
+
+Hovering the mouse over the first column will display the item in a tooltip.
+
+Hovering over the second column will display a tooltip with the loot that person
+has received.  If they've won more than 10 items, the list is cut off with '...'
+at the end; to see the full list, use the right-click +Show only this player> option
+instead.
+
+<Right-Click>
+
+Right-clicking a loot row shows a dropdown menu.
+
+Right-clicking in the first or third columns will display options for special
+treatment of that loot entry (marking as offspec, etcetera).  Using any of those
+options will change the text in the third column (which will then affect the text
+in the generated tabs, such as forum markup).
+
+Right-clicking in the second column allows you to temporarily remove all other
+players from the loot display.  Use the reset button in the lower-right corner to
+restore the display to normal.  The menu also allows you to +reassign> loot from
+one player to another; if the new recipient is not in the raid group at the time,
+use the +Enter name...> option at the bottom of the list of names to type the
+name into a text box.  If your raid takes advantage of the new ability to trade
+soulbound items, you will need to reassign the item here for the generated text
+to be factually correct.
+
+See the help screen on "Boss Entries" for the +Insert new boss kill event> option.
+
+<Double-Click>
+
+Double-clicking a loot row in the third ("Notes") column allows you to edit that
+field directly.  The color of the text will still depend on any +Mark as ___>
+actions done to that loot row, whether automatically or by hand.
+]]
+
+T.basic_boss = [[
+Boss wipe/kill entries are entirely dependant on Deadly Boss Mods being enabled and
+up-to-date.  The typical sequence of events for our usual raids goes like this:
+
+We make four or five attempts on Baron Steamroller.  As DBM registers that combat
+ends, a <wipe> event is entered on the loot display along with the duration of the
+fight.  If the loot display is opened, the wipes will be visible with a light gray
+background.
+
+After reminding the dps classes to watch the threat meters, we manage to kill
+Steamroller.  When DBM registers the win, a <kill> event is entered on the display
+with a dark gray background.
+All previous <wipe>s are removed and collapsed into the <kill> event.  The final
+<kill> event shows the duration of the successful fight and the number of attempts
+needed (or "one-shot" if we manage to be competent).
+
+Sometimes this goes wrong, when DBM misses its own triggers.  If DBM does not catch
+the start of the boss fight, it can't register the end, so nothing at all is
+recorded.  If the fight was a win but DBM does not catch the victory conditions,
+then DBM will (after several seconds) decide that it was a wipe instead.  And
+sometimes useful loot will drop from trash mobs, which DBM knows nothing about.
+
+For all those reasons, right-clicking on a "boss row" will display options for
++Insert new boss kill event>, and for toggling a <wipe> into a <kill>.  We often
+insert bosses named "trash" to break up the display and correct the forum markup
+listing.
+]]
+
+T.tracking = [[
+The first button underneath +Main> in the right-hand column displays the current
+status of the addon.  If it is disabled, then no recording, rebroadcasting, or
+listening for rebroadcasts is performed.  Any loot already recorded will be restored
+across login sessions no matter the status.
+
+You can turn on tracking/broadcasting before joining a raid.  If you join a raid
+and the addon has not been turned on, then (by default) a popup dialog will ask for
+instructions.  (This can be turned off in the advanced <Options>.)
+
+The addon tries to be smart about logging on during a raid (due to a disconnect or
+relog).  If you log in, are already in a raid group, and loot has already been
+stored from tracking, it will re-enable itself automatically.  It will not (as of
+this writing) restore ancillary settings such as the tracking threshold.
+
+The intent of the addon design is that, after the end of a raid, all the generated
+markup text is done, optionally saved (see "Generated Texts - Saved Texts"), and
+then cleared from
+storage altogether.  As a result, if you login with restored loot information but
+are not in a raid, the addon will do nothing on its own -- but will assume that
+you've forgotten to finish those steps and will yammer about it in the chat window
+as a reminder.
+
+The +Threshold> drop-down has no connection at all with any current loot threshold
+set by you or a master looter.
+]]
+
+T.tracking_enabled = [[
+Full tracking records all loot events that fulfill these criteria:
+
+1)  The loot quality is equal to or better than what you have selected in the
++Threshold> drop-down.
+
+2)  The loot is not one of the few items hardcoded to not be tracked (badges,
+emblems, Stone Keeper Shards, etc).
+
+3)  <You can see the loot event.>  More precisely, you need to be close enough
+to the recipient of the loot to be able to see "So-And-So receives loot: [Stuff]"
+in your chat window, even if you have those actual loot messages turned off.
+
+It is (3) that causes complications.  A master looter can assign loot to anybody
+anywhere in a raid instance, but the range on detecting loot events is much
+smaller.  If your raid does not use master looting then you merely need to be
+close enough to the boss corpse, presuming that the winners will need to walk
+over to get their phat epix.
+
+If you do use master looter, then you have two options:  first, you can
+require players
+who might get loot to stay near the boss.  You would then also need to stay near
+the boss to detect the loot event.  (This can be less hassle if you are also
+the loot master.)  The downside is that other players moving on to fight to the
+next boss are doing so without the help of their teammates.
+
+The other option is to ask other players to also install Ouro Loot, and for
+them to turn on the "Rebroadcasting" feature.  Any loot events which they can
+see will be communicated to you.  Then it only becomes necessary for at least
+one person to be close enough to the loot recipient to see the item awarded,
+and you will record it no matter how far away you are -- even back in Dalaran.
+
+If you have Full Tracking enabled, then you are also automatically rebroadcasting.
+Having more than one player with Full Tracking turned on is probably a good
+idea, in case one of the trackers experiences a game crash or is suddenly kidnapped
+by robot ninja monkeys.
+]]
+
+T.tracking_bcast = [[
+The simplest method of operation is only rebroadcasting the loot events that you
+see, as you see them.  Nothing is recorded in your local copy of the addon.
+
+If you logout for any reason, the addon will not reactivate when you log back in.
+
+You can use </loot bcast> or </loot broadcast> to turn on rebroadcasting without
+opening the GUI.
+]]
+
+T.texts = [[
+The middle tabs are just large editboxes.  Their text is initially generated from
+the information stored on the main <Loot> tab, at the time you click on the tab.
+Not every bit of information that
+we want in the generated text is always available, or depends on things that the
+game itself can't know.  So you can edit the text in the tabs and your edits will
+be preserved.
+
+Each time you click one of the text tabs, every new entry on the <Loot> tab
+since the last time this tab was shown will be turned into text.
+
+Clicking the +Regenerate> button will throw away all the text on that tab, including
+any edits you've made, and recreate all of it from scratch.  If you've accidentally
+deleted the text from the editbox, or you've made manual changes to the <Loot> tab,
+you can use this button to start over.
+
+You can click in an editbox and use Control-A to select all text, then Control-C
+to copy it to the system clipboard for subsequent pasting into a web browser or
+whatever.  If you're on a Mac, you probably already know the equivalent keys.
+]]
+
+T.texts_forum = [[
+The <Forum Markup> tab creates text as used by the guild forums for Ouroboros
+of Kilrogg.  By default this is fairly standard BBcode.  The format of the
+individual loot items can be adjusted via the dropdown menu on the lower right
+of the tab.
+
+The [url] choice defaults to using Wowhead.  If you have the [item] extension
+for your BBcode installed, you can use either of those choices too.  The "by ID"
+variant is good for heroic ToC/ICC items that share names with nonheroic items,
+but is harder to read in the text tab.
+
+You can also specify a custom string.  Formatting is done with these replacements:
+
++$N>:  item name|r
+
++$I>:  (capital "eye", not "ell") numeric item ID|r
+
++$T>:  loot recipient and any additional notes|r
+
++$X>:  if more than one of the item was looted, this is the "x2", "x3", etc
+
+
+Pro tip #1:  if something has happened on the main <Loot> tab which cannot be
+changed directly but would generate incorrect text, you can click this tab to
+generate the text right away.  Then edit/move the text as needed.  When you
+close the display or click back on the <Loot> tab, your edited text will be
+preserved for later.
+
+Pro tip #2:  Barring things like pro tip #1, the author typically does not
+generate any text until the end of the raid.
+]]
+
+T.texts_other = [[
+So far the only other generated text is the <Attendance> tab, an alphabetized list
+on a per-boss basis.
+
+Other addons can register their own text tabs and corresponding generation
+functions.  If you want to be able to feed text into an offline program (for
+example, a spreadsheet or DKP tracker), then this may be of use to you.
+
+Ideas for more tabs?  Tell me!
+]]
+
+T.texts_saved = [[
+The contents of the <Forum Markup> and <Attendance> tabs can be saved, so that they
+will not be lost when you use the +Clear> button.
+
+Do any edits you want to the generated text tabs, then click the +Save Current As...>
+button on the right-hand side.  Enter a short descriptive reminder (for example,
+"thursday hardmodes") in the popup dialog.  The texts will remain in their tabs,
+but clearing loot information will not lose them now.
+
+All saved texts are listed on the right-hand side.  There is no technical limit to
+the number of saved texts, but the graphical display will begin to overflow after
+about half a dozen saved sets.  (And I don't care.)
+
+Clicking a saved text name lets you +Load> or +Delete> that saved set.  The primary
+<Loot> tab is not saved and restored by this process, only the generated texts.
+This also means you cannot +Regenerate> the texts.
+]]
+
+T.tips = [[
+Shift-clicking an item in the <Loot> display will paste it into an open chat editbox.
+
+The |cffff8000[Ouro Loot]|r "legendary item" link displayed at the start of all
+chat messages is a clickable link.  Clicking opens the main display.  An option
+on the <Options> tab will cause a message to be printed after a boss kill,
+mostly for lazy loot trackers who don't like typing slash commands to open windows.
+
+If you are broadcasting to somebody else who is tracking, you should probably be
+using the same threshold.  If yours is lower, then some of the loot you broadcast
+to him will be ignored.  If yours is higher, then you will not be sending information
+that he would have recorded.  The "correct" setting depends on what your guild wants
+to track.
+
+Ticking the "notraid" box in advanced debugging <Options>, before enabling tracking,
+will make the tracking work outside of a raid group.  Communication functions
+will behave a little strangely when doing this.  Be sure to check the threshold!
+You can also use <"/ouroloot debug notraid"> instead.
+
+Using the "Saved Texts" feature plus the +Clear> button is a great way of putting
+off pasting loot into your guild's website until a more convenient time.
+]]
+
+T.tips_slashies = [[
+The </ouroloot> command can take arguments to do things without going through
+the UI.  Parts given in *(angle brackets)* are required, parts in [square brackets]
+are optional:
+
++broadcast>/+bcast>:  turns on rebroadcasting|r
+
++on [T]>:  turns on full tracking, optionally setting threshold to T|r
+
++off>:  turns off everything|r
+
++thre[shold] T>:  sets tracking threshold to T|r
+
++list>:  prints saved text names and numbers|r
+
++save *(your set name)*>:  saves texts as "your set name"|r
+
++restore *(N)*>:  restores set number N|r
+
++delete *(N)*>:  deletes set number N|r
+
++help>:  opens the UI to the help tab|r
+
++toggle>:  opens or closes the UI (used mostly in automated wrappers)|r
+
+
+If you use the slash commands to enable tracking or set loot thresholds, you can
+give numbers or common names for the threshold.  For example, "0", "poor", "trash",
+"gray"/"grey" are all the same, "4", "epic", "purple" are the same, and so on.
+
+If you give an unrecognized argument to the </ouroloot> slash command, it will
+search the tab titles left to right for a title beginning with the same letters as
+the argument, and open the display to that tab.  For example, <"/loot a"> would
+open the <Attendance> tab, and <"/loot ad"> would open the <Advanced> tab.  If
+you had added a theoretical <EQDKP> tab, then <"/loot eq"> would be the fastest
+way to see it.
+]]
+
+T.todo = [[
+If you have ideas or complaints or bug reports, first check the Bugs subcategories
+to see if they're already being worked on.  Bug reports are especially helpful
+if you can include a screenshot (in whatever image format you find convenient).
+
+Click the "About" line on the left for contact information.
+]]
+
+T.todo_gotchas = [[
+<Things Which Might Surprise You> (and things I'm not sure I like in the
+current design):
+
+If you relog (or get disconnected) while in a raid group, behavior when you log
+back in can be surprising.  If you have already recorded loot (and therefore
+the loot list is restored), then OL assumes it's from the current raid and should
+reactivate automatically in full tracking mode.  If you were tracking but no
+loot had dropped yet (and therefore there was nothing *to* restore), then OL
+will pop up its reminder and ask again.  Either way, if you were only broadcasting
+then OL will *not* go back to only broadcasting.  This is probably a bug.
+
+The saved texts feature does exactly that: only saves the generated texts, not
+the full loot list.  Restoring will get you a blank first tab and whatever you
+previously had in the various generated text tabs.
+
+Using the right-click menu to change an item's treatment (shard, offspec, etc)
+does not broadcast that change to anyone else who is also tracking.  Changing
+the item and then selecting "rebroadcast this item" *does* include that extra
+info.  Doing that on the initial "mark as xxx" action is... tricky.
+
+The generated text tries to only list the name of the instance if it has not
+already been listed, or if it is different than the instance of the previous
+boss.  If you relog, the "last printed instance name" will be forgotten, and
+you'll see redundant raid instance names appearing in the text.
+
+After a boss wipe, multiple broadcasting players releasing spirit more than
+several seconds apart can cause spurious "wipe" entries (of zero duration) on
+the loot grid.  The surefire way to avoid this is to not release spirit until
+DBM announces the wipe, but the problem isn't serious enough to really worry
+about.  (Right-click the spurious entries and delete them.)
+]]
+
+T.todo_todolist = todo
+
+
+-- Fill out the table that will actually be used.  Join adjacent lines here so
+-- that they'll wrap properly.
+addon.helptext = {}
+for k,text in pairs(T) do
+	local funkykey = k:gsub('_','\001')  -- this is how TreeGroup makes unique keys
+	local wrapped = text
+	wrapped = wrapped:gsub ("[%+<>]", replacement_colors)
+	wrapped = wrapped:gsub ("([^\n])\n([^\n])", "%1 %2")
+	wrapped = wrapped:gsub ("|r\n\n", "|r\n")
+	wrapped = wrapped:gsub ("Ouroboros", "|cffa335ee<Ouroboros>|r")
+	wrapped = wrapped:gsub ("%*%(", "<") :gsub("%)%*", ">")
+	addon.helptext[funkykey] = wrapped
+end
+end -- do scope
+todo = nil
+
+
+-- Don't bother recording any of this loot:
+addon.default_itemfilter = {
+	[29434]		= true, -- Badge of Justice
+	[40752]		= true, -- Emblem of Heroism
+	[40753]		= true, -- Emblem of Valor
+	[45624]		= true, -- Emblem of Conquest
+	-- could probably remove the above now
+	[43228]		= true, -- Stone Keeper's Shard
+	[47241]		= true, -- Emblem of Triumph
+	[49426]		= true, -- Emblem of Frost
+}
+
+-- vim:noet