Patrick Engel
5 years ago
1 changed files with 0 additions and 892 deletions
@ -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…
Reference in new issue