diff --git a/README.md b/README.md index 00e74cf..48561e3 100644 --- a/README.md +++ b/README.md @@ -29,10 +29,10 @@ Open `http://localhost:8080` in your favorite browser. ### Tools needed * Node.js - https://nodejs.org/en/ - - Minimum version required: 12.16.1 + - Minimum version required: 20.11.0 - Check your version using `node --version` * npm - installed alongside Node.js - - Minimum version required: 6.13.4 + - Minimum version required: 10.2.4 - Check your version using `npm --version` * git - https://git-scm.com/downloads * A text editor e.g. Visual Studio Code - https://code.visualstudio.com/ diff --git a/src/main/create-operator-json/core/operatorIdEnum.js b/src/main/create-operator-json/core/operatorIdEnum.js index 4b33fa8..79a19e2 100644 --- a/src/main/create-operator-json/core/operatorIdEnum.js +++ b/src/main/create-operator-json/core/operatorIdEnum.js @@ -68,5 +68,16 @@ export default { thunderbird: 61, osa: 62, thorn:63, - azami:64 + azami:64, + sens:65, + grim:66, + solis:67, + brava:68, + fenrir:69, + ram:70, + tubarao:71, + deimos:72, + sentry:73, + striker:74, + skopos:75 }; diff --git a/src/main/create-operator-json/core/operatorList.js b/src/main/create-operator-json/core/operatorList.js index 226e6f2..893367c 100644 --- a/src/main/create-operator-json/core/operatorList.js +++ b/src/main/create-operator-json/core/operatorList.js @@ -12,15 +12,18 @@ import azami from '../operators/azami.js'; import bandit from '../operators/bandit.js'; import blackbeard from '../operators/blackbeard.js'; import blitz from '../operators/blitz.js'; +import brava from '../operators/brava.js'; import buck from '../operators/buck.js'; import capitao from '../operators/capitao.js'; import castle from '../operators/castle.js'; import caviera from '../operators/caviera.js'; import clash from '../operators/clash.js'; +import deimos from '../operators/deimos.js'; import doc from '../operators/doc.js'; import dokkaebi from '../operators/dokkaebi.js'; import echo from '../operators/echo.js'; import ela from '../operators/ela.js'; +import fenrir from '../operators/fenrir.js'; import finka from '../operators/finka.js'; import flores from '../operators/flores.js'; import frost from '../operators/frost.js'; @@ -28,6 +31,7 @@ import fuze from '../operators/fuze.js'; import glaz from '../operators/glaz.js'; import goyo from '../operators/goyo.js'; import gridlock from '../operators/gridlock.js'; +import grim from '../operators/grim.js'; import hibana from '../operators/hibana.js'; import iana from '../operators/iana.js'; import iq from '../operators/iq.js'; @@ -50,6 +54,12 @@ import nomad from '../operators/nomad.js'; import oryx from '../operators/oryx.js'; import osa from '../operators/osa.js'; import pulse from '../operators/pulse.js'; +import sens from '../operators/sens.js'; +import sentry from '../operators/sentry.js'; +import skopos from '../operators/skopos.js'; +import solis from '../operators/solis.js'; +import striker from '../operators/striker.js'; +import ram from '../operators/ram.js'; import recruit from '../operators/recruit.js'; import rook from '../operators/rook.js'; import sledge from '../operators/sledge.js'; @@ -59,6 +69,7 @@ import thatcher from '../operators/thatcher.js'; import thermite from '../operators/thermite.js'; import thorn from "../operators/thorn.js"; import thunderbird from '../operators/thunderbird.js'; +import tubarao from '../operators/tubarao.js' import twitch from '../operators/twitch.js'; import valkyrie from '../operators/valkyrie.js'; import vigil from '../operators/vigil.js'; @@ -79,15 +90,18 @@ export default { bandit, blackbeard, blitz, + brava, buck, capitao, castle, caviera, clash, + deimos, doc, dokkaebi, ela, echo, + fenrir, finka, flores, frost, @@ -95,6 +109,7 @@ export default { glaz, goyo, gridlock, + grim, hibana, iana, iq, @@ -117,15 +132,22 @@ export default { osa, nomad, pulse, + ram, recruit, rook, + sens, + sentry, + skopos, sledge, smoke, + solis, + striker, tachanka, thatcher, thermite, thorn, thunderbird, + tubarao, twitch, valkyrie, vigil, diff --git a/src/main/create-operator-json/operators/ash.js b/src/main/create-operator-json/operators/ash.js index fe0090c..b5ee476 100644 --- a/src/main/create-operator-json/operators/ash.js +++ b/src/main/create-operator-json/operators/ash.js @@ -13,5 +13,6 @@ ash.addCounterNode(operatorId.maestro, counterType.hard, "Ash's Breaching Rounds ash.addCounterNode(operatorId.melusi, counterType.hard, "Ash's Breaching rounds can destroy Melusi's Banshee."); ash.addCounterNode(operatorId.aruni, counterType.soft, "Ash's Breaching rounds can temporarily disable Aruni's Surya laser gates.") ash.addCounterNode(operatorId.thunderbird, counterType.hard, "Ash's Breaching rounds can destroy Thunderbird's Kona Station.") +ash.addCounterNode(operatorId.thorn, counterType.hard, "Ash's Breaching rounds can destroy Azami's Kiba Barriers.") export default ash \ No newline at end of file diff --git a/src/main/create-operator-json/operators/brava.js b/src/main/create-operator-json/operators/brava.js new file mode 100644 index 0000000..56c92c7 --- /dev/null +++ b/src/main/create-operator-json/operators/brava.js @@ -0,0 +1,26 @@ +'use strict'; + +import counterType from '../core/counterTypeEnums.js'; +import operatorId from '../core/operatorIdEnum.js'; +import Operator from '../core/operatorFactory.js'; +import r6operators from "r6operators"; + +let brava = new Operator(r6operators.brava, operatorId.brava, "Operation Commanding Force"); + +brava.addCounterNode(operatorId.alibi, counterType.minor, "Brava's Krudge drone can hack Alibi's prismas"); +brava.addCounterNode(operatorId.aruni, counterType.hard, "Brava's Krudge drone can hack Aruni's surya gates"); +brava.addCounterNode(operatorId.echo, counterType.hard, "Brava's Krudge drone can hack Echo's yokai drone and controll it"); +brava.addCounterNode(operatorId.ela, counterType.soft, "Brava's Krudge drone can hack Ela's grzmot mines"); +brava.addCounterNode(operatorId.jager, counterType.soft, "Brava's Krudge drone can hack Jager's ADS"); +brava.addCounterNode(operatorId.kapkan, counterType.soft, "Brava's Krudge drone can hack Kapkan's EDDs"); +brava.addCounterNode(operatorId.maestro, counterType.hard, "Brava's Krudge drone can hack Maestro's evil eye and controll it"); +brava.addCounterNode(operatorId.melusi, counterType.hard, "Brava's Krudge drone can hack Melusi's banshee"); +brava.addCounterNode(operatorId.mozzie, counterType.minor, "Brava's Krudge drone can hack Mozzie's pests"); +brava.addCounterNode(operatorId.mute, counterType.hard, "Brava's Krudge drone can hack Mute's jammers"); +brava.addCounterNode(operatorId.thorn, counterType.hard, "Brava's Krudge drone can hack Thorn's razorblooms"); +brava.addCounterNode(operatorId.valkyrie, counterType.hard, "Brava's Krudge drone can hack Valkyrie's black eyes"); +brava.addCounterNode(operatorId.fenrir, counterType.hard, "Brava's Krudge drone can hack Fenrir's Dread Mines"); +brava.addCounterNode(operatorId.skopos, counterType.hard, "Brava's Krudge drone can destroy Skopos' inactive shell"); + + +export default brava \ No newline at end of file diff --git a/src/main/create-operator-json/operators/deimos.js b/src/main/create-operator-json/operators/deimos.js new file mode 100644 index 0000000..e804de5 --- /dev/null +++ b/src/main/create-operator-json/operators/deimos.js @@ -0,0 +1,11 @@ +'use strict'; + +import counterType from '../core/counterTypeEnums.js'; +import operatorId from '../core/operatorIdEnum.js'; +import Operator from '../core/operatorFactory.js'; +import r6operators from "r6operators"; + +let deimos = new Operator(r6operators.deimos, operatorId.deimos, "Operation Deadly Omen"); + + +export default deimos diff --git a/src/main/create-operator-json/operators/fenrir.js b/src/main/create-operator-json/operators/fenrir.js new file mode 100644 index 0000000..1abd0ba --- /dev/null +++ b/src/main/create-operator-json/operators/fenrir.js @@ -0,0 +1,10 @@ +'use strict'; + +import counterType from '../core/counterTypeEnums.js'; +import operatorId from '../core/operatorIdEnum.js'; +import Operator from '../core/operatorFactory.js'; +import r6operators from "r6operators"; + +let fenrir = new Operator(r6operators.fenrir, operatorId.fenrir, "Operation Dead Factor"); + +export default fenrir \ No newline at end of file diff --git a/src/main/create-operator-json/operators/finka.js b/src/main/create-operator-json/operators/finka.js index 6c57977..4920d59 100644 --- a/src/main/create-operator-json/operators/finka.js +++ b/src/main/create-operator-json/operators/finka.js @@ -11,5 +11,7 @@ finka.addCounterNode(operatorId.ela, counterType.soft, "Finka's Adrenal Surge cl finka.addCounterNode(operatorId.caviera, counterType.soft, "Finka can use her Adrenal Surge to revive a downed ally preventing an interrogation from Caveira. This ally cannot be downed again."); finka.addCounterNode(operatorId.echo, counterType.soft, "Finka's Adrenal Surge cleanses the disorientation effect from Echo's Yokai drone."); finka.addCounterNode(operatorId.melusi, counterType.soft, "Finka's Adrenal Surge allow attackers to move through Melusi's Banshee."); +finka.addCounterNode(operatorId.fenrir, counterType.soft, "Finka's Adrenal Surge allows attackers to see further through Fenrir's gas."); + export default finka \ No newline at end of file diff --git a/src/main/create-operator-json/operators/flores.js b/src/main/create-operator-json/operators/flores.js index 90a1ca6..d522bc0 100644 --- a/src/main/create-operator-json/operators/flores.js +++ b/src/main/create-operator-json/operators/flores.js @@ -16,5 +16,7 @@ flores.addCounterNode(operatorId.kapkan, counterType.hard, "Flores' RCE-RATERO d flores.addCounterNode(operatorId.frost, counterType.hard, "Flores' RCE-RATERO drone can destroy Frost's Welcome Mats."); flores.addCounterNode(operatorId.rook, counterType.minor, "Flores' RCE-RATERO drone can destroy Rook's Armor Pack."); flores.addCounterNode(operatorId.thunderbird, counterType.hard, "Flores' RCE-RATERO drone can destroy Thunderbird's Kona Station."); +flores.addCounterNode(operatorId.thunderbird, counterType.hard, "Flores' RCE-RATERO drone can destroy Azami's Kiba Barriers."); + export default flores \ No newline at end of file diff --git a/src/main/create-operator-json/operators/grim.js b/src/main/create-operator-json/operators/grim.js new file mode 100644 index 0000000..e6628bb --- /dev/null +++ b/src/main/create-operator-json/operators/grim.js @@ -0,0 +1,11 @@ +'use strict'; + +import counterType from '../core/counterTypeEnums.js'; +import operatorId from '../core/operatorIdEnum.js'; +import Operator from '../core/operatorFactory.js'; +import r6operators from "r6operators"; + +let grim = new Operator(r6operators.grim, operatorId.grim, "Operation Brutal Swarm"); + + +export default grim \ No newline at end of file diff --git a/src/main/create-operator-json/operators/iq.js b/src/main/create-operator-json/operators/iq.js index 3aa882a..efca04b 100644 --- a/src/main/create-operator-json/operators/iq.js +++ b/src/main/create-operator-json/operators/iq.js @@ -25,5 +25,9 @@ iq.addCounterNode(operatorId.mozzie, counterType.hard, "IQ's Electronics Detecto iq.addCounterNode(operatorId.warden, counterType.hard, "IQ's Electronics Detector can detect Warden's smart glasses when they are active."); iq.addCounterNode(operatorId.kaid, counterType.soft, "IQ's Electronics Detector can detect and shoot Kaid's electroclaws through breakable surfaces."); iq.addCounterNode(operatorId.thunderbird, counterType.soft, "IQ's Electronics Detector can detect Thunderbird's Kona Station."); +iq.addCounterNode(operatorId.thorn, counterType.soft, "IQ's Electronics Detector can detect Thorns's Razorbloom Shell.") +iq.addCounterNode(operatorId.solis, counterType.hard, "IQ's Electronics Detector can detect Solis' visor while it's active.") +iq.addCounterNode(operatorId.fenrir, counterType.hard, "IQ's Electronics Detector can detect Fenrir's Dread Mines."); +iq.addCounterNode(operatorId.skopos, counterType.hard, "IQ's Electronics Detector can detect Skopos' inactive shell."); export default iq \ No newline at end of file diff --git a/src/main/create-operator-json/operators/jager.js b/src/main/create-operator-json/operators/jager.js index a1041c3..bb7c1dc 100644 --- a/src/main/create-operator-json/operators/jager.js +++ b/src/main/create-operator-json/operators/jager.js @@ -16,5 +16,7 @@ jager.addCounterNode(operatorId.ash, counterType.minor, "Jäger's ADS can interc jager.addCounterNode(operatorId.fuze, counterType.soft, "Jäger's ADS can intercept Fuze's Cluster Charges. Fuze gets three charges each with five sub-grenades (15 total) and Jäger's ADS can block two projectiles each (6 total). This means ADS is only partially effective against a Fuze attack."); jager.addCounterNode(operatorId.kali, counterType.soft, "Jäger's ADS can intercept Kali's Explosive Lances."); jager.addCounterNode(operatorId.zero, counterType.hard, "Jäger's ADS will zap Zero's cameras mid-flight."); +jager.addCounterNode(operatorId.sens, counterType.hard, "Jäger's ADS will zap Sens' ROU."); +jager.addCounterNode(operatorId.grim, counterType.hard, "Jäger's ADS can intercept Grim's Hive Cannister."); export default jager \ No newline at end of file diff --git a/src/main/create-operator-json/operators/kali.js b/src/main/create-operator-json/operators/kali.js index 4124452..fb14134 100644 --- a/src/main/create-operator-json/operators/kali.js +++ b/src/main/create-operator-json/operators/kali.js @@ -15,5 +15,7 @@ kali.addCounterNode(operatorId.castle, counterType.hard, "Kali's Explosive Lance kali.addCounterNode(operatorId.clash, counterType.hard, "Kali's CSRX 300 Rifle staggers and knocks Clash's CCE Shield aside."); kali.addCounterNode(operatorId.castle, counterType.hard, "Kali's Explosive Lance destroys Melusi's Banshee."); kali.addCounterNode(operatorId.thunderbird, counterType.hard, "Kali's Explosive Lance destroys Thunderbird's Kona Station."); +kali.addCounterNode(operatorId.azami, counterType.hard, "Kali's Explosive Lance destroys Azami's Kiba Barrier."); + export default kali \ No newline at end of file diff --git a/src/main/create-operator-json/operators/maestro.js b/src/main/create-operator-json/operators/maestro.js index 08f9072..635f43e 100644 --- a/src/main/create-operator-json/operators/maestro.js +++ b/src/main/create-operator-json/operators/maestro.js @@ -16,5 +16,7 @@ maestro.addCounterNode(operatorId.montagne, counterType.minor, "Maestro's Evil E maestro.addCounterNode(operatorId.blitz, counterType.minor, "Maestro's Evil Eye can shoot Blitz from behind when he is hard pushing, causing him to turn around and potentially exposing him.") maestro.addCounterNode(operatorId.thermite, counterType.hard, "Maestro's Evil Eye can destroy Thermite's Exothermic Charges with its laser.") maestro.addCounterNode(operatorId.ace, counterType.hard, "Maestro's Evil Eye can destroy Ace's SELMAs with its laser.") +maestro.addCounterNode(operatorId.sens, counterType.soft, "Maestro's Evil Eye can see through ROUs.") + export default maestro \ No newline at end of file diff --git a/src/main/create-operator-json/operators/mozzie.js b/src/main/create-operator-json/operators/mozzie.js index e3d6035..83b9126 100644 --- a/src/main/create-operator-json/operators/mozzie.js +++ b/src/main/create-operator-json/operators/mozzie.js @@ -9,5 +9,7 @@ let mozzie = new Operator(r6operators.mozzie, operatorId.mozzie, "Operation Burn mozzie.addCounterNode(operatorId.twitch, counterType.hard, "Mozzie's Pests can hack Twitch's Shock Drone. The hacked drone can still shoot darts."); mozzie.addCounterNode(operatorId.flores, counterType.hard, "Mozzie's Pests can hack Flores' RCE-RATERO drone. The hacked drone cannot be controlled though."); +mozzie.addCounterNode(operatorId.brava, counterType.hard, "Mozzie's Pests can hack Brava's Kludge drone. The hacked drones can un-hack previously hacked gadgets and hack attacker gadgets."); + export default mozzie \ No newline at end of file diff --git a/src/main/create-operator-json/operators/mute.js b/src/main/create-operator-json/operators/mute.js index 852873b..b8192ef 100644 --- a/src/main/create-operator-json/operators/mute.js +++ b/src/main/create-operator-json/operators/mute.js @@ -19,5 +19,10 @@ mute.addCounterNode(operatorId.blitz, counterType.soft, "When standing within ra mute.addCounterNode(operatorId.iana, counterType.hard, "Mute's Signal Disruptor will neutralize Iana's hologram."); mute.addCounterNode(operatorId.zero, counterType.hard, "Mute's Signal Disruptor will disable Zero's cameras until they are destroyed."); mute.addCounterNode(operatorId.flores, counterType.hard, "Mute's Signal Disruptor can stop Flores' RCE-RATERO drone from working.") +mute.addCounterNode(operatorId.sens, counterType.hard, "Mute's Signal Disruptor can stop Sens' ROU from working.") +mute.addCounterNode(operatorId.grim, counterType.hard, "Mute's Signal Disruptor stops Grim's Hive from deploying their swarm and protects operators in the jammer's radius.") +mute.addCounterNode(operatorId.ram, counterType.hard, "Mute's Signal Disruptor can stop Ram's BU-GI from activating.") +mute.addCounterNode(operatorId.deimos, counterType.hard, "Mute's Signal Disruptor can prevent defenders from getting trakced by Deimos' DeathMARK.") + export default mute \ No newline at end of file diff --git a/src/main/create-operator-json/operators/ram.js b/src/main/create-operator-json/operators/ram.js new file mode 100644 index 0000000..20d502e --- /dev/null +++ b/src/main/create-operator-json/operators/ram.js @@ -0,0 +1,10 @@ +'use strict'; + +import counterType from '../core/counterTypeEnums.js'; +import operatorId from '../core/operatorIdEnum.js'; +import Operator from '../core/operatorFactory.js'; +import r6operators from "r6operators"; + +let ram = new Operator(r6operators.ram, operatorId.ram, "Operation Heavy Mettle"); + +export default ram \ No newline at end of file diff --git a/src/main/create-operator-json/operators/sens.js b/src/main/create-operator-json/operators/sens.js new file mode 100644 index 0000000..c6ca47e --- /dev/null +++ b/src/main/create-operator-json/operators/sens.js @@ -0,0 +1,10 @@ +'use strict'; + +import counterType from '../core/counterTypeEnums.js'; +import operatorId from '../core/operatorIdEnum.js'; +import Operator from '../core/operatorFactory.js'; +import r6operators from "r6operators"; + +let sens = new Operator(r6operators.sens, operatorId.sens, "Operation Vector Glare"); + +export default sens diff --git a/src/main/create-operator-json/operators/sentry.js b/src/main/create-operator-json/operators/sentry.js new file mode 100644 index 0000000..f2b0c39 --- /dev/null +++ b/src/main/create-operator-json/operators/sentry.js @@ -0,0 +1,10 @@ +'use strict'; + +import counterType from '../core/counterTypeEnums.js'; +import operatorId from '../core/operatorIdEnum.js'; +import Operator from '../core/operatorFactory.js'; +import r6operators from "r6operators"; + +let sentry = new Operator(r6operators.sentry, operatorId.sentry, "Operation New Blood"); + +export default sentry \ No newline at end of file diff --git a/src/main/create-operator-json/operators/skopos.js b/src/main/create-operator-json/operators/skopos.js new file mode 100644 index 0000000..493ceec --- /dev/null +++ b/src/main/create-operator-json/operators/skopos.js @@ -0,0 +1,10 @@ +'use strict'; + +import counterType from '../core/counterTypeEnums.js'; +import operatorId from '../core/operatorIdEnum.js'; +import Operator from '../core/operatorFactory.js'; +import r6operators from "r6operators"; + +let skopos = new Operator(r6operators.skopos, operatorId.skopos, "Operation Twin Shells"); + +export default skopos \ No newline at end of file diff --git a/src/main/create-operator-json/operators/solis.js b/src/main/create-operator-json/operators/solis.js new file mode 100644 index 0000000..ecfb1e1 --- /dev/null +++ b/src/main/create-operator-json/operators/solis.js @@ -0,0 +1,16 @@ +'use strict'; + +import counterType from '../core/counterTypeEnums.js'; +import operatorId from '../core/operatorIdEnum.js'; +import Operator from '../core/operatorFactory.js'; +import r6operators from "r6operators"; + +let solis = new Operator(r6operators.solis, operatorId.solis, "Operation Solar Raid"); + +// solis.addCounterNode(r6operators.blitz, counterType.hard, "Solis' visor can detect Blitz's shield while being held and therefore him.") +// solis.addCounterNode(r6operators.jackal, counterType.hard, "Solis' visor can detect Jackel's helmet while active.") +// solis.addCounterNode(r6operators.nomad, counterType.soft, "Solis' visor can detect Nomad's airjabs.") +// solis.addCounterNode(r6operators.brava, counterType.hard, "Solis' visor can detect and track Brava's krudge drone.") + + +export default solis \ No newline at end of file diff --git a/src/main/create-operator-json/operators/striker.js b/src/main/create-operator-json/operators/striker.js new file mode 100644 index 0000000..d3ec44e --- /dev/null +++ b/src/main/create-operator-json/operators/striker.js @@ -0,0 +1,10 @@ +'use strict'; + +import counterType from '../core/counterTypeEnums.js'; +import operatorId from '../core/operatorIdEnum.js'; +import Operator from '../core/operatorFactory.js'; +import r6operators from "r6operators"; + +let striker = new Operator(r6operators.striker, operatorId.striker, "Operation New Blood"); + +export default striker \ No newline at end of file diff --git a/src/main/create-operator-json/operators/thatcher.js b/src/main/create-operator-json/operators/thatcher.js index 085164f..f7941df 100644 --- a/src/main/create-operator-json/operators/thatcher.js +++ b/src/main/create-operator-json/operators/thatcher.js @@ -24,5 +24,10 @@ thatcher.addCounterNode(operatorId.mozzie, counterType.hard, "Thatcher's EMP Gre thatcher.addCounterNode(operatorId.vigil, counterType.soft, "Thatcher's EMP Grenades can temporarily disable Vigil's ERC-7."); thatcher.addCounterNode(operatorId.melusi, counterType.soft, "Thatcher's EMP Grenades can temporarily disable Melusi's Banshee."); thatcher.addCounterNode(operatorId.thunderbird, counterType.soft, "Thatcher's EMP Grenades can temporarily disable Thunderbird's Kona Station."); +thatcher.addCounterNode(operatorId.thorn, counterType.soft, "Thatcher's EMP Grenades can temporarily disable Thorn's RazorBloom Shell."); +thatcher.addCounterNode(operatorId.solis, counterType.soft, "Thatcher's EMP Grenades can temporarily disable Solis' visor."); +thatcher.addCounterNode(operatorId.fenrir, counterType.hard, "Thatcher's EMP Grenades can disable Fenrir's Dread Mines and prevent Fenrir from activating his mines if he's caught in the EMP."); +thatcher.addCounterNode(operatorId.skopos, counterType.soft, "Thatcher's EMP Grenades can prevent Skopos from transfering shells."); + export default thatcher \ No newline at end of file diff --git a/src/main/create-operator-json/operators/tubarao.js b/src/main/create-operator-json/operators/tubarao.js new file mode 100644 index 0000000..ab1ca35 --- /dev/null +++ b/src/main/create-operator-json/operators/tubarao.js @@ -0,0 +1,25 @@ +'use strict'; + +import counterType from '../core/counterTypeEnums.js'; +import operatorId from '../core/operatorIdEnum.js'; +import Operator from '../core/operatorFactory.js'; +import r6operators from "r6operators"; + +let tubarao = new Operator(r6operators.tubarao, operatorId.tubarao, "Operation Deep Freeze"); + + +tubarao.addCounterNode(operatorId.thermite, counterType.hard, "Tubarao's Zoto Cannister can delay Thermite's Exothermic Charge from triggering."); +tubarao.addCounterNode(operatorId.hibana, counterType.hard, "Tubarao's Zoto Cannister can delay Hibana's X-KARIOS pellets from triggering."); +tubarao.addCounterNode(operatorId.ace, counterType.hard, "Tubarao's Zoto Cannister can delay Ace's SELMA Breaching Device from triggering."); +tubarao.addCounterNode(operatorId.ram, counterType.hard, "Tubarao's Zoto Cannister can delay Ram's BU-GI from moving."); +tubarao.addCounterNode(operatorId.ash, counterType.soft, "Tubarao's Zoto Cannister delay's Ash's breaching charge from activating."); +tubarao.addCounterNode(operatorId.glaz, counterType.hard, "Tubarao's Zoto Cannister can prevent Glaz's thermal scope from working and prevent defenders who are in the area from showing up on Glaz's thermal scope"); +tubarao.addCounterNode(operatorId.fuze, counterType.soft, "Tubarao's Zoto Cannister can prevent Fuze's Cluster Charge from activating"); +tubarao.addCounterNode(operatorId.blitz, counterType.soft, "Tubarao's Zoto Cannister can prevent Blitz's Flash Charge from working"); +tubarao.addCounterNode(operatorId.iq, counterType.hard, "Tubarao's Zoto Cannister can prevent Iq's Electronics Detector from scanning and prevents defender electronics from being scanned"); +tubarao.addCounterNode(operatorId.jackal, counterType.soft, "Tubarao's Zoto Cannister can stop Jackal from activating his Eyenox"); +tubarao.addCounterNode(operatorId.ying, counterType.hard, "Tubarao's Zoto Cannister can make Ying vulnerable to her own Candelas and delay Candelas from activating"); +tubarao.addCounterNode(operatorId.dokkaebi, counterType.hard, "Tubarao's Zoto Cannister can prevent Dokkaebi from activating her hack and prevent defenders from getting hacked"); + + +export default tubarao \ No newline at end of file diff --git a/src/main/create-operator-json/operators/twitch.js b/src/main/create-operator-json/operators/twitch.js index 0c8db73..ad41bb7 100644 --- a/src/main/create-operator-json/operators/twitch.js +++ b/src/main/create-operator-json/operators/twitch.js @@ -20,5 +20,7 @@ twitch.addCounterNode(operatorId.lesion, counterType.soft, "Twitch's Drone can s twitch.addCounterNode(operatorId.maestro, counterType.minor, "Twitch's Drone can temporarily disable Maestro's Evil Eye cameras by shooting at them when they are closed."); twitch.addCounterNode(operatorId.melusi, counterType.soft, "Twitch's Drone can temporarily disable Melusi's Banshee."); twitch.addCounterNode(operatorId.thunderbird, counterType.hard, "Twitch's Drone can shoot Thunderbird's Kona Station."); +twitch.addCounterNode(operatorId.thorn, counterType.soft, "Twitch's Drone can shoot Thorn's Razorbloom shell."); +twitch.addCounterNode(operatorId.fenrir, counterType.soft, "Twitch's Drone can shoot Fenrir's Dread Mines."); export default twitch \ No newline at end of file diff --git a/src/main/create-operator-json/operators/vigil.js b/src/main/create-operator-json/operators/vigil.js index ca146c7..0c1e184 100644 --- a/src/main/create-operator-json/operators/vigil.js +++ b/src/main/create-operator-json/operators/vigil.js @@ -12,5 +12,6 @@ vigil.addCounterNode(operatorId.twitch, counterType.minor, "Vigil's ERC-7 allow vigil.addCounterNode(operatorId.lion, counterType.hard, "Vigil cannot be detected by Lion's EE-ONE-D drone scan when his ER7-C gadget is active."); vigil.addCounterNode(operatorId.iana, counterType.minor, "Vigils ERC-7 makes him invisible from Iana's Hologram."); vigil.addCounterNode(operatorId.flores, counterType.soft, "Vigil's ERC-7 allows him to remove himself from Flores' RCE-RATERO drone camera."); +vigil.addCounterNode(operatorId.deimos, counterType.hard, "Vigil's ERC-7 allows him to nullify Deimos' DeathMARK."); export default vigil \ No newline at end of file diff --git a/src/main/create-operator-json/operators/wamai.js b/src/main/create-operator-json/operators/wamai.js index e0eed2b..12c5683 100644 --- a/src/main/create-operator-json/operators/wamai.js +++ b/src/main/create-operator-json/operators/wamai.js @@ -17,5 +17,7 @@ wamai.addCounterNode(operatorId.zofia, counterType.hard, "Wamai's MAG-NET Syste wamai.addCounterNode(operatorId.gridlock, counterType.minor, "Wamai's MAG-NET System pulls Gridlock's Trax Stinger but will not destroy it."); wamai.addCounterNode(operatorId.kali, counterType.hard, "Wamai's MAG-NET System pulls Kali's Explosion Lances."); wamai.addCounterNode(operatorId.zero, counterType.hard, "Wamai's MAG-NET System will grab Zero's cameras out of the air and destroy them."); +wamai.addCounterNode(operatorId.sens, counterType.soft, "Wamai's MAG-NET System will grab Sens' ROU and release it in a different direction."); +wamai.addCounterNode(operatorId.grim, counterType.soft, "Wamai's MAG-NET System pulls Grim's Hive Cannister."); export default wamai diff --git a/src/main/create-operator-json/operators/warden.js b/src/main/create-operator-json/operators/warden.js index 5a1f447..3f6063c 100644 --- a/src/main/create-operator-json/operators/warden.js +++ b/src/main/create-operator-json/operators/warden.js @@ -10,6 +10,7 @@ let warden = new Operator(r6operators.warden, operatorId.warden, "Operation Phan warden.addCounterNode(operatorId.ying, counterType.hard, "Warden's smart glasses resist the flashes of Ying's Candelas."); warden.addCounterNode(operatorId.blitz, counterType.hard, "Warden's smart glasses resist the pop flashes from Blitz's shield."); warden.addCounterNode(operatorId.glaz, counterType.hard, "Warden's smart glasses can see through smokes and directly counters glaz."); +warden.addCounterNode(operatorId.sens, counterType.hard, "Warden's smart glasses can see through Sens' ROU."); export default warden \ No newline at end of file diff --git a/src/main/create-operator-json/operators/zofia.js b/src/main/create-operator-json/operators/zofia.js index 2256ef7..09245dc 100644 --- a/src/main/create-operator-json/operators/zofia.js +++ b/src/main/create-operator-json/operators/zofia.js @@ -15,5 +15,7 @@ zofia.addCounterNode(operatorId.maestro, counterType.hard, "Zofia's Impact Gren zofia.addCounterNode(operatorId.melusi, counterType.hard, "Zofia's Impact Grenades can destroy Melusi's Banshee."); zofia.addCounterNode(operatorId.aruni, counterType.hard, "Zofia's Impact Grenades can temporarily disable Aruni's Surya laser gates."); zofia.addCounterNode(operatorId.thunderbird, counterType.hard, "Zofia's Impact Grenades can destroy Thunderbird's Kona Stations."); +zofia.addCounterNode(operatorId.azami, counterType.hard, "Zofia's Impact Grenades can destroy Azami's Kiba Barriers."); + export default zofia \ No newline at end of file diff --git a/src/main/humans.txt b/src/main/humans.txt index 05894c8..a75b816 100644 --- a/src/main/humans.txt +++ b/src/main/humans.txt @@ -9,4 +9,7 @@ Making a contribution to R6 Operator Counters? Feel free to add your name here a Name: Alex Guzenski LinkedIn: https://www.linkedin.com/in/aguzenski/ - Name: Mr. Martinez \ No newline at end of file + Name: Mr. Martinez + + Name: Lily Huang + LinkedIn: https://www.linkedin.com/in/lily-huang-37406b2a1/ \ No newline at end of file diff --git a/src/main/scripts/imageLocation.js b/src/main/scripts/imageLocation.js index 110ce9e..11c85d7 100644 --- a/src/main/scripts/imageLocation.js +++ b/src/main/scripts/imageLocation.js @@ -10,15 +10,18 @@ class ImageLocation { 'Bandit': 'img/' + fileFormat + '/bandit.' + fileFormat, 'Blackbeard': 'img/' + fileFormat + '/blackbeard.' + fileFormat, 'Blitz': 'img/' + fileFormat + '/blitz.' + fileFormat, + 'Brava': 'img/' + fileFormat + '/brava.' + fileFormat, 'Buck': 'img/' + fileFormat + '/buck.' + fileFormat, 'Capitão': 'img/' + fileFormat + '/capitao.' + fileFormat, 'Castle': 'img/' + fileFormat + '/castle.' + fileFormat, 'Caveira': 'img/' + fileFormat + '/caveira.' + fileFormat, 'Clash': 'img/' + fileFormat + '/clash.' + fileFormat, + 'Deimos': 'img/' + fileFormat + '/deimos.' + fileFormat, 'Doc': 'img/' + fileFormat + '/doc.' + fileFormat, 'Dokkaebi': 'img/' + fileFormat + '/dokkaebi.' + fileFormat, 'Echo': 'img/' + fileFormat + '/echo.' + fileFormat, 'Ela': 'img/' + fileFormat + '/ela.' + fileFormat, + 'Fenrir': 'img/' + fileFormat + '/fenrir.' + fileFormat, 'Finka': 'img/' + fileFormat + '/finka.' + fileFormat, 'Flores': 'img/' + fileFormat + '/flores.' + fileFormat, 'Frost': 'img/' + fileFormat + '/frost.' + fileFormat, @@ -26,6 +29,7 @@ class ImageLocation { 'Glaz': 'img/' + fileFormat + '/glaz.' + fileFormat, 'Goyo': 'img/' + fileFormat + '/goyo.' + fileFormat, 'Gridlock': 'img/' + fileFormat + '/gridlock.' + fileFormat, + 'Grim': 'img/' + fileFormat + '/grim.' + fileFormat, 'Hibana': 'img/' + fileFormat + '/hibana.' + fileFormat, 'Iana': 'img/' + fileFormat + '/iana.' + fileFormat, 'IQ': 'img/' + fileFormat + '/iq.' + fileFormat, @@ -49,15 +53,22 @@ class ImageLocation { 'Osa': 'img/' + fileFormat + '/osa.' + fileFormat, 'Iana': 'img/' + fileFormat + '/iana.' + fileFormat, 'Pulse': 'img/' + fileFormat + '/pulse.' + fileFormat, + 'Ram': 'img/' + fileFormat + '/ram.' + fileFormat, 'Recruit': 'img/' + fileFormat + '/recruit_blue.' + fileFormat, 'Rook': 'img/' + fileFormat + '/rook.' + fileFormat, + 'Sens': 'img/' + fileFormat + '/sens.' + fileFormat, + 'Sentry': 'img/' + fileFormat + '/sentry.' + fileFormat, + 'Skopos': 'img/' + fileFormat + '/skopos.' + fileFormat, 'Sledge': 'img/' + fileFormat + '/sledge.' + fileFormat, 'Smoke': 'img/' + fileFormat + '/smoke.' + fileFormat, + 'Solis': 'img/' + fileFormat + '/solis.' + fileFormat, + 'Striker': 'img/' + fileFormat + '/striker.' + fileFormat, 'Tachanka': 'img/' + fileFormat + '/tachanka.' + fileFormat, 'Thatcher': 'img/' + fileFormat + '/thatcher.' + fileFormat, 'Thermite': 'img/' + fileFormat + '/thermite.' + fileFormat, 'Thorn': 'img/' + fileFormat + '/thorn.' + fileFormat, 'Thunderbird': 'img/' + fileFormat + '/thunderbird.' + fileFormat, + 'Tubarao': 'img/' + fileFormat + '/tubarao.' + fileFormat, 'Twitch': 'img/' + fileFormat + '/twitch.' + fileFormat, 'Valkyrie': 'img/' + fileFormat + '/valkyrie.' + fileFormat, 'Vigil': 'img/' + fileFormat + '/vigil.' + fileFormat,