Então, um dos pontos é que o modo como chama a variável está errado. $gameSwitches não é mais uma array como era em RGSS, agora ela é uma classe que tem sua array de dados, mas possui funções para pegar seus valores. Aqui, a partir da linha 511 do rpg_objects tu acha ela, e na sequência a Game_Variables.
O modo correto de chamar o valor de uma switch seria:
$gameSwitches.value(ID)Quanto à posição da condição, seria melhor tu adicionar ela na função .checkFloorEffect, quando é checado se o personagem está sobre um terreno que aplica dano. Caso a switch não estivesse permitindo o dano, ali mesmo o código já parava e evitava processamento desnecessário do cálculo do dano, vez que a intenção era ele não ser aplicado mesmo.
Fiz um codigozinho que julgo fazer o que tu tá querendo. Dá pra pegar ele por
aqui.