Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
b2ad640
[AI] Initial implemention of adaptive ResearchAI
luiges90 Jul 25, 2015
0028373
[AI] initial refactoring of priority determination in ResearchAI
luiges90 Jul 20, 2015
60b52e5
[AI] ResaerchAI cleanup and adjustment of priorities
luiges90 Jul 20, 2015
491e92f
roll random choices right after RNG init, check weapon techs by prefix
luiges90 Jul 24, 2015
a59fcfc
ResearchAI adjustments to tech time and cost calcs
Dilvish-fo Jul 24, 2015
4587ef6
ResearchAI: have prereqs inherit some priority from decendants; adjus…
Dilvish-fo Jul 26, 2015
a9c54b5
Cleanup.
Cjkjvfnby Jul 29, 2015
d84f2d6
Join individual tech and multiple tech to single structure. Unify te…
Cjkjvfnby Jul 29, 2015
efb9a96
fixed copy-paste error that was causing wrong priorities to be used, …
Dilvish-fo Aug 8, 2015
7ba45d5
fixed copy-paste error that was causing wrong priorities to be used, …
Dilvish-fo Aug 8, 2015
eceee3a
Remove unused argument from get_ship_tech_usefulness.
Cjkjvfnby Aug 8, 2015
36f3a69
Update get_priority.
Cjkjvfnby Jul 29, 2015
e9dafcb
Import module with local name to reduce length of code.
Cjkjvfnby Aug 8, 2015
6584518
Rework constant priority.
Cjkjvfnby Aug 8, 2015
561af0b
Cleanup.
Cjkjvfnby Aug 8, 2015
cc86f26
Rework more priority functions.
Cjkjvfnby Aug 8, 2015
1bd9b56
Simplify condition priority.
Cjkjvfnby Aug 8, 2015
a8b5883
Reformat code.
Cjkjvfnby Aug 8, 2015
8c9c60f
Reformat code.
Cjkjvfnby Aug 8, 2015
89ed1bd
Move tech handlers to upper level.
Cjkjvfnby Aug 8, 2015
24ac707
Introduce execute function. It will allow to replace constant functio…
Cjkjvfnby Aug 8, 2015
678ac83
Introduce execute function and remove functions that return constants.
Cjkjvfnby Aug 8, 2015
dcc626b
Rever position of function handlers. Fixes.
Cjkjvfnby Aug 8, 2015
2dd8b96
Dont prioritize tech twice.
Cjkjvfnby Aug 12, 2015
a0503fd
[AI] GRO_PLANET_ECOL no longer a theory tech
Cjkjvfnby Aug 12, 2015
2cee684
Merge branch 'experimental-research-ai' into experimental_ai_cleanup
Cjkjvfnby Aug 13, 2015
6ebf71a
Redesign choices, extract initializing priority functions to separate…
Cjkjvfnby Aug 18, 2015
2594036
Redesign prefixes. Now handlers for all techs are added to init.
Cjkjvfnby Aug 19, 2015
b6017d4
Update docstrings.
Cjkjvfnby Aug 19, 2015
85bf281
Move constants to top of file. Change condition object for init.
Cjkjvfnby Aug 19, 2015
828c9f9
Change order of if_enemies arguments.
Cjkjvfnby Aug 19, 2015
67325de
Change order of if_dict arguments.
Cjkjvfnby Aug 19, 2015
5518990
Merge pull request #9 from Cjkjvfnby/experimental_ai_cleanup
Dilvish-fo Aug 24, 2015
31b7f8c
Merge branch 'experimental-research-ai' into research_test
Dilvish-fo Sep 22, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 68 additions & 0 deletions default/AI/AIDependencies.py
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,13 @@
ART_MINDS = "LRN_ARTIF_MINDS"
LRN_ALGO_ELEGANCE = "LRN_ALGO_ELEGANCE"
LRN_QUANT_NET = "LRN_QUANT_NET"
LRN_XENOARCH = "LRN_XENOARCH"
LRN_ART_BLACK_HOLE = "LRN_ART_BLACK_HOLE"

GRO_XENO_GENETICS = "GRO_XENO_GENETICS"
GRO_GENOME_BANK = "GRO_GENETIC_MED"

CON_CONC_CAMP = "CON_CONC_CAMP"

TECH_EXCLUSION_MAP_1 = {"LRN_TRANSCEND": fo.aggression.typical} # (k,v) exclude tech k if aggression is less than v
TECH_EXCLUSION_MAP_2 = {} # (k,v) exclude tech k if aggression is greater than v
Expand All @@ -134,6 +141,67 @@

PROT_FOCUS_MULTIPLIER = 2.0

# TODO obtain this information from techs.txt
UNRESEARCHABLE_TECHS = ["SHP_KRILL_SPAWN", "DEF_PLANET_CLOAK"]

UNUSED_TECHS = ["LRN_SPATIAL_DISTORT_GEN", "LRN_GATEWAY_VOID", "LRN_PSY_DOM",
"GRO_TERRAFORM", "GRO_BIOTERROR", "GRO_GAIA_TRANS",
"PRO_NDIM_ASSMB",
"CON_ORGANIC_STRC", "CON_PLANET_DRIVE", "CON_STARGATE",
"CON_ART_HEAVENLY", "CON_ART_PLANET",
"SHP_NOVA_BOMB", "SHP_DEATH_SPORE", "SHP_BIOTERM"]

THEORY_TECHS = ["LRN_PHYS_BRAIN", "LRN_TRANSLING_THT", "LRN_PSIONICS", "LRN_GRAVITONICS", "LRN_EVERYTHING", "LRN_MIND_VOID", "LRN_NDIM_SUBSPACE", "LRN_TIME_MECH",
"GRO_GENETIC_ENG", "GRO_ADV_ECOMAN", "GRO_NANOTECH_MED", "GRO_TRANSORG_SENT",
"PRO_NANOTECH_PROD", "PRO_ZERO_GEN",
"CON_ASYMP_MATS", "CON_ARCH_PSYCH",
"SHP_GAL_EXPLO"]

DEFENSE_TECHS_PREFIX = "DEF"

PRODUCTION_BOOST_TECHS = ["PRO_ROBOTIC_PROD", "PRO_FUSION_GEN", "PRO_SENTIENT_AUTOMATION",
"PRO_INDUSTRY_CENTER_I", "PRO_INDUSTRY_CENTER_II", "PRO_INDUSTRY_CENTER_III",
"PRO_SOL_ORB_GEN"]

RESEARCH_BOOST_TECHS = ["LRN_ALGO_ELEGANCE", "LRN_ARTIF_MINDS", "LRN_DISTRIB_THOUGHT", "LRN_QUANT_NET", "LRN_STELLAR_TOMOGRAPHY",
"LRN_ENCLAVE_VOID"]

PRODUCTION_AND_RESEARCH_BOOST_TECHS = ["LRN_UNIF_CONC", "GRO_ENERGY_META"]

POPULATION_BOOST_TECHS = ["GRO_PLANET_ECOL", "GRO_SYMBIOTIC_BIO", "GRO_XENO_HYBRIDS", "GRO_CYBORG", "GRO_SUBTER_HAB",
"CON_ORBITAL_HAB", "CON_NDIM_STRC", "PRO_EXOBOTS"]

# important that the easiest-to-reach supply tech be listed first
SUPPLY_BOOST_TECHS = ["CON_ORBITAL_CON", "CON_ARCH_MONOFILS", "CON_GAL_INFRA", "CON_CONTGRAV_ARCH"]

METER_CHANGE_BOOST_TECHS = ["CON_FRC_ENRG_STRC", "CON_TRANS_ARCH"]

DETECTION_TECHS = ["SPY_DETECT_1", "SPY_DETECT_2", "SPY_DETECT_3", "SPY_DETECT_4", "SPY_DETECT_5", "SPY_DIST_MOD", "SPY_LIGHTHOUSE"]
STEALTH_TECHS = ["SPY_STEALTH_1", "SPY_STEALTH_2", "SPY_STEALTH_3", "SPY_STEALTH_4", "CON_FRC_ENRG_CAMO"]

ROBOTIC_HULL_TECHS = ["SHP_MIL_ROBO_CONT", "SHP_SPACE_FLUX_DRIVE", "SHP_TRANSSPACE_DRIVE", "SHP_CONTGRAV_MAINT", "SHP_MASSPROP_SPEC",
"SHP_NANOROBO_MAINT", "SHP_MIDCOMB_LOG"]
ASTEROID_HULL_TECHS = ["SHP_ASTEROID_HULLS", "SHP_SCAT_AST_HULL",
"SHP_HEAVY_AST_HULL", "SHP_CAMO_AST_HULL", "SHP_MINIAST_SWARM"]
ORGANIC_HULL_TECHS = ["SHP_ORG_HULL", "SHP_MULTICELL_CAST", "SHP_ENDOCRINE_SYSTEMS", "SHP_CONT_BIOADAPT",
"SHP_MONOCELL_EXP", "SHP_CONT_SYMB", "SHP_BIOADAPTIVE_SPEC", "SHP_ENDOSYMB_HULL", "SHP_SENT_HULL"]
ENERGY_HULL_TECHS = ["SHP_FRC_ENRG_COMP", "SHP_QUANT_ENRG_MAG", "SHP_ENRG_BOUND_MAN", "SHP_SOLAR_CONT"]
MISC_HULL_TECHS = ["SHP_XENTRONIUM_HULL"]

HULL_TECHS = ROBOTIC_HULL_TECHS + ASTEROID_HULL_TECHS + ORGANIC_HULL_TECHS + ENERGY_HULL_TECHS + MISC_HULL_TECHS

DAMAGE_CONTROL_TECHS = ["SHP_BASIC_DAM_CONT", "SHP_FLEET_REPAIR", "SHP_ADV_DAM_CONT"]

WEAPON_PREFIX = "SHP_WEAPON"
ARMOR_TECHS = ["SHP_ZORTRIUM_PLATE", "SHP_DIAMOND_PLATE", "SHP_XENTRONIUM_PLATE",
"SHP_ASTEROID_REFORM", "SHP_MONOMOLEC_LATTICE", "PRO_NEUTRONIUM_EXTRACTION", "SHP_REINFORCED_HULL"]
ENGINE_TECHS = ["SHP_IMPROVED_ENGINE_COUPLINGS", "SHP_N_DIMENSIONAL_ENGINE_MATRIX", "SHP_SINGULARITY_ENGINE_CORE"]
FUEL_TECHS = ["SHP_DEUTERIUM_TANK", "SHP_ANTIMATTER_TANK", "SHP_ZERO_POINT"]
SHIELD_TECHS = ["LRN_FORCE_FIELD", "SHP_DEFLECTOR_SHIELD", "SHP_PLASMA_SHIELD", "SHP_BLACKSHIELD", "SHP_MULTISPEC_SHIELD"]
COLONY_POD_TECHS = ["GRO_LIFECYCLE_MAN"]
TROOP_POD_TECHS = ["GRO_NANO_CYBERNET"]

SHIP_TECHS_REQUIRING_BLACK_HOLE = ["SHP_SOLAR_CONT"]


# ship facilities info, dict keyed by building name, value is (min_aggression, prereq_bldg, base_cost, time)
Expand Down
Loading