📄 protocol.pas
字号:
trAlliance=4;
// attitudes
nAttitude=7;
atHostile=0;atIcy=1;atUncoop=2;atNeutral=3;atReceptive=4;atCordial=5;atEnth=6;
// offer prices
opChoose= $00000000;
opCivilReport= $11000000; // + turn + concerned player shl 16
opMilReport= $12000000; // + turn + concerned player shl 16
opMap= $1F000000;
opTreaty= $20000000; // + suggested nation treaty
opShipParts= $30000000; // + number + part type shl 16
opMoney= $40000000; // + value
opTribute= $48000000; // + value
opTech= $50000000; // + advance
opAllTech= $51000000;
opModel= $58000000; // + model index
opAllModel= $59000000;
opCity= $60000000; // + city ID
opMask= $FF000000;
// improvement kinds
ikTrGoods=0; ikCommon=1; ikNatLocal=2; ikNatGlobal=3; ikWonder=4; ikShipPart=5;
{model domains}
nDomains=3;dGround=0;dSea=1;dAir=2;
{model kinds}
mkSelfDeveloped=$00;mkEnemyDeveloped=$01;
mkSpecial_Boat=$08;mkSpecial_Carriage=$09;mkSpecial_SubCabin=$0A;
mkSpecial_TownGuard=$10;mkSpecial_Glider=$11;
mkScout=$20;mkSlaves=$21;mkSettler=$22;mkDiplomat=$23;mkCaravan=$24;
{unit flags}
unFortified=$01; unBombsLoaded=$02; unMountainDelay=$04; unConscripts=$08;
unWithdrawn=$10;
unMulti=$80;
{model flags}
mdZOC=$01; mdCivil=$02; mdDoubleSupport=$04;
{player happened flags}
phTech=$01; phStealTech=$02; phBankrupt=$04; phChangeGov=$08;
phGliderLost=$100; phPlaneLost=$200; phPeaceViolation=$400;
phPeaceEvacuation=$800;
phShipComplete=$2000; phTimeUp=$4000; phExtinct=$8000; phGameEnd=$F000;
{city happened flags}
chDisorder=$01;chProduction=$02;chPopIncrease=$04;chPopDecrease=$08;
chUnitLost=$10;chImprovementLost=$20;chProductionSabotaged=$40;
chNoGrowthWarning=$80;
chPollution=$100;chSiege=$200;chOldWonder=$400;chNoSettlerProd=$800;
chFounded=$1000;chCaptured=$F0000;
chImprovementSold=$80000000;
{city info flags}
ciCapital=$01; ciWalled=$02; ciCoastalFort=$04; ciMissileBat=$08;
{city tile available values}
faAvailable=0; faNotAvailable=1; faSiege=2; faPole=3; faTreaty=4; faInvalid=$FF;
{move advice special destinations}
maNextCity=-1;
{goverment forms}
nGov=8;
gAnarchy=0;gDespotism=1;gMonarchy=2;gRepublic=3;gFundamentalism=4;gCommunism=5;
gDemocracy=6;gLybertarianism=7;
// colony ship
nShipPart=3;
spComp=0; spPow=1; spHab=2;
ShipNeed: array[0..nShipPart-1] of integer=(6,4,2);
{unit jobs}
nJob=15;
jNone=0;jRoad=1;jRR=2;jClear=3;jIrr=4;jFarm=5;jAfforest=6;jMine=7;jCanal=8;
jTrans=9;jFort=10;jPoll=11;jBase=12;jPillage=13;jCity=14;
// job preconditions are:
// technology JobPreq is available, no city, plus the following:
// jRoad: no river when bridge building unavailable
// jRR: road
// jClear: Terrain.ClearTerrain, Hanging Gardens for desert
// jIrr: Terrain.IrrEff, water available
// jFarm: irrigation
// jAfforest: Terrain.AfforestTerrain
// jMine: Terrain.MineEff
// jCanal: no Mountains, no Arctic, no Hills
// jTrans: Terrain.TransWork
// jPoll: pollution
// jPillage: any tile improvement
// jCity, jFort, jBase: none
// spy mission
nSpyMission=5;
smSabotageProd=0;smStealMap=1;smStealForeignReports=2;
smStealCivilReport=3;smStealMilReport=4;
{advances}
adAdvancedFlight=0;adAmphibiousWarfare=1;adAstronomy=2;adAtomicTheory=3;adAutomobile=4;
adBallistics=5;adBanking=6;adBridgeBuilding=7;adBronzeWorking=8;adCeremonialBurial=9;
adChemistry=10;adChivalry=11;adComposites=12;adCodeOfLaws=13;adCombinedArms=14;
adCombustionEngine=15;adCommunism=16;adComputers=17;adConscription=18;adConstruction=19;
adTheCorporation=20;adSpaceFlight=21;adCurrency=22;adDemocracy=23;adEconomics=24;
adElectricity=25;adElectronics=26;adEngineering=27;adEnvironmentalism=28;adWheel=29;
adExplosives=30;adFlight=31;adIntelligence=32;adGunpowder=33;adHorsebackRiding=34;
adImpulseDrive=35;adIndustrialization=36;adIntelligenArms=37;adInvention=38;adIronWorking=39;
adTheLaser=40;adNuclearPower=41;adLiterature=42;adLybertarianism=43;adMagnetism=44;
adMapMaking=45;adMasonry=46;adMassProduction=47;adMathematics=48;adMedicine=49;
adMetallurgy=50;adMin=51;adMobileWarfare=52;adMonarchy=53;adMysticism=54;
adNavigation=55;adNuclearFission=56;adPhilosophy=57;adPhysics=58;adPlastics=59;
adPoetry=60;adPottery=61;adRadioCommunication=62;adRecycling=63;adRefrigeration=64;
adMonotheism=65;adTheRepublic=66;adRobotics=67;adRocketry=68;adRailroad=69;
adSanitation=70;adScience=71;adWriting=72;adSeafaring=73;adSelfContainedEnvironment=74;
adStealth=75;adSteamEngine=76;adSteel=77;adSyntheticFood=78;adTactics=79;
adTheology=80;adTheoryOfGravity=81;adTrade=82;adTransstellarColonization=83;adUniversity=84;
adAdvancedRocketry=85;adWarriorCode=86;adAlphabet=87;adPolytheism=88;adRefining=89;
futResearchTechnology=90;futProductionTechnology=91;futArmorTechnology=92;futMissileTechnology=93;
adMilitary=$800; // Military Research
{wonders}
woPyramids=00;woZeus=01;woGardens=02;woColossus=03;woLighthouse=04;
woGrLibrary=05;woOracle=06;woSun=07;woDarwin=08;woMagellan=09;woMich=10;
woLeo=11;woNewton=12;woBach=13;{14;}woLiberty=15;woEiffel=16;woHoover=17;
woShinkansen=18;woManhattan=19;woMir=20;
{city improvements}
imTrGoods=28;imBarracks=29;imGranary=30;imTemple=31;imMarket=32;imLibrary=33;imCourt=34;
imWalls=35;imAqueduct=36;imBank=37;imCathedral=38;imUniversity=39;imHarbor=40;imTheater=41;
imFactory=42;imMfgPlant=43;imRecycling=44;imPower=45;imHydro=46;imNuclear=47;imPlatform=48;
imTownHall=49;imSewer=50;imSupermarket=51;imHighways=52;imResLab=53;imMissileBat=54;imCoastalFort=55;
imAirport=56;imDockyard=57;imPalace=58;imGrWall=59;imColosseum=60;imNatObs=61;imElite=62;
imBunker=63;imAlgae=64;imStockEx=65;imSpacePort=66;imShipComp=67;imShipPow=68;imShipHab=69;
SettlerFood:array[0..nGov-1] of integer=(1,1,1,2,1,2,2,2);
CorrLevel:array[0..nGov-1] of integer=(3,3,1,1,1,0,0,0);
SupportFree:array[0..nGov-1] of integer=(2,2,1,0,2,1,0,0); // in 1/2*city size
// special prerequisite values
preNone=-1; preSun=-3; preLeo=-4; preBuilder=-5; preNA=-$FF;
JobPreq: array[0..nJob-1] of integer=
(preNone,preNone,adRailroad,preNone,preNone,adRefrigeration,preNone,preNone,adExplosives,adExplosives,
adConstruction,preNone,adMedicine,preNone,preNone);
AdvPreq: array[0..nAdv-1,0..2] of integer= {advance prerequisites}
((adFlight,adRobotics,preNone), //adAdvancedFlight
(adNavigation,adTactics,preNone), //adAmphibiousWarfare
(adMysticism,adAlphabet,preNone), //adAstronomy
(adTheoryOfGravity,preNone,preNone), //adAtomicTheory
(adCombustionEngine,adSteel,preNone), //adAutomobile
(adMathematics,adMetallurgy,preNone), //adBallistics
(adCurrency,adEngineering,preNone), //adBanking
(adConstruction,adWheel,preNone), //adBridgeBuilding
(preNone,preNone,preNone), //adBronzeWorking
(preNone,preNone,preNone), //adCeremonialBurial
(adScience,preNone,preNone), //adChemistry
(adMonarchy,adWarriorCode,preNone), //adChivalry
(adMetallurgy,adPlastics,preNone), //adComposites
(adWriting,preNone,preNone), //adCodeOfLaws
(adAdvancedFlight,adMobileWarfare,preNone), //adCombinedArms
(adRefining,adExplosives,preNone), //adCombustionEngine
(adPhilosophy,adIndustrialization,preNone), //adCommunism
(adMin,preNone,preNone), //adComputers
(adTheRepublic,adTactics,preNone), //adConscription
(adMasonry,adAlphabet,preNone), //adConstruction
(adEconomics,adDemocracy,preNone), //adTheCorporation
(adAdvancedFlight,adAdvancedRocketry,preNone), //adSpaceFlight
(adBronzeWorking,preNone,preNone), //adCurrency
(adConscription,adIndustrialization,preNone), //adDemocracy
(adBanking,adUniversity,preNone), //adEconomics
(adMagnetism,preNone,preNone), //adElectricity
(adRadioCommunication,adAtomicTheory,preNone), //adElectronics
(adConstruction,adBronzeWorking,preNone), //adEngineering
(adIndustrialization,preNone,preNone), //adEnvironmentalism
(preNone,preNone,preNone), //adWheel
(adChemistry,adEngineering,preNone), //adExplosives
(adCombustionEngine,adPhysics,preNone), //adFlight
(adTactics,adInvention,preNone), //adIntelligence
(adMedicine,adIronWorking,preNone), //adGunpowder
(preNone,preNone,preNone), //adHorsebackRiding
(adSpaceFlight,adNuclearPower,preNone), //adImpulseDrive
(adRailroad,adBanking,preNone), //adIndustrialization
(adAdvancedRocketry,adTheLaser,preNone), //adIntelligenArms
(adWriting,adWheel,preNone), //adInvention
(adBronzeWorking,adInvention,preNone), //adIronWorking
(adMin,adPhysics,preNone), //adTheLaser
(adNuclearFission,preNone,preNone), //adNuclearPower
(adPoetry,adTrade,preNone), //adLiterature
(adDemocracy,adComputers,preNone), //adLybertarianism
(adPhysics,adIronWorking,preNone), //adMagnetism
(adAlphabet,preNone,preNone), //adMapMaking
(preNone,preNone,preNone), //adMasonry
(adAutomobile,adElectronics,adTheCorporation), //adMassProduction
(adCurrency,adAlphabet,preNone), //adMathematics
(adMysticism,adPottery,preNone), //adMedicine
(adGunpowder,preNone,preNone), //adMetallurgy
(adRobotics,adPlastics,preNone), //adMin
(adAutomobile,adTactics,preNone), //adMobileWarfare
(adPolytheism,preNone,preNone), //adMonarchy
(adCeremonialBurial,preNone,preNone), //adMysticism
(adSeafaring,adAstronomy,preNone), //adNavigation
(adAtomicTheory,adMassProduction,preNone), //adNuclearFission
(adMathematics,adLiterature,preNone), //adPhilosophy
(adScience,preNone,preNone), //adPhysics
(adMassProduction,adRefining,preNone), //adPlastics
(adMysticism,adWarriorCode,preNone), //adPoetry
(preNone,preNone,preNone), //adPottery
(adElectricity,adEngineering,preNone), //adRadioCommunication
(adEnvironmentalism,adPlastics,preNone), //adRecycling
(adElectricity,preNone,preNone), //adRefrigeration
(adPolytheism,adAstronomy,preNone), //adMonotheism
(adLiterature,preNone,preNone), //adTheRepublic
(adMassProduction,adEconomics,preNone), //adRobotics
(adBallistics,adExplosives,preNone), //adRocketry
(adSteamEngine,adBridgeBuilding,preNone), //adRailroad
(adEnvironmentalism,adMedicine,preNone), //adSanitation
(adMetallurgy,adTheology,adPhilosophy), //adScience
(adAlphabet,preNone,preNone), //adWriting
(adPottery,adMapMaking,preNone), //adSeafaring
(adRecycling,adSyntheticFood,preNone), //adSelfContainedEnvironment
(adComposites,adRadioCommunication,preNone), //adStealth
(adScience,adEngineering,preNone), //adSteamEngine
(adIronWorking,adRailroad,preNone), //adSteel
(adChemistry,adRefrigeration,preNone), //adSyntheticFood
(adWarriorCode,adUniversity,preNone), //adTactics
(adMonotheism,adPoetry,preNone), //adTheology
(adAstronomy,adPhysics,preNone), //adTheoryOfGravity
(adCurrency,adCodeOfLaws,preNone), //adTrade
(adImpulseDrive,adSelfContainedEnvironment,preNone), //adTransstellarColonization
(adScience,preNone,preNone), //adUniversity
(adComputers,adRocketry,preNone), //adAdvancedRocketry
(preNone,preNone,preNone), //adWarriorCode
(preNone,preNone,preNone), //adAlphabet
(adCeremonialBurial,adHorsebackRiding,preNone), //adPolytheism
(adChemistry,preNone,preNone), //adRefining
(adComputers,preNone,preNone), //futResearchTechnology
(adRobotics,preNone,preNone), //futProductionTechnology
(adComposites,preNone,preNone), //futArmorTechnology
(adIntelligenArms,preNone,preNone)); //futMissileTechnology
Imp: array[0..nImp-1] of // city improvements
record Kind,Preq,Cost,Maint,Expiration:integer; end=
((Kind:ikWonder;Preq:adMathematics;Cost:400;Maint:0;Expiration:adIndustrialization), //woPyramids
(Kind:ikWonder;Preq:adPolytheism;Cost:200;Maint:0;Expiration:adRadioCommunication), //woZeus
(Kind:ikWonder;Preq:adInvention;Cost:200;Maint:0;Expiration:adElectricity), //woGardens
(Kind:ikWonder;Preq:adBronzeWorking;Cost:200;Maint:0;Expiration:-1), //woColossus
(Kind:ikWonder;Preq:adMapMaking;Cost:200;Maint:0;Expiration:adRefining), //woLighthouse
(Kind:ikWonder;Preq:adLiterature;Cost:400;Maint:0;Expiration:adUniversity), //woGrLibrary
(Kind:ikWonder;Preq:adMysticism;Cost:300;Maint:0;Expiration:-1), //woOracle
(Kind:ikWonder;Preq:adChivalry;Cost:300;Maint:0;Expiration:adComposites), //woSun
(Kind:ikWonder;Preq:adPhilosophy;Cost:500;Maint:0;Expiration:-1), //woDarwin
(Kind:ikWonder;Preq:adNavigation;Cost:300;Maint:0;Expiration:-1), //woMagellan
(Kind:ikWonder;Preq:adMonotheism;Cost:400;Maint:0;Expiration:-1), //woMich
(Kind:ikWonder;Preq:adMetallurgy;Cost:400;Maint:0;Expiration:-1), //woLeo
(Kind:ikWonder;Preq:adTheoryOfGravity;Cost:400;Maint:0;Expiration:-1), //woNewton
(Kind:ikWonder;Preq:adTheology;Cost:400;Maint:0;Expiration:-1), //woBach
(Kind:ikWonder;Preq:preNA), //{14}
(Kind:ikWonder;Preq:adDemocracy;Cost:500;Maint:0;Expiration:-1), //woLiberty
(Kind:ikWonder;Preq:adSteel;Cost:800;Maint:0;Expiration:-1), //woEiffel
(Kind:ikWonder;Preq:adElectronics;Cost:800;Maint:0;Expiration:-1), //woHoover
(Kind:ikWonder;Preq:adPlastics;Cost:500;Maint:0;Expiration:-1), //woShinkansen
(Kind:ikWonder;Preq:adNuclearFission;Cost:400;Maint:0;Expiration:-1), //woManhattan
(Kind:ikWonder;Preq:adSpaceFlight;Cost:800;Maint:0;Expiration:-1), //woMir
(Kind:ikWonder;Preq:preNA), //{21}
(Kind:ikWonder;Preq:preNA), //{22}
(Kind:ikWonder;Preq:preNA), //{23}
(Kind:ikWonder;Preq:preNA), //{24}
(Kind:ikWonder;Preq:preNA), //{25}
(Kind:ikWonder;Preq:preNA), //{26}
(Kind:ikWonder;Preq:preNA), //{27}
(Kind:ikTrGoods;Preq:preNone;Cost:0;Maint:0), //imTrGoods
(Kind:ikCommon;Preq:adWarriorCode;Cost:40;Maint:1), //imBarracks
(Kind:ikCommon;Preq:adPottery;Cost:60;Maint:1), //imGranary
(Kind:ikCommon;Preq:adCeremonialBurial;Cost:40;Maint:1), //imTemple
(Kind:ikCommon;Preq:adCurrency;Cost:60;Maint:1), //imMarket
(Kind:ikCommon;Preq:adWriting;Cost:80;Maint:3), //imLibrary
(Kind:ikCommon;Preq:adCodeOfLaws;Cost:80;Maint:2), //imCourt
(Kind:ikCommon;Preq:adMasonry;Cost:80;Maint:1), //imWalls
(Kind:ikCommon;Preq:adConstruction;Cost:80;Maint:1), //imAqueduct
(Kind:ikCommon;Preq:adBanking;Cost:120;Maint:2), //imBank
(Kind:ikCommon;Preq:adMonotheism;Cost:100;Maint:1), //imCathedral
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -