Skip to content

Add the 53 missing OverPy values #386

Description

@e54-bot

Goal

Resolve these 53 values the pinned OverPy 9.7.10 accepts: raycastHitNormal, raycastHitPlayer, raycastHitPosition, createWorkshopSettingHero, acos, acosDeg, angleDifference, asin, asinDeg, atan2, atan2Deg, crossProduct, eventDirection, eventWasEnvironment, eventWasHealthPack, getCapturePercentage, getClosestPlayer, getControlScorePercentage, getControlScoringTeam, getCurrentObjective, getDeadPlayers, getFarthestPlayer, getFlagCarrier, getFlagPosition, getLastAssistId, getMatchRound, getNumberOfAssistIds, getNumberOfDamageModificationIds, getNumberOfDeadPlayers, getNumberOfDamageOverTimeIds, getNumberOfEntityIds, getNumberOfHealingModificationIds, getNumberOfHeroes, getNumberOfHealingOverTimeIds, getNumberOfLivingPlayers, getNumberOfPlayersOnObjective, getNumberOfTextIds, getPlayersNotOnObjective, horizontalAngleTowards, isControlPointLocked, isFlagAtBase, isFlagBeingCarried, isInSuddenDeath, isMatchComplete, isObjectiveComplete, isTeamOnDefense, isTeamOnOffense, normalize, strLen, tan, tanDeg, teamScore, verticalAngleTowards.

Context

A probe of every non-operator function in the pinned OverPy 9.7.10 against opy-rs 0.1.58 found calls the reference accepts that opy-rs rejects because the name does not resolve (unknown-action, unknown-value, unknown-member). A project that uses one of them fails to compile or loses the call. Names are checked against the manifest; all 117 already exist in the workshop-rs catalog as native Workshop entries (112 under the same id, 5 under a differently spelled id), so the gap is in the opy-rs source-language surface (manifest entries, aliases and lowering), not in Workshop data.

Special forms to check: eventDirection, eventWasEnvironment and eventWasHealthPack are bare event values (no call parentheses) and currently fail as unknown-identifier; getDeadPlayers and getPlayersNotOnObjective return arrays; createWorkshopSettingHero belongs with the other createWorkshopSetting* declarations.

Scope

Add manifest entries (or aliases to the catalog id), receiver categories, signatures and defaults, and lowering to the canonical Workshop call for each name above. Validate each against the pinned oracle.

Non-goals

  • Literal-spelling parity (False/True/Null versus 0/1) and other default-mode coercions; Wright and workshop-rs canonicalize these and they are semantically equivalent.
  • Adding or renaming workshop-rs catalog entries; if a name turns out to have no native catalog entry, route it to workshop-rs instead of adding Workshop data here.

Acceptance criteria

  • Each listed name resolves through the manifest and lowers to the canonical Workshop call, with receiver, argument order, defaults and enum domains matching the pinned OverPy.
  • Each entry carries a pinned-oracle probe (manifest/probes), and tools/overpy/probe_builtins.py reports no unexplained difference for it; any remaining difference is recorded in probe-gaps.json with an owner and an approved decision.
  • docs/language-support/callables-and-domains.md lists the supported forms.
  • Standard gates pass: fmt, clippy, workspace tests, the compiler compatibility gate.

Classification

Each name was checked against the pinned OverPy 9.7.10 metadata: it declares the native Workshop en-US name and a Workshop GUID, and that en-US name resolves to an entry in the workshop-rs catalog. None of the 117 is an OverPy-only wrapper, so no new Workshop data and no new workshop-rs entry is needed for this work.
All 53 match a catalog id exactly.

Rule for implementers: opy-rs owns only the OverPy spelling. Where the OverPy name differs from the catalog id, add a manifest alias to the catalog id; do not add or rename catalog entries here. An OverPy-only composite helper, if one turns up, is lowered in opy-rs and never added to the workshop-rs catalog, which holds native Workshop syntax only.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions