Delete raidboss.js
This commit is contained in:
		
							parent
							
								
									aaff2166c1
								
							
						
					
					
						commit
						be1bf1dca4
					
				
							
								
								
									
										892
									
								
								raidboss.js
									
									
									
									
									
								
							
							
						
						
									
										892
									
								
								raidboss.js
									
									
									
									
									
								
							| @ -1,892 +0,0 @@ | ||||
| 'use strict'; | ||||
| 
 | ||||
| // Rename this file to `raidboss.js` and edit it to change the raidboss ui.
 | ||||
| // This file is Javascript.  Anything after "//" on a line is a comment.
 | ||||
| // If you edit this file, remember to reload ACT or click the "Reload overlay"
 | ||||
| // button on the raidboss CactbotOverlay.
 | ||||
| // If there are errors in this file, they will appear in the OverlayPlugin.dll
 | ||||
| // log window in ACT.
 | ||||
| 
 | ||||
| 
 | ||||
| // If false, no timeline of upcoming events will be displayed during fights.
 | ||||
| Options.TimelineEnabled = true; | ||||
| 
 | ||||
| // If false, triggers and timelines will not show or speak text, nor play
 | ||||
| // sounds.
 | ||||
| Options.AlertsEnabled = true; | ||||
| 
 | ||||
| // If false, then visual text alerts are not shown for triggers.
 | ||||
| Options.TextAlertsEnabled = true; | ||||
| 
 | ||||
| // If false, then sound alerts are not played.
 | ||||
| Options.SoundAlertsEnabled = true; | ||||
| 
 | ||||
| // If true, then text-to-speech alerts are read aloud.  Text-to-speech takes
 | ||||
| // priority over custom sounds and text noises.  If a trigger does not have
 | ||||
| // a tts entry then it will fall back on text and sound (if turned on).
 | ||||
| Options.SpokenAlertsEnabled = true; | ||||
| 
 | ||||
| // Will override the singular TTS alerts if a group alert is set for a specific trigger
 | ||||
| // Change phrasing to make sense in a group setting
 | ||||
| Options.GroupSpokenAlertsEnabled = true; | ||||
| 
 | ||||
| 
 | ||||
| // Show timer bars for events that will happen in this many seconds or less.
 | ||||
| Options.ShowTimerBarsAtSeconds = 30; | ||||
| 
 | ||||
| // Once a timer bar reaches 0, keep it around this long after.
 | ||||
| Options.KeepExpiredTimerBarsForSeconds = 0.7; | ||||
| 
 | ||||
| // Change the bar color to highlight it is coming up when this many seconds
 | ||||
| // are left on it.
 | ||||
| Options.BarExpiresSoonSeconds = 8; | ||||
| 
 | ||||
| // Number of bars to show in the space given to the UI by css.
 | ||||
| Options.MaxNumberOfTimerBars = 8; | ||||
| 
 | ||||
| 
 | ||||
| // Path to sound played for info-priority text popups, or when "Info" is
 | ||||
| // specified as the sound name.
 | ||||
| Options.InfoSound = '../../resources/sounds/freesound/percussion_hit.ogg'; | ||||
| 
 | ||||
| // Path to sound played for alert-priority text popups, or when "Alert" is
 | ||||
| // specified as the sound name.
 | ||||
| Options.AlertSound = '../../resources/sounds/BigWigs/Alert.ogg'; | ||||
| 
 | ||||
| // Path to sound played for alarm-priority text popups, or when "Alarm" is
 | ||||
| // specified as the sound name.
 | ||||
| Options.AlarmSound = '../../resources/sounds/BigWigs/Alarm.ogg'; | ||||
| 
 | ||||
| // Path to sound played when "Long" is specified as the sound name.
 | ||||
| Options.LongSound = '../../resources/sounds/BigWigs/Long.ogg'; | ||||
| 
 | ||||
| // Volume between 0 and 1 to play the InfoSound at.
 | ||||
| Options.InfoSoundVolume = 1; | ||||
| 
 | ||||
| // Volume between 0 and 1 to play the AlertSound at.
 | ||||
| Options.AlertSoundVolume = 2; | ||||
| 
 | ||||
| // Volume between 0 and 1 to play the AlarmSound at.
 | ||||
| Options.AlarmSoundVolume = 1; | ||||
| 
 | ||||
| // Volume between 0 and 1 to play the LongSound at.
 | ||||
| Options.LongSoundVolume = 1; | ||||
| 
 | ||||
| // A set of nicknames to use for players, when trying to shorten names.
 | ||||
| Options.PlayerNicks = { | ||||
|   'Darkest Edgelord': 'Mary', | ||||
|   'Captain Jimmy': 'Jimmy', | ||||
|   'Pipira Pira': '🐟', | ||||
| }; | ||||
| 
 | ||||
| // A set of triggers to be ignored. The key is the 'id' of the trigger, and
 | ||||
| // the value should be true if the trigger is to be ignored, whereas false
 | ||||
| // will have no effect.  The trigger ids can be found in the trigger files for
 | ||||
| // each fight in the files inside of this directory:
 | ||||
| // https://github.com/quisquous/cactbot/tree/master/ui/raidboss/data/triggers
 | ||||
| Options.DisabledTriggers = { | ||||
|   // Disable the /psych trigger from `test.js` in Summerford Farms.
 | ||||
|   'Test Psych': true, | ||||
|   // Disable the "eye lasers" trigger from `drowned_city_of_skalla.js`.
 | ||||
|   'Hrodric Words': true, | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| // An array of user-defined triggers, in the format defined in the readme:
 | ||||
| // https://github.com/quisquous/cactbot/tree/master/ui/raidboss/data/triggers
 | ||||
| Options.Triggers = [ | ||||
| 
 | ||||
|   // (1) Simple example trigger: show text on screen when you die.
 | ||||
|   { | ||||
|     // Match every zone.
 | ||||
|     zoneRegex: /.*/, | ||||
|     triggers: [ | ||||
|       { | ||||
|         regex: /:You are defeated by/, | ||||
|         alarmText: 'YOU DIED', | ||||
|       }, | ||||
|       { | ||||
|         regex: /:\y{Name}:\y{AbilityCode}:Chain Stratagem:/, | ||||
|         infoText: 'Chain Stratagem', | ||||
|       }, | ||||
|     { | ||||
|         regex: /:\y{Name}:\y{AbilityCode}:Trick Attack:/, | ||||
|         infoText: 'Trick Attack', | ||||
|       }, | ||||
|       { | ||||
|         regex: /:\y{Name}:\y{AbilityCode}:Devilment:/, | ||||
|         infoText: 'Devilment', | ||||
|       }, | ||||
|     ], | ||||
|   }, | ||||
| 
 | ||||
|   // You can add other triggers for other zones too.  Here's more examples:
 | ||||
|   //
 | ||||
|   // (2) Maybe you want a silly kissy noise whenever you a blow a kiss in
 | ||||
|   // a housing zone!
 | ||||
|   { | ||||
|     zoneRegex: /^(Mist|The Goblet|The Lavender Beds|Shirogane)$/, | ||||
|     triggers: [ | ||||
|         { | ||||
|         regex: /You blow a kiss/, | ||||
|         alertText: 'In or Out', | ||||
|       }, | ||||
|     ], | ||||
|   }, | ||||
| 
 | ||||
|   // (3) Maybe you want to modify some existing timeline and triggers:
 | ||||
|   //
 | ||||
|   // Add some extra triggers to the test timeline.  To use it, see:
 | ||||
|   // https://github.com/quisquous/cactbot/blob/master/ui/raidboss/data/timelines/test.txt
 | ||||
|   { | ||||
|     // The zone this should apply to.
 | ||||
|     // This should match the zoneRegex in the triggers file.
 | ||||
|     zoneRegex: /^Middle La Noscea$/, | ||||
| 
 | ||||
|     // Add some additional timeline events to the test timeline.
 | ||||
|     timeline: ` | ||||
|        | ||||
|       # Note: Hash marks are comments inside of a timeline file. | ||||
|       # This format is the same as ACT timeline. | ||||
| 
 | ||||
|       # Add a new personal event to the test timeline. | ||||
|       2 "(test)" | ||||
|       3 "(test2)" | ||||
|       4 "(test4)" | ||||
| 
 | ||||
|       # Remind yourself to shield the tank 5 seconds before final sting. | ||||
|       infotext "Final Sting" before 5 "shield the tank" | ||||
| 
 | ||||
|       # Events you don't like, you can hide.  This gets rid of "Long Castbar". | ||||
|       hideall "Long Castbar" | ||||
|     `,
 | ||||
| 
 | ||||
|     // Add some additional triggers that will go off in Summerford Farms.
 | ||||
|     triggers: [ | ||||
|       // If you provoke the striking dummy (or anything), this will trigger.
 | ||||
|       { | ||||
|         id: 'User Example Provoke', | ||||
|         regex: /You use Sprint/, | ||||
|         alarmText: function(data) { | ||||
|           return data.job + 'DU BIST EIN RETURN'; | ||||
|         }, | ||||
|         infoText: 'Sprint!', | ||||
|         tts: 'provoke', | ||||
|       }, | ||||
| 
 | ||||
|       // A more complicated regen trigger.
 | ||||
|       { | ||||
|         id: 'User Example Regen', | ||||
|         // This will match log lines from ACT that look like this:
 | ||||
|         // "Nacho Queen gains the effect of Regen from Taco Cat for 21.00 Seconds."
 | ||||
|         regex: /gains the effect of Regen from \y{Name} for (\y{Float}) Seconds/, | ||||
|         delaySeconds: function(data, matches) { | ||||
|           // Wait the amount of seconds regen lasts before reminding you to
 | ||||
|           // reapply it.  This is not smart enough to figure out if you
 | ||||
|           // cast it twice, and is left as an exercise for the reader to
 | ||||
|           // figure out how to do so via storing variables on `data`.
 | ||||
|           return data.ParseLocaleFloat(matches[1]); | ||||
|         }, | ||||
| 
 | ||||
|         alertText: 'Regen Reminder', | ||||
|         tts: 'regen', | ||||
|       }, | ||||
|     ], | ||||
|   }, | ||||
|   // EDEN SAVAGE FIGHTS
 | ||||
|   // E1S
 | ||||
|   { | ||||
|     zoneRegex: /^Eden's Gate: Resurrection \(Savage\)$/, | ||||
|     timeline: ` | ||||
| 
 | ||||
|     # dnc cooldowns | ||||
|     88 "Shield Samba0" | ||||
|     629.6 "Shield Samba1" | ||||
| 
 | ||||
|     # smn cooldowns | ||||
|     105.8 "Addle0" | ||||
|     700.8 "Addle1" | ||||
| 
 | ||||
|     # mnk cooldowns | ||||
|     11.8 "Mantra0" | ||||
|     105.8 "Mantra1" | ||||
|     194.6 "Mantra2" | ||||
|     629.6 "Mantra3" | ||||
| 
 | ||||
|     # gnb cooldowns | ||||
|     # invul | ||||
|     576.0 "Superbolide0" | ||||
| 
 | ||||
|     # Repraisal & HoL | ||||
|     11.8 "Repraisal & HoL0" | ||||
|     143.0 "Repraisal & HoL1" | ||||
|     589.0 "Repraisal & HoL2" | ||||
|     726.3 "Repraisal & HoL3" | ||||
| 
 | ||||
|     # sch cooldowns | ||||
|     11.8 "recit and indom" | ||||
|     153.6 "Seraph 0" | ||||
|     528.6 "Fairy Stuff" | ||||
|     577.6 "recit and excog" | ||||
|     589.1 "Seraph 1" | ||||
| 
 | ||||
|     # whm cooldowns | ||||
|     59.4 "Benediction0" | ||||
|     88 "Indulgence0" | ||||
|     568.6 "Regens" | ||||
|     629.6 "Temperance" | ||||
|     678.1 "Benediction1" | ||||
|     726.3 "Indulgence1" | ||||
| 
 | ||||
|     # choose what you want to hide! (add # at the beginning to "hideall" / remove # to show) | ||||
|     # DANCER | ||||
|     hideall "Shield Samba0" | ||||
|     hideall "Shield Samba1" | ||||
|      | ||||
|     # SUMMONER / BLACKMAGE / REDMAGE | ||||
|     hideall "Addle0" | ||||
|     hideall "Addle1" | ||||
| 
 | ||||
|     # MONK | ||||
|     hideall "Mantra0" | ||||
|     hideall "Mantra1" | ||||
|     hideall "Mantra2" | ||||
|     hideall "Mantra3" | ||||
| 
 | ||||
|     # GUNBREAKER | ||||
|     hideall "Superbolide0" | ||||
|     hideall "Repraisal & HoL0" | ||||
|     hideall "Repraisal & HoL1" | ||||
|     hideall "Repraisal & HoL2" | ||||
|     hideall "Repraisal & HoL3" | ||||
| 
 | ||||
|     # SCHOLAR | ||||
|     hideall "Seraph0" | ||||
|     hideall "Seraph1" | ||||
|     hideall "recit and indom" | ||||
|     hideall "Fairy Stuff" | ||||
|     hideall "recitand excog" | ||||
| 
 | ||||
|     # WHITEMAGE  | ||||
|     hideall "Benediction0" | ||||
|     hideall "Benediction1" | ||||
|     hideall "Indulgence0" | ||||
|     hideall "Indulgence1" | ||||
|     hideall "Regens" | ||||
|     hideall "Temperance" | ||||
| 
 | ||||
| 
 | ||||
|     `,
 | ||||
|     timelineTriggers: [ | ||||
|       // DANCER
 | ||||
|         { | ||||
|           regex: /Shield Samba\d/, | ||||
|           condition: function(data) { | ||||
|           return data.job == 'DNC'; | ||||
|           }, | ||||
|             beforeSeconds: 4, | ||||
|             alarmText: 'USE RAIDCOOLDOWN', | ||||
|             tts: 'Shield Samba', | ||||
|         }, | ||||
|       // SUMMONER
 | ||||
|         { | ||||
|           regex: /Addle\d/, | ||||
|           condition: function(data) { | ||||
|           return data.job == 'SMN' || data.job == 'BLM' || data.job == 'RDM'; | ||||
|           }, | ||||
|             beforeSeconds: 4, | ||||
|             alarmText: 'USE RAIDCOOLDOWN', | ||||
|             tts: 'Use Addle', | ||||
|         }, | ||||
|       // MONK
 | ||||
|         { | ||||
|           regex: /Mantra\d/, | ||||
|           condition: function(data) { | ||||
|           return data.job == 'MNK'; | ||||
|           }, | ||||
|             beforeSeconds: 2, | ||||
|             alarmText: 'USE RAIDCOOLDOWN', | ||||
|             tts: 'Use Mantra', | ||||
|         }, | ||||
|       // GUNBREAKER INVULS
 | ||||
|         { | ||||
|           regex: /Superbolide0\d/, | ||||
|           condition: function(data) { | ||||
|           return data.job == 'GNB'; | ||||
|           }, | ||||
|             beforeSeconds: 6, | ||||
|             alarmText: 'USE INVUL', | ||||
|             tts: 'Invul next Tankbuster', | ||||
|         }, | ||||
|       // GUNBREAKER REPRAISEL AND HEART OF LIGHT
 | ||||
|         { | ||||
|           regex: /Repraisal & HoL\d/, | ||||
|           condition: function(data) { | ||||
|           return data.job == 'GNB'; | ||||
|           }, | ||||
|             beforeSeconds: 4, | ||||
|             alarmText: 'USE RAIDCOOLDOWN', | ||||
|             tts: 'Repraisal and Heart of Light', | ||||
|         }, | ||||
|       // SCHOLAR -- LOTS OF SCHOLAR
 | ||||
|         { | ||||
|           regex: /recit and indom/, | ||||
|           condition: function(data) { | ||||
|           return data.job == 'SCH'; | ||||
|           }, | ||||
|             beforeSeconds: 4, | ||||
|             alarmText: 'RECIT + INDOM', | ||||
|             tts: 'Recitation and Indom', | ||||
|         }, | ||||
|         { | ||||
|           regex: /Seraph0/, | ||||
|           condition: function(data) { | ||||
|           return data.job == 'SCH'; | ||||
|           }, | ||||
|             beforeSeconds: 4, | ||||
|             alarmText: 'SERAPH', | ||||
|             tts: 'SERAPH', | ||||
|         }, | ||||
|         { | ||||
|           regex: /Fairy Stuff/, | ||||
|           condition: function(data) { | ||||
|           return data.job == 'SCH'; | ||||
|           }, | ||||
|             beforeSeconds: 4, | ||||
|             alarmText: 'FAIRY INC', | ||||
|             tts: 'use fairy', | ||||
|         }, | ||||
|         { | ||||
|           regex: /recit and excog/, | ||||
|           condition: function(data) { | ||||
|           return data.job == 'SCH'; | ||||
|           }, | ||||
|             beforeSeconds: 4, | ||||
|             alarmText: 'RECIT + EXCOG', | ||||
|             tts: 'RECIT + EXCOG second hit', | ||||
|         }, | ||||
|         { | ||||
|           regex: /Seraph1/, | ||||
|           condition: function(data) { | ||||
|           return data.job == 'SCH'; | ||||
|           }, | ||||
|             beforeSeconds: 4, | ||||
|             alarmText: 'SERAPH', | ||||
|             tts: 'SERAPH', | ||||
|         }, | ||||
|       // Whitemage
 | ||||
|         { | ||||
|           regex: /Benediction\d/, | ||||
|           condition: function(data) { | ||||
|           return data.job == 'WHM'; | ||||
|           }, | ||||
|             beforeSeconds: 4, | ||||
|             alarmText: 'BENEDICTION AFTER TANKBUSTER', | ||||
|             tts: 'Benediction after Tankbuster', | ||||
|         }, | ||||
|         { | ||||
|           regex: /Indulgence\d/, | ||||
|           condition: function(data) { | ||||
|           return data.job == 'WHM'; | ||||
|           }, | ||||
|             beforeSeconds: 4, | ||||
|             alarmText: 'USE INDULGENCE AFTER DELTA', | ||||
|             tts: 'INDULGENCE AFTER DELTA', | ||||
|         }, | ||||
|         { | ||||
|           regex: /Regens/, | ||||
|           condition: function(data) { | ||||
|           return data.job == 'WHM'; | ||||
|           }, | ||||
|             beforeSeconds: 4, | ||||
|             alarmText: 'USE REGEN FOR DPS MARKS', | ||||
|             tts: 'Regen for DPS marks', | ||||
|         }, | ||||
|         { | ||||
|           regex: /Temperance/, | ||||
|           condition: function(data) { | ||||
|           return data.job == 'WHM'; | ||||
|           }, | ||||
|             beforeSeconds: 4, | ||||
|             alarmText: 'USE TEMPERANCE', | ||||
|             tts: 'use temperance for aoe', | ||||
|         }, | ||||
|     ], | ||||
|   }, | ||||
|   // E2S
 | ||||
|   { | ||||
|     zoneRegex: /^Eden's Gate: Descent \(Savage\)$/, | ||||
|     timeline: ` | ||||
| 
 | ||||
|     # dnc cooldowns | ||||
|     25.2 "Shield Samba0" | ||||
|     203.2 "Shield Samba1" | ||||
|     429.8 "Shield Samba2" | ||||
|     602.3 "Shield Samba3" | ||||
| 
 | ||||
|     # smn cooldowns | ||||
|     105.2 "Addle0" | ||||
|     224.7 "Addle1" | ||||
|     381.4 "Addle2" | ||||
|     499.0 "Addle3" | ||||
|     602.3 "Addle4" | ||||
| 
 | ||||
|     # mnk cooldowns | ||||
|     132.1 "Mantra0" | ||||
|     224.7 "Mantra1" | ||||
|     381.4 "Mantra2" | ||||
|     558.2 "Mantra3" | ||||
| 
 | ||||
|     # gnb cooldowns | ||||
|     # invul | ||||
| 
 | ||||
|     # Repraisal & HoL | ||||
|     25.2 "Repraisal & HoL0" | ||||
|     105.2 "Repraisal & HoL1" | ||||
|     203.2 "Repraisal & HoL2" | ||||
|     272.7 "Repraisal & HoL3" | ||||
|     381.4 "Repraisal & HoL4" | ||||
|     499.0 "Repraisal & HoL5" | ||||
|     602.3 "Repraisal & HoL6" | ||||
| 
 | ||||
|     # sch cooldowns | ||||
|     25.2 "recit and indom0" | ||||
|     224.7 "Succ and soil0" | ||||
|     272.7 "Soil0" | ||||
|     381.4 "Succ and soil1" | ||||
|     386.7 "recit and indom1" | ||||
|     429.8 "recit and indom2" | ||||
|     499.0 "Soil1" | ||||
| 
 | ||||
|     # whm cooldowns | ||||
|     106.6 "Temperance0" | ||||
|     134.1 "Indulgence0" | ||||
|     224.7 "Indulgence1" | ||||
|     295.5 "Indulgence2" | ||||
|     386.7 "Indulgence3" | ||||
|     381.4 "Temperance1" | ||||
|     429.8 "Indulgence4" | ||||
|     499.0 "Indulgence5" | ||||
|     558.0 "Indulgence and Temperance" | ||||
| 
 | ||||
|     # choose what you want to hide! (add # at the beginning to "hideall" / remove # to show) | ||||
|     # DANCER | ||||
|     hideall "Shield Samba0" | ||||
|     hideall "Shield Samba1" | ||||
|     hideall "Shield Samba2" | ||||
|     hideall "Shield Samba3" | ||||
|      | ||||
|     # SUMMONER / BLACKMAGE / REDMAGE | ||||
|     hideall "Addle0" | ||||
|     hideall "Addle1" | ||||
|     hideall "Addle2" | ||||
|     hideall "Addle3" | ||||
|     hideall "Addle4" | ||||
| 
 | ||||
|     # MONK | ||||
|     hideall "Mantra0" | ||||
|     hideall "Mantra1" | ||||
|     hideall "Mantra2" | ||||
|     hideall "Mantra3" | ||||
| 
 | ||||
|     # GUNBREAKER | ||||
|     hideall "Repraisal & HoL0" | ||||
|     hideall "Repraisal & HoL1" | ||||
|     hideall "Repraisal & HoL2" | ||||
|     hideall "Repraisal & HoL3" | ||||
|     hideall "Repraisal & HoL4" | ||||
|     hideall "Repraisal & HoL5" | ||||
|     hideall "Repraisal & HoL6" | ||||
| 
 | ||||
|     # SCHOLAR | ||||
|     hideall "recit and indom0" | ||||
|     hideall "Succ and soil0" | ||||
|     hideall "Soil0" | ||||
|     hideall "Succ and soil1" | ||||
|     hideall "recit and indom1" | ||||
|     hideall "recit and indom2" | ||||
|     hideall "Soil1" | ||||
| 
 | ||||
|     # WHITEMAGE  | ||||
|     hideall "Temperance0" | ||||
|     hideall "Indulgence0" | ||||
|     hideall "Indulgence1" | ||||
|     hideall "Indulgence2" | ||||
|     hideall "Indulgence3" | ||||
|     hideall "Temperance1" | ||||
|     hideall "Indulgence4" | ||||
|     hideall "Indulgence5" | ||||
|     hideall "Indulgence and Temperance" | ||||
|     `,
 | ||||
|     timelineTriggers: [ | ||||
|       // DANCER
 | ||||
|         { | ||||
|           regex: /Shield Samba\d/, | ||||
|           condition: function(data) { | ||||
|           return data.job == 'DNC'; | ||||
|           }, | ||||
|             beforeSeconds: 4, | ||||
|             alarmText: 'USE RAIDCOOLDOWN', | ||||
|             tts: 'Shield Samba', | ||||
|         }, | ||||
|       // SUMMONER / BLACKMAGE / REDMAGE - Just for 1 Magical DPS
 | ||||
|         { | ||||
|           regex: /Addle\d/, | ||||
|           condition: function(data) { | ||||
|           return data.job == 'SMN' || data.job == 'BLM' || data.job == 'RDM'; | ||||
|           }, | ||||
|             beforeSeconds: 4, | ||||
|             alarmText: 'USE RAIDCOOLDOWN', | ||||
|             tts: 'Use Addle', | ||||
|         }, | ||||
|       // MONK
 | ||||
|         { | ||||
|           regex: /Mantra\d/, | ||||
|           condition: function(data) { | ||||
|           return data.job == 'MNK'; | ||||
|           }, | ||||
|             beforeSeconds: 2, | ||||
|             alarmText: 'USE RAIDCOOLDOWN', | ||||
|             tts: 'Use Mantra', | ||||
|         }, | ||||
|       // GUNBREAKER INVULS - Currently Empty for this fight
 | ||||
|       // GUNBREAKER REPRAISEL AND HEART OF LIGHT
 | ||||
|         { | ||||
|           regex: /Repraisal & HoL\d/, | ||||
|           condition: function(data) { | ||||
|           return data.job == 'GNB'; | ||||
|           }, | ||||
|             beforeSeconds: 4, | ||||
|             alarmText: 'USE RAIDCOOLDOWN', | ||||
|             tts: 'Repraisal and Heart of Light', | ||||
|         }, | ||||
|       // SCHOLAR -- LOTS OF SCHOLAR
 | ||||
|         { | ||||
|           regex: /recit and indom\d/, | ||||
|           condition: function(data) { | ||||
|           return data.job == 'SCH'; | ||||
|           }, | ||||
|             beforeSeconds: 4, | ||||
|             alarmText: 'RECIT + INDOM', | ||||
|             tts: 'Recitation and Indom', | ||||
|         }, | ||||
|         { | ||||
|           regex: /Succ and soil\d/, | ||||
|           condition: function(data) { | ||||
|           return data.job == 'SCH'; | ||||
|           }, | ||||
|             beforeSeconds: 4, | ||||
|             alarmText: 'SUCC AND SOIL', | ||||
|             tts: 'Succ and soil', | ||||
|         }, | ||||
|         { | ||||
|           regex: /Soil\d/, | ||||
|           condition: function(data) { | ||||
|           return data.job == 'SCH'; | ||||
|           }, | ||||
|             beforeSeconds: 4, | ||||
|             alarmText: 'USE SOIL', | ||||
|             tts: 'use soil', | ||||
|         }, | ||||
|       // Whitemage
 | ||||
|         { | ||||
|           regex: /Temperance\d/, | ||||
|           condition: function(data) { | ||||
|           return data.job == 'WHM'; | ||||
|           }, | ||||
|             beforeSeconds: 4, | ||||
|             alarmText: 'USE TEMPERANCE', | ||||
|             tts: 'use temperance for aoe', | ||||
|         }, | ||||
|         { | ||||
|           regex: /Indulgence\d/, | ||||
|           condition: function(data) { | ||||
|           return data.job == 'WHM'; | ||||
|           }, | ||||
|             beforeSeconds: 4, | ||||
|             alarmText: 'USE INDULGENCE', | ||||
|             tts: 'use indulgence for aoe', | ||||
|         }, | ||||
|         { | ||||
|           regex: /Indulgence and Temperance/, | ||||
|           condition: function(data) { | ||||
|           return data.job == 'WHM'; | ||||
|           }, | ||||
|             beforeSeconds: 4, | ||||
|             alarmText: 'USE INDULGENCE AND TEMPERANCE', | ||||
|             tts: 'indulgence and temperance', | ||||
|         }, | ||||
|     ], | ||||
|   }, | ||||
|   // E3S
 | ||||
|   { | ||||
|     zoneRegex: /^Eden's Gate: Inundation \(Savage\)$/, | ||||
|     timeline: ` | ||||
| 
 | ||||
|     # dnc cooldowns | ||||
|     4.1 "Shield Samba0" | ||||
|     185.1 "Shield Samba1" | ||||
|     429.8 "Shield Samba2" | ||||
| 
 | ||||
|     # smn cooldowns | ||||
|     127.6 "Addle0" | ||||
|     223.4 "Addle1" | ||||
|     316.2 "Addle2" | ||||
|     422.4 "Addle3" | ||||
|     540.7 "Addle4" | ||||
| 
 | ||||
|     # mnk cooldowns | ||||
|     112.0 "Mantra0" | ||||
|     223.4 "Mantra1" | ||||
|     429.8 "Mantra2" | ||||
|     488.0 "Mantra3" | ||||
|     582.0 "Mantra4" | ||||
| 
 | ||||
|     # gnb cooldowns | ||||
|     # invul | ||||
|     175.7 "Superbolide0" | ||||
| 
 | ||||
|     # Repraisal & HoL | ||||
|     69.5 "Repraisal & HoL0" | ||||
|     168.5 "Repraisal & HoL1" | ||||
|     264.1 "Repraisal & HoL2" | ||||
|     373.0 "Repraisal & HoL3" | ||||
|     441.0 "Repraisal & HoL4" | ||||
|     524.4 "Repraisal & HoL5" | ||||
|     587.7 "Repraisal & HoL6" | ||||
| 
 | ||||
|     # sch cooldowns | ||||
|     146.0 "Seraph0" | ||||
|     358.0 "Seraph1" | ||||
|     441.0 "Fey Illumination" | ||||
|     449.0 "recit and indom" | ||||
|     524.4 "Seraph2" | ||||
| 
 | ||||
|     # whm cooldowns | ||||
|     12.6 "Indulgence0" | ||||
|     127.6 "Indulgence and Temperance0" | ||||
|     197.1 "Indulgence1" | ||||
|     316.4 "Indulgence and Temperance1" | ||||
|     371.0 "Indulgence2" | ||||
|     441.0 "Temperance0" | ||||
|     493.0 "Indulgence3" | ||||
|     576.7 "Temperance1" | ||||
| 
 | ||||
|     # choose what you want to hide! (add # at the beginning to "hideall" / remove # to show) | ||||
|     # DANCER | ||||
|     hideall "Shield Samba0" | ||||
|     hideall "Shield Samba1" | ||||
|     hideall "Shield Samba2" | ||||
|      | ||||
|     # SUMMONER / BLACKMAGE / REDMAGE | ||||
|     hideall "Addle0" | ||||
|     hideall "Addle1" | ||||
|     hideall "Addle2" | ||||
|     hideall "Addle3" | ||||
|     hideall "Addle4" | ||||
| 
 | ||||
|     # MONK | ||||
|     hideall "Mantra0" | ||||
|     hideall "Mantra1" | ||||
|     hideall "Mantra2" | ||||
|     hideall "Mantra3" | ||||
|     hideall "Mantra4" | ||||
| 
 | ||||
|     # GUNBREAKER | ||||
|     hideall "Superbolide0" | ||||
|     hideall "Repraisal & HoL0" | ||||
|     hideall "Repraisal & HoL1" | ||||
|     hideall "Repraisal & HoL2" | ||||
|     hideall "Repraisal & HoL3" | ||||
|     hideall "Repraisal & HoL4" | ||||
|     hideall "Repraisal & HoL5" | ||||
|     hideall "Repraisal & HoL6" | ||||
| 
 | ||||
|     # SCHOLAR | ||||
|     hideall "Seraph0" | ||||
|     hideall "Seraph1" | ||||
|     hideall "Fey Illumination" | ||||
|     hideall "recit and indom" | ||||
|     hideall "Seraph2" | ||||
| 
 | ||||
|     # WHITEMAGE  | ||||
|     hideall "Indulgence0" | ||||
|     hideall "Indulgence and Temperance0" | ||||
|     hideall "Indulgence1" | ||||
|     hideall "Indulgence and Temperance1" | ||||
|     hideall "Indulgence2" | ||||
|     hideall "Temperance0" | ||||
|     hideall "Indulgence3" | ||||
|     hideall "Temperance1" | ||||
| 
 | ||||
|     `,
 | ||||
|     timelineTriggers: [ | ||||
|       // DANCER
 | ||||
|         { | ||||
|           regex: /Shield Samba\d/, | ||||
|           condition: function(data) { | ||||
|           return data.job == 'DNC'; | ||||
|           }, | ||||
|             beforeSeconds: 4, | ||||
|             alarmText: 'USE RAIDCOOLDOWN', | ||||
|             tts: 'Shield Samba', | ||||
|         }, | ||||
|       // SUMMONER
 | ||||
|         { | ||||
|           regex: /Addle\d/, | ||||
|           condition: function(data) { | ||||
|           return data.job == 'SMN' || data.job == 'BLM'; | ||||
|           }, | ||||
|             beforeSeconds: 4, | ||||
|             alarmText: 'USE RAIDCOOLDOWN', | ||||
|             tts: 'Use Addle', | ||||
|         }, | ||||
|       // MONK
 | ||||
|         { | ||||
|           regex: /Mantra\d/, | ||||
|           condition: function(data) { | ||||
|           return data.job == 'MNK'; | ||||
|           }, | ||||
|             beforeSeconds: 2, | ||||
|             alarmText: 'USE RAIDCOOLDOWN', | ||||
|             tts: 'Use Mantra', | ||||
|         }, | ||||
|       // GUNBREAKER INVULS
 | ||||
|         { | ||||
|           regex: /Superbolide0\d/, | ||||
|           condition: function(data) { | ||||
|           return data.job == 'GNB'; | ||||
|           }, | ||||
|             beforeSeconds: 6, | ||||
|             alarmText: 'USE INVUL', | ||||
|             tts: 'Invul next Tankbuster', | ||||
|         }, | ||||
|       // GUNBREAKER REPRAISEL AND HEART OF LIGHT
 | ||||
|         { | ||||
|           regex: /Repraisal & HoL\d/, | ||||
|           condition: function(data) { | ||||
|           return data.job == 'GNB'; | ||||
|           }, | ||||
|             beforeSeconds: 4, | ||||
|             alarmText: 'USE RAIDCOOLDOWN', | ||||
|             tts: 'Repraisal and Heart of Light', | ||||
|         }, | ||||
|       // SCHOLAR -- LOTS OF SCHOLAR
 | ||||
|         { | ||||
|           regex: /Seraph\d/, | ||||
|           condition: function(data) { | ||||
|           return data.job == 'SCH'; | ||||
|           }, | ||||
|             beforeSeconds: 4, | ||||
|             alarmText: 'SERAPH', | ||||
|             tts: 'SERAPH', | ||||
|         }, | ||||
|         { | ||||
|           regex: /Fey Illumination/, | ||||
|           condition: function(data) { | ||||
|           return data.job == 'SCH'; | ||||
|           }, | ||||
|             beforeSeconds: 4, | ||||
|             alarmText: 'USE FEY ILLUMINATION', | ||||
|             tts: 'fey illumination', | ||||
|         }, | ||||
|         { | ||||
|           regex: /recit and indom/, | ||||
|           condition: function(data) { | ||||
|           return data.job == 'SCH'; | ||||
|           }, | ||||
|             beforeSeconds: 4, | ||||
|             alarmText: 'RECIT + INDOM', | ||||
|             tts: 'Recitation and Indom', | ||||
|         }, | ||||
|       // Whitemage
 | ||||
|         { | ||||
|           regex: /Temperance\d/, | ||||
|           condition: function(data) { | ||||
|           return data.job == 'WHM'; | ||||
|           }, | ||||
|             beforeSeconds: 4, | ||||
|             alarmText: 'USE TEMPERANCE', | ||||
|             tts: 'use temperance for aoe', | ||||
|         }, | ||||
|         { | ||||
|           regex: /Indulgence\d/, | ||||
|           condition: function(data) { | ||||
|           return data.job == 'WHM'; | ||||
|           }, | ||||
|             beforeSeconds: 4, | ||||
|             alarmText: 'USE INDULGENCE', | ||||
|             tts: 'use indulgence for aoe', | ||||
|         }, | ||||
|         { | ||||
|           regex: /Indulgence and Temperance\d/, | ||||
|           condition: function(data) { | ||||
|           return data.job == 'WHM'; | ||||
|           }, | ||||
|             beforeSeconds: 4, | ||||
|             alarmText: 'USE INDULGENCE AND TEMPERANCE', | ||||
|             tts: 'indulgence and temperance', | ||||
|         }, | ||||
|     ], | ||||
|   }, | ||||
|   // E4S
 | ||||
| ]; | ||||
| 
 | ||||
| // Per trigger options.  By default, each trigger uses the global options
 | ||||
| // of TextAlertsEnabled, SoundAlertsEnabled, and SpokenAlertsEnabled.
 | ||||
| // These global options are set up top in this file.
 | ||||
| //
 | ||||
| // If a per trigger entry is present (regardless if true/false), it will
 | ||||
| // override whatever the global option is set to.
 | ||||
| //
 | ||||
| // SoundOverride (if present) behaves like 'sound' on an individual trigger, in
 | ||||
| // that it will take the place of the info/alert/alarm noise if no sound has
 | ||||
| // been specified.  SoundAlert (or SoundAlertsEnabled) must still be true for
 | ||||
| // that override to be played.
 | ||||
| //
 | ||||
| // Here's some example per trigger options that modify the test triggers
 | ||||
| // in Summerford Farms:
 | ||||
| // https://github.com/quisquous/cactbot/blob/master/ui/raidboss/data/triggers/test.js
 | ||||
| 
 | ||||
| Options.PerTriggerOptions = { | ||||
|   // Just like Options.DisabledTriggers, this is the trigger id to apply to.
 | ||||
|   // This overrides the settings for the "/laugh" trigger from the test
 | ||||
|   // triggers.  You can try this out by teleporting to Summerford Farms
 | ||||
|   // and /laugh at a striking dummy.  It will use these settings and moo.
 | ||||
|   'Test Laugh': { | ||||
|     // Play the text to speech.
 | ||||
|     SpeechAlert: false, | ||||
|     // Play the sound alert.
 | ||||
|     SoundAlert: true, | ||||
|     // Show the info/alert/alarm text on screen.
 | ||||
|     TextAlert: false, | ||||
|     // Play this sound (replacing any sound from the original).
 | ||||
|     SoundOverride: '../../resources/sounds/WeakAuras/CowMooing.ogg', | ||||
|     // Play the sound (if any) at this volume.
 | ||||
|     VolumeOverride: 0.3, | ||||
|   }, | ||||
|   // This makes /poke-ing a striking dummy in Summerford Farms only
 | ||||
|   // use text to speech with no visual text indicator or other sound.
 | ||||
|   'Test Poke': { | ||||
|     SpeechAlert: true, | ||||
|     SoundAlert: false, | ||||
|     TextAlert: false, | ||||
|     // Override the tts output as well.
 | ||||
|     TTSText: function(data) { | ||||
|       return 'Custom Poke (' + data.pokes + ')'; | ||||
|     }, | ||||
|   }, | ||||
|   // This makes /clap-ing a striking dummy override the default
 | ||||
|   // behavior to use the group TTS
 | ||||
|   'Test Clap': { | ||||
|     GroupSpeechAlert: true, | ||||
|     SpeechAlert: true, | ||||
|     SoundAlert: false, | ||||
|     TextAlert: false, | ||||
|     // Override the tts output as well.
 | ||||
|     GroupTTSText: function(data) { | ||||
|       return 'Custom CLAP'; | ||||
|     }, | ||||
|   }, | ||||
| }; | ||||
| 
 | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user