opy-rs 0.1.70

Standalone OverPy-compatible .opy implementation with parsing, tooling, and bounded Workshop compilation.
Documentation
globalvar result
globalvar heroSetting = createWorkshopSettingHero("cat", "hero", Hero.ANA, 1)
rule "missing values":
    @Event eachPlayer
    result = raycastHitNormal(vect(0, 0, 0), vect(1, 0, 0), getAllPlayers(), [], false)
    result = raycastHitPlayer(vect(0, 0, 0), vect(1, 0, 0), getAllPlayers(), [], false)
    result = raycastHitPosition(vect(0, 0, 0), vect(1, 0, 0), getAllPlayers(), [], false)
    result = acos(0.5)
    result = acosDeg(0.5)
    result = angleDifference(10, 350)
    result = asin(0.5)
    result = asinDeg(0.5)
    result = atan2(1, 2)
    result = atan2Deg(1, 2)
    result = crossProduct(vect(1, 0, 0), vect(0, 1, 0))
    result = getCapturePercentage()
    result = getClosestPlayer(vect(0, 0, 0), Team.ALL)
    result = getControlScorePercentage(Team.1)
    result = getControlScoringTeam()
    result = getCurrentObjective()
    result = getDeadPlayers()
    result = getDeadPlayers(Team.1)
    result = getFarthestPlayer(vect(0, 0, 0), Team.2)
    result = getFlagCarrier(Team.1)
    result = getFlagPosition(Team.1)
    result = getLastAssistId()
    result = getMatchRound()
    result = getNumberOfAssistIds()
    result = getNumberOfDamageModificationIds()
    result = getNumberOfDeadPlayers()
    result = getNumberOfDeadPlayers(Team.2)
    result = getNumberOfDamageOverTimeIds()
    result = getNumberOfEntityIds()
    result = getNumberOfHealingModificationIds()
    result = getNumberOfHeroes(Hero.ANA, Team.1)
    result = getNumberOfHealingOverTimeIds()
    result = getNumberOfLivingPlayers()
    result = getNumberOfLivingPlayers(Team.1)
    result = getNumberOfPlayersOnObjective()
    result = getNumberOfPlayersOnObjective(Team.2)
    result = getNumberOfTextIds()
    result = getPlayersNotOnObjective()
    result = getPlayersNotOnObjective(Team.1)
    result = horizontalAngleTowards(eventPlayer, vect(1, 0, 0))
    result = isControlPointLocked()
    result = isFlagAtBase(Team.1)
    result = isFlagBeingCarried(Team.2)
    result = isInSuddenDeath()
    result = isMatchComplete()
    result = isObjectiveComplete(1)
    result = isTeamOnDefense(Team.1)
    result = isTeamOnOffense(Team.2)
    result = normalize(vect(3, 4, 0))
    result = normalize(vectorTowards(eventPlayer.getPosition(), vect(1, 2, 3)))
    result = strLen("abc")
    result = tan(0.5)
    result = tanDeg(45)
    result = teamScore(Team.1)
    result = verticalAngleTowards(eventPlayer, vect(1, 0, 0))

rule "event values":
    @Event playerDealtDamage
    result = eventDirection
    result = eventWasEnvironment
    result = eventWasHealthPack