attackhandler.h
来自「这是整套横扫千军3D版游戏的源码」· C头文件 代码 · 共 83 行
H
83 行
#ifndef ATTACKHANDLER_H#define ATTACKHANDLER_H#include "GlobalAI.h"class CAttackGroup;class CAttackHandler { public: CR_DECLARE(CAttackHandler); CAttackHandler(AIClasses* ai); ~CAttackHandler(void); void AddUnit(int unitID); void Update(int); void UnitDestroyed(int unitID); // K-means functions are placed here for now vector<float3> KMeansIteration(vector<float3> means, vector<float3> unitPositions, int newK); float DistanceToBase(float3 pos); float3 GetClosestBaseSpot(float3 pos); bool PlaceIdleUnit(int unit); // for use for builders bool IsSafeBuildSpot(float3 mypos); float3 FindSafeSpot(float3 myPos, float minSafety, float maxSafety); float3 FindSafeArea(float3 pos); float3 FindVerySafeArea(float3 pos); float3 FindUnsafeArea(float3 pos); void AirAttack(int); void AirPatrol(int); void UpdateKMeans(void); void UpdateAir(int); void UpdateSea(int); // nuke-related functions void UpdateNukeSilos(int); int PickNukeSiloTarget(std::vector<std::pair<int, float> >&); void GetNukeSiloTargets(std::vector<std::pair<int, float> >&); void AssignTargets(int); void AssignTarget(CAttackGroup* group); bool UnitGroundAttackFilter(int unit); bool UnitBuildingFilter(const UnitDef* ud); bool UnitReadyFilter(int unit); void CombineGroups(void); private: AIClasses* ai; list<int> units; list< pair<int, float3> > stuckUnits; // TODO: should be sets list<int> unarmedAirUnits; list<int> armedAirUnits; bool airIsAttacking; bool airPatrolOrdersGiven; int airTarget; int newGroupID; list<CAttackGroup> attackGroups; // list<CAttackGroup> defenseGroups; int unitArray[MAX_UNITS]; vector<float3> kMeansBase; int kMeansK; vector<float3> kMeansEnemyBase; int kMeansEnemyK;};#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?