opy-rs 0.3.2

Standalone OverPy-compatible .opy implementation with parsing, tooling, and bounded Workshop compilation.
Documentation
globalvar g

rule "defaults":
    @Event eachPlayer
    kill(eventPlayer)
    damage(player=eventPlayer, amount=10)
    heal(eventPlayer, null, 5)
    createEffect(getAllPlayers(), Effect.GOOD_AURA, Color.YELLOW, eventPlayer, 3)
    startHealingModification(getAllPlayers(), getAllPlayers(), 50)
    setObjectiveDescription(text="obj")
    createInWorldText(getAllPlayers(), "hi", vect(0, 0, 0), 2)
    progressBarHud(eventPlayer, 5)
    createProgressBarInWorldText(position=vect(0, 0, 0))
    hudSubheader(text="hi")
    hudSubheader(getAllPlayers(), "hi", location=HudPosition.LEFT, specVisibility=SpecVisibility.DEFAULT)
    hudText()
    createDummy(Hero.ANA, Team.ALL, 0, vect(0, 0, 0))
    createBeam(eventPlayer, Beam.GOOD, vect(0, 0, 0), vect(0, 0, 0))
    g = getPlayersInSlot(1)
    g = getPlayersOnObjective()
    g = getNumberOfSlots()
    g = getPlayersOnHero(Hero.ANA)
    g = getRealPlayersInRadius(vect(0, 0, 0), 3)
    g = "{}".format(eventPlayer).substring(1)
    g = "{}".format(eventPlayer).substring(substringStartIndex=1, substringLength=2)
    g = isInLoS(startPos=vect(0, 0, 0), endPos=vect(1, 1, 1))
    g = raycast(vect(0, 0, 0), vect(1, 1, 1), include=getAllPlayers(), exclude=null, includePlayerObjects=true).getHitPosition()
    eventPlayer.startCamera(vect(0, 0, 0), vect(1, 1, 1), blendSpeed=0.5)
    eventPlayer.startThrottleInDirection(vect(0, 0, 0), magnitude=1, relativity=Relativity.TO_WORLD, behavior=Throttle.REPLACE_EXISTING)
    waitUntil(continueCondition=true)
    eventPlayer.startForcingPosition(vect(0, 0, 0))
    eventPlayer.startScalingSize(3)
    eventPlayer.startScalingBarriers(3)
    eventPlayer.startModifyingVoicelinePitch(3)
    eventPlayer.addHealthPool(Health.ARMOR, 3, true)
    eventPlayer.startForcingOutlineFor(getAllPlayers(), true, Color.RED)
    g = "a{0}".format(5).substring(2)
    g = [1, 2, 3].slice(1)