adjusted AI SAM site repairs:

- SAM sites are no longer repaired instantly when AI takes control of a sector
- repairs begin 24 hours after the AI takes control, and repeat every 24 hours until the SAM is back at 100%
- repairs can be interrupted by the player regaining control of the SAM site
- time to repair a fully-destroyed SAM site depends on difficulty: novice takes 5 repair cycles, experienced takes 4, expert 3, and insane 2
- moved RepairSamSite() from ASD.h (where it was unused) into strategicmap.h
- this sets up the existing but previously unused strategic event hook EVENT_SAMSITE_REPAIRED

git-svn-id: https://ja2svn.mooo.com/source/ja2/trunk/GameSource/ja2_v1.13/Build@9349 3b4a5df2-a311-0410-b5c6-a8a6f20db521
This commit is contained in:
rftr
2022-03-26 21:44:43 +00:00
parent bd5b14358d
commit 4689369f83
6 changed files with 51 additions and 19 deletions
+6
View File
@@ -83,6 +83,10 @@ extern BOOLEAN gfUseAlternateMap;
#define SECTOR_INFO_TO_STRATEGIC_INDEX( i ) ( CALCULATE_STRATEGIC_INDEX ( SECTORX( i ), SECTORY( i ) ) )
#define STRATEGIC_INDEX_TO_SECTOR_INFO( i ) ( SECTOR( GET_X_FROM_STRATEGIC_INDEX( i ), GET_Y_FROM_STRATEGIC_INDEX( i ) ) )
#define AI_SAMSITE_REPAIR_EASY 20
#define AI_SAMSITE_REPAIR_MEDIUM 25
#define AI_SAMSITE_REPAIR_HARD 34
#define AI_SAMSITE_REPAIR_INSANE 50
// grab the town id value
UINT8 GetTownIdForSector( INT16 sMapX, INT16 sMapY );
@@ -128,6 +132,8 @@ BOOLEAN DoesSamCoverSector( UINT8 usSam, UINT8 usSector, BOOLEAN* apSamIsWorking
BOOLEAN IsThisSectorASAMSector( INT16 sSectorX, INT16 sSectorY, INT8 bSectorZ );
void RepairSamSite( UINT16 aSector );
// init sam sites
void InitializeSAMSites( void );