void DebugString(string value); void DebugUnit(unit value); void DebugInt(int value); void DebugFixed(fixed value); void DebugPoint(point value); void DebugDump(int value); void AISetDifficulty(int player, int index, bool state); bool AIGetDifficulty(int player, int index); void AIStart(int player, bool isCampaign, int apm); bool AIGivingUp(int player); void AIGoodGame(int player); bool AIIsCampaign(int player); void AISetAPM(int player, int apm); unit AIGrabUnit(int player, string aliasUnitType, int prio, point location); int AIState(int player, int index); void AISetSpecificState(int player, int index, int state); void AISetAllStates(int player, int state); void AISetFlag(int player, int index, bool state); bool AIGetFlag(int player, int index); void AITechFlag(int player, int index, int count, string what, int state); void AIResetUserData(int player); void AISetUserString(int player, int index, string data); string AIGetUserString(int player, int index); void AISetUserInt(int player, int index, int data); int AIGetUserInt(int player, int index); void AIAddStringInt(int player, string data, int change); fixed AIGetTime(void); int AIGetTotalStartLocs(void); int AIGetGroundStartLocs(point loc); int AIGetAirStartLocs(point loc); int AIGetTotalTownLocs(void); int AIGetGroundTownLocs(point loc); int AIGetAirTownLocs(point loc); int AIRandomVal(int player, int which); void AINewChooseSubState(int player, int which, int min, int max, int defaultSubState); void AISetSubStateChance(int subState, int chance); int AIChooseSubState(void); bool AIWantsMultipleTransport(int player); void AISetWantsMultipleTransport(int player, bool enable); int AIGetNumMobileTransports(int player); point AIGetBestCreepSpot(int player, unit creator, fixed createRadius); void AIAddDetectionDanger(int player, string unitType); bool AIDefaultSuspectDetectionDanger(int player); bool AIAnyWorkersFleeingNearby(int player, point loc, fixed radius); int AIGetNumEnemies(int player); int AIGetNumAllies(int player); point AIPlacementNearbyFindTest(int player, point loc, fixed range, string unitType); void AIAddToExtraScoutGroup(int player, unit u); bool AIOfferNewScout(int player, unit u); bool AIAnyAllyAttacking(int player); point AIBestAllyAttackPoint(int player, wave w); bool AIAnyAllyNeedsDefending(int player); point AIBestAllyDefendPoint(int player, wave w); void AIGlobalSuicide(int player); wave AIUnitGetWave(unit u); unitgroup AIWaveGetUnits(wave w); unitgroup AIGetAllEscorts(unit u); unitgroup AIGetAllEscortsGroup(unitgroup ug); void AIRemoveUnitFromAnyWaves(unit u); void AIRemoveGroupFromAnyWaves(unitgroup ug); unitgroup AIGetUnitsInWavesWithTarget(int player, wavetarget target); bool AIIsScriptControlled(unit u); void AISetUnitScriptControlled(unit u, bool enable); void AISetGroupScriptControlled(unitgroup ug, bool enable); bool AIIsSuicideUnit(unit u); void AISetUnitSuicide(unit u, bool enable); void AISetGroupSuicide(unitgroup ug, bool enable); bool AIIsNotUsableInWaves(unit u); void AISetUnitNotUsableInWaves(unit u, bool enable); void AISetGroupNotUsableInWaves(unitgroup ug, bool enable); void AISetWantsToUpgrade(unit u); void AIInitCampaignTowns(int player); void AIInitCampaignHarvest(int player); void AIDeclareTown(int player, int town, point center); int AIGetMainTown(int player); void AISetMainTown(int player, int maintown); void AIUpdateMainTown(int player); int AIGetTownState(int player, int town); fixed AIGetTownEstablishedTime(int player, int town); point AIGetTownLocation(int player, int town); int AIGetClosestTown(int player, point location); int AIGetNextUnusedTownSlot(int player); int AIGetBuildingCountInTown(int player, int town, string aliasUnitType, int countMask); bool AIIsTownHarvestRunning(int player, int town); void AIHarvest(int player, int town); void AIHarvestRate(int player, int rate); void AIHarvestBonus(int player, fixed bonus); void AISetGasPeonCountOverride(int player, int town, int desiredGasCount); int AIGetCurPeonCount(int player, int town); int AIGetMinPeonCount(int player, int town); int AIGetMaxPeonCount(int player, int town); int AIGetMineralAmountLeft(int player, int town); int AIGetGasAmountLeft(int player, int town); int AIGetMineralNumSpots(int player, int town); int AIGetRawGasNumSpots(int player, int town); point AIGetGatherLocation(int player, int town); point AIGetGatherDefLocation(int player, int town); int AIExpand(int player, point searchStart, string firstBuilding); unitgroup AIGetTownThreats(int player, int town); unit AIGetObstruction(int player); bool AIHasNearbyOpenExpansion(int player); void AIScout(int player); void AISetNumScouts(int player, int num); void AISetScoutTimes(int player, int starts, int obstructed, int resources, int other); point AIGetNextScoutLoc(int player); void AIClearCampaignScout(int player); void AIBuild(int player, int priority, int town, string aliasUnitType, int count, int flags); void AITrain(int player, int priority, int town, string aliasUnitType, int count); void AIResearch(int player, int priority, int town, string aliasUpgradeType); void AIMakeAlways(int player, int priority, int town, string aliasType, int count); void AIMakeOnce(int player, int priority, int town, string aliasType, int count); void AIClearBuildQueue(int player); void AIClearTrainQueue(int player); void AIClearResearchQueue(int player); bool AIHasRes(int player, int minerals, int gas); int AITechCount(int player, string aliasType, int countMask); void AITechCountFixupSingle(int player, string baseUnit, string upgradeOne); void AITechCountFixupEither(int player, string baseUnit, string upgradeOne, string upgradeTwo); void AITechCountFixupInOrder(int player, string baseUnit, string upgradeOne, string upgradeTwo); int AIKnownUnitCount(int player, int testPlayerId, string aliasUnitType); void AIResetCounterUnits(int player); void AICounterUnit(int player, string seeWhat, fixed factor, string makeWhat); int AICounterUnits(int player, int testPlayerId, string makeWhat); point AIGetRallyPoint(unit u); void AISetPowerBuilding(int player, string building); void AISetCreepBuilding(int player, string building, string noCreepBehaviour); void AIClearStock(int player); void AIEnableStock(int player); void AISetStockEx(int player, int town, int count, string aliasType, int buildFlags, int stockFlags); void AISetStock(int player, int count, string aliasType); void AISetStockOpt(int player, int count, string aliasType); void AISetStockUnitNext(int player, int count, string aliasUnitType, bool when); bool AISetStockTown(int player, string aliasUnitTypeTH, string aliasUnitTypeGas); bool AISetStockExpand(int player, string aliasUnitTypeTH, int count); void AISetStockExtra(int player, int count, string aliasUnitType, int minerals); void AISetStockFarms(int player, string aliasUnitType, bool onlyNeeded); void AISetStockPeons(int player, int max, string aliasUnitType, bool onlyMinPeons, bool peonMode); void AINewTechStock(int player); void AITechStockAdd(string upgradeType); void AISetStockTechNext(int player); void AIDefaultEconomy(int player, string hall, string gas, string food, string peon, int cap, bool peonMode); void AIDefaultExpansion(int player, string hall, int minerals, int gas, int expandFlags); void AIClearLimitTech(int player); void AILimitTech(int player, int totalMin, int totalGas, int buildingMin, int buildingGas, int upgradeMin, int upgradeGas); void AIImportantTech(int player, string aliasType); void AILimitStockLarva(int player, string aliasType); bool AIHasStock(int player); bool AIHasStockFromTown(int player, int town); void AIRemoveStockFromTown(int player, int town); int AIDefaultGetObjectType(int player, string aliasType); string AIDefaultGetMaker(int player, string aliasType); string AIDefaultGetFirstMissingReq(int player, string aliasType); string AIDefaultGetFirstUnfinishedReq(int player, string aliasType); int AIDefaultGetFullMakeTime(int player, string aliasType); string AIGetBaseName(string aliasType); string AIGetBuildAtName(string aliasType); void AIReqCountAsBuiltObject(int player, string aliasType); void AIReqAddSpecialMaker(string objType, string makerType, string abilName, int abilIndex); void AISetNukeNukeCastTime(int player, fixed); void AISetNukeCloakCost(int player, fixed); void AISetNukeCloakRegenRate(int player, fixed); void AISetNukeGhost(int player, string); void AISetNukeNukeEffect(int player, string); void AISetNukeCloak(int player, string); void AISetNukeNukeAbilLink(int player, string); void AISetNukeCloakAbilLink(int player, string); void AISetNukeDamage(int player, fixed, fixed); void AISetNukeRadiusClose(int player, fixed, fixed); void AISetNukeRadiusMedium(int player, fixed, fixed); void AISetNukeRadiusFar(int player, fixed, fixed); void AIBaseThink(unit who, unitgroup candidates); bool AIEvalTacticalData(unit u, string); int AICast(unit u, order, marker, bool); int AICastFlee(unit, unit, int, marker); bool AINearbyUnits(int player, string, point, fixed, int); unitgroup AIFindUnits(int player, string, point, fixed, int); bool AISameCommand(unit, unit); unit AILastAttacker(unit u); int AILastAttack(unit u); bool AIControlWantsToMove(unit u); bool AIControlForceToMove(unit u); bool AIControlWantsToUnburrow(unit u); bool AIControlWantsToBurrow(unit u); bool AIControlForceUnburrow(unit u); bool AIUnitIsInCombat(unit u); bool AIIsIgnoredByWave(unit u); void AISetIgnoredByWave(unit u, bool enable); point AIGetHomePosition(unit u); point AIGetCloakedAttacker(int p); void AIClearCloakedAttacker(int p, point pt); bool AISawCloakedUnit(int p); point AIRandomSpawnPoint(int player, region r, fixed minDistFromEnemy, fixed maxDistFromEnemy, fixed maxDistFromBuilding); point AIBestTargetPoint(unitgroup group, int minHits, int damageBase, fixed minScore, fixed radius, point from, fixed range, int bonusAttri); unit AIDefaultCombatPriority(unit target, unitgroup attackers, unitgroup enemies); aifilter AIFilter(int player); void AISetFilterAlliance(aifilter filter, int want); void AISetFilterMarker(aifilter filter, int min, int max, marker m); void AISetFilterSelf(aifilter filter, unit exclude); void AISetFilterBits(aifilter filter, unitfilter uf); void AISetFilterRange(aifilter filter, unit center, fixed radius); void AISetFilterLife(aifilter filter, fixed min, fixed max); void AISetFilterLifeLost(aifilter filter, fixed min, fixed max); void AISetFilterLifePercent(aifilter filter, fixed min, fixed max); void AISetFilterLifeSortReference(aifilter filter, fixed value, fixed distance); void AISetFilterLifeMod(aifilter filter, int type, fixed mod); void AISetFilterLifePerMarker(aifilter filter, fixed each, marker m); void AISetFilterShields(aifilter filter, fixed min, fixed max); void AISetFilterEnergy(aifilter filter, fixed min, fixed max); void AISetFilterPlane(aifilter filter, int plane); void AISetFilterCanAttackEnemy(aifilter filter, int enemyGroundCount, int enemyAirCount); void AISetFilterCanAttackAlly(aifilter filter, bool groundAllies, bool airAllies); void AISetFilterBehaviorCount(aifilter filter, int minBehavior, int maxBehavior, string behaviorType); unitgroup AIGetFilterGroup(aifilter filter, unitgroup group); unitgroup AIFilterGathering(unitgroup group, int inResource, fixed distance); unitgroup AIFilterPathable(unitgroup group, point inStart); unitgroup AIFilterCasters(unitgroup group); bool AICloakEvaluate(unit u, fixed minEnergy, fixed maxLife, fixed range); void AISetTacticalAttackTargetPoint(unit u, point t); void AISetTacticalAttackTargetUnit(unit u, unit t); order AIUnitGroupGetValidOrder(unitgroup inGroup, order inOrder, unit caster, bool forwards); bool AIIsFollowingUnit(unit aiUnit, string unitType); int AIGetPlayerGroup(unitgroup inGroup); bool AINearbyPlaneTest(point p, int player, fixed range, int inPlane, int inAlliance); fixed AIUnitGroupStrength(unitgroup inGroup); fixed AIAllyEnemyRatio(int player, point p, unitfilter filter, fixed range, fixed minThreshold); bool AICombatTargetProduction(int player, int action); bool AICombatTargetDropOffs(int player, int action); bool AICombatTargetFood(int player, int action); bool AICombatTargetActiveProduction(int player, int action); bool AICombatTargetWorkers(int player, int action); bool AICombatTargetAllyThreats(int player, int action); bool AICombatTargetSelfThreats(int player, int action); bool AICombatTargetCurrent(int player, int action); bool AICombatTargetAir(int player, int action); bool AICombatTargetMovers(int player, int action); bool AICombatTargetInjuries(int player, int action); bool AICombatTargetInAttackRange(int player, int action); bool AICombatTargetThreats(int player, int action); bool AICombatTargetHealers(int player, int action); bool AICombatTargetSiege(int player, int action); bool AICombatTargetAttackers(int player, int action); bool AICombatTargetSpecial(int player, int action); bool AICombatAvoidTimedUnits(int player, int action); bool AICombatAvoidNonThreats(int player, int action); bool AICombatAvoidWeakUnits(int player, int action); bool AICombatAvoidDisabledUnits(int player, int action); void AITransportIgnore(int player, string unitType); void AITransportSetPanic(int player, fixed value); void AITransportSetReturn(int player, point center); waveinfo AIWaveInfoCreate(void); waveinfo AIWaveInfo(wave w); void AIWaveInfoAdd(waveinfo info, string unitType, int count); int AIWaveInfoAttack(waveinfo info, int player, point from, wavetarget target, int time); int AIWaveInfoSuicide(waveinfo info, int player, point from, wavetarget target, int time); int AIWaveInfoScout(waveinfo info, int player, point from, int time); string AIWaveToString(wave w); text AIWaveToText(wave w); wave AIWaveCreate(waveinfo info, int player, point from); void AIWaveAddUnit(wave w, unit u); void AIWaveAddUnitPriority(wave w, unit u, int prio); void AIWaveRemoveUnit(wave w, unit u); int AIWaveUnitCount(wave w); int AIWaveDetectorCount(wave w); void AIWaveSetType(wave w, int type, wavetarget target); int AIWaveState(wave w); void AIWaveDelete(wave w); wavetarget AIWaveTargetUnit(unit u); wavetarget AIWaveTargetUnitGroup(unitgroup g); wavetarget AIWaveTargetUnitPoint(unit u); wavetarget AIWaveTargetPoint(point p); wavetarget AIWaveTargetPlayer(playergroup players); wavetarget AIWaveTargetMelee(int player); wavetarget AIWaveTargetMeleeHarass(int player); wavetarget AIWaveTargetMeleeDrop(int player, point dropLoc, point goalLoc); wavetarget AIWaveTargetMeleeDefend(int player); wavetarget AIWaveTargetMerge(wave w); wavetarget AIWaveTargetPatrol(int replaceType); wavetarget AIWaveTargetEscort(unitgroup g, int replaceType); wavetarget AIWaveTargetEscortNL(unitgroup g, int replaceType); wavetarget AIWaveTargetGatherO(int player, int town); wavetarget AIWaveTargetGatherD(int player, int town); wavetarget AIWaveTargetRegion(region r, int replaceType); point AIWaveTargetGatherOPoint(int player, int town); point AIWaveTargetGatherDPoint(int player, int town); unit AIWaveTargetGetUnit(wavetarget wt); unitgroup AIWaveTargetGetUnitGroup(wavetarget wt); wavetarget AIWaveHarassRetreat(int player, wave w, fixed range); wavetarget AIWaveGetTarget(wave w); bool AIWaveIsInCombat(wave w); int AIWaveGetTimeInCombat(wave w); int AIWaveGetTimeSinceCombat(wave w); int AIWaveGetTimeSinceOrdered(wave w); int AIWaveGetTimeSinceRetreat(wave w); bool AIDefenseThreat(int type, int player, wave w); int AIDefenseThreatEval(int type, int player); int AIWaveEval(wave w); int AIWaveEvalRatio(wave w, fixed range); int AIUnitAreaEvalRatio(unit u, fixed range); int AIEvalRatio(int player); void AIEvalSetCustomIndex(int index); int AIEvalAllAllied(int player); int AIEvalLargestEnemy(int player); int AILastWaveEvalStaticRatio(void); void AIWaveTargetAddWaypoint(wavetarget wt, point waypoint, bool useTransport, int index); void AIWaveTargetClearWaypoints(wavetarget wt); wave AIWaveGet(int player, int waveName); void AIWaveSet(int player, int waveName, wave waveRef); int AIWaveType(wave waveRef); void AIWaveSetUserData(wave waveRef, int index, int data); int AIWaveGetUserData(wave waveRef, int index); void AIWaveMerge(int player, int waveFrom, int waveInto); void AIWaveMergeMelee(int player); wave WaveLastCreated(void); point AIGetBestTarget(int player, playergroup enemies, point gatherPoint, int flags); bool AIFindDropAttackTarget(int player, point gatherPoint); point AILastDropLocation(void); point AILastDropGoal(void); fixed AIGetNextDropTimeCheck(int player); void AISetNextDropTimeCheck(int player, fixed time); int AILastAttackRatio(wave w); int AILastAttackStartEval(wave w); void AIAttackWaveAddUnits(int difficulty, int count, string unitType); int AIAttackWaveSend(int player, int time, bool wait); void AIAttackWaveCancel(wave waveRef); void AIAttackWaveSetGatherPoint(int player, point gather); void AIAttackWaveUseUnit(int player, unit u); void AIAttackWaveUseGroup(int player, unitgroup ug); void AIAttackWaveAddEscortUnit(int player, unit u, unit escort, fixed offset, fixed angle); void AIAttackWaveAddEscortType(int player, string unitType, unit escort, fixed offset, fixed angle); void AIAttackWaveSetTargetUnit(int player, unit u); void AIAttackWaveSetTargetUnitGroup(int player, unitgroup ug); void AIAttackWaveSetTargetUnitPoint(int player, unit u); void AIAttackWaveSetTargetPoint(int player, point p); void AIAttackWaveSetTargetPlayer(int player, playergroup players); void AIAttackWaveSetTargetMelee(int player); void AIAttackWaveSetTargetMeleeHarass(int player); void AIAttackWaveSetTargetMeleeDrop(int player, point dropLoc, point goalLoc); void AIAttackWaveSetTargetMeleeDefend(int player); void AIAttackWaveSetTargetMerge(int player, wave w); void AIAttackWaveSetTargetPatrol(int player, int replaceType); void AIAttackWaveSetTargetEscort(int player, unitgroup g, int replaceType); void AIAttackWaveSetTargetEscortNL(int player, unitgroup g, int replaceType); void AIAttackWaveSetTargetGatherO(int player, int town); void AIAttackWaveSetTargetGatherD(int player, int town); void AIAttackWaveSetTargetRegion(int player, region r, int replaceType); void AIAttackWaveSetGatherEarlyNoReplace(int player); void AIAttackWaveSetKeepAlive(int player); void AIAttackWaveAddWaypoint(int player, point waypoint, bool useTransport); void AIAttackWaveClearWaypoints(int player); void AISetMinimumBullyCount(int count, string unitType, int player); void AISetGeneralRebuildCount(int count, bool building, int player); void AISetSpecificRebuildCount(int count, string unitType, int player); void AISetBullyAttackWavePercent(int percent, int player); void AINearestTownLimitWaveGather(int player, bool enable); void AINearestTownBullyRebuild(int player, bool enable); void AIToggleBulliesInRegion(int player, region reg, bool activate); void AIResetBullyRebuildCountsInRegion(int player, region reg); void AIClearAllBullies(int player); void AIAddBully(int player, string unitType, point loc, int rebuildCount); string AIGetBullyType(unit u); point CameraGetTarget(int); string CatalogFieldValueGet(int, string, string, int); fixed IntToFixed(int); string IntToString(int); int FixedToInt(fixed); int StringToInt(string); fixed StringToFixed(string); string StringWord(string, int); int CliffLevel(point); void TriggerAddEventMapInit(trigger t); void TriggerAddEventChatMessage(trigger t, int player, string message, bool strict); string EventChatMessage(bool strict); fixed MaxF(fixed, fixed); int AbsI(int); int RandomInt(int, int); marker MarkerCastingUnit(string, unit); void MarkerSetMatchFlag(marker, int, bool); void MarkerSetMismatchFlag(marker, int, bool); void MeleeInitResources(void); void MeleeInitUnits(void); void MeleeInitAI(void); void MeleeInitOptions(void); ability AbilityCommand(string, int); string AbilityCommandGetAbility(ability); order Order(ability); ability OrderGetAbilityCommand(order); void OrderSetPlayer(order, int); int OrderGetPlayer(order); int OrderGetTargetType(order); bool OrderSetTargetPlacement(order, point, unit, string); void OrderSetTargetPoint(order, point); point OrderGetTargetPoint(order); point OrderGetTargetPosition(order); void OrderSetTargetUnit(order, unit); unit OrderGetTargetUnit(order); void OrderSetTargetPassenger(order, unit); int PlayerGetPropertyInt(int player, int); string PlayerRace(int player); int PlayerDifficulty(int player); point PlayerStartLocation(int player); int PlayerGetColorIndex(int player, bool unknown); text PlayerColorName(int colorIndex); bool PlayerGetAlliance(int, int, int); int DifficultyAPM(int); playergroup PlayerGroupAll(void); point Point(fixed, fixed); point PointWithOffset(point, fixed, fixed); point PointWithOffsetPolar(point, fixed, fixed); bool PointsInRange(point, point, fixed); fixed AngleBetweenPoints(point, point); fixed DistanceBetweenPoints(point, point); region RegionCircle(point, fixed); point RegionRandomPoint(region); bool StringEqual(string, string, bool); text StringToText(string); int TechTreeBehaviorCount(int, string, int); int TechTreeUnitCount(int, string, int); trigger TriggerCreate(string s); void TriggerDebugOutput(int, text, bool); bool UnitIsAlive(unit); string UnitGetType(unit); int UnitGetOwner(unit); point UnitGetPosition(unit); fixed UnitGetFacing(unit); bool UnitTestState(unit, int); int UnitGetPropertyInt(unit, int, bool); fixed UnitGetPropertyFixed(unit, int, bool); unitgroup UnitCargoGroup(unit); int UnitCargoValue(unit, int); bool UnitTestPlane(unit, int); int UnitBehaviorCount(unit, string); int UnitMarkerCount(unit, marker); order UnitOrder(unit, int); int UnitOrderCount(unit); bool UnitOrderHasAbil(unit, string); bool UnitOrderIsValid(unit, order); bool UnitIsHarvesting(unit, int); int UnitRallyPointTargetCount(unit, int); point UnitRallyPointTargetPoint(unit, int, int); bool UnitWeaponsPlaneTest(unit, int); bool UnitTypeTestFlag(string, int); bool UnitTypeTestAttribute(string, int); unitfilter UnitFilter(int, int, int, int); unitfilter UnitFilterStr(string); void UnitFilterSetState(unitfilter, int, int); unitgroup UnitGroupCopy(unitgroup); unitgroup UnitGroupAlliance(int, int, region, unitfilter, int); unitgroup UnitGroup(string, int, region, unitfilter, int); unitgroup UnitGroupFilter(string, int, unitgroup, unitfilter, int); unitgroup UnitGroupFilterAlliance(unitgroup, int, int, int); unitgroup UnitGroupFilterPlane(unitgroup, int, int); unitgroup UnitGroupFilterRegion(unitgroup, region, int); unitgroup UnitGroupFilterThreat(unitgroup, unit, string, int); void UnitGroupAdd(unitgroup, unit); int UnitGroupCount(unitgroup, int); unit UnitGroupUnit(unitgroup, int); bool UnitGroupTestPlane(unitgroup, int); unit UnitGroupNearestUnit(unitgroup, point); void UIDisplayMessage(playergroup, int, text); void Wait(fixed, int);