1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
from focs._effects import (
EffectsGroup,
Focus,
GalaxyMaxAIAggression,
Happiness,
IsHuman,
IsSource,
NamedReal,
Planet,
SetTargetIndustry,
Target,
TargetIndustry,
Value,
)
from macros.base_prod import INDUSTRY_PER_POP
from macros.priorities import (
TARGET_AFTER_SCALING_PRIORITY,
TARGET_EARLY_BEFORE_SCALING_PRIORITY,
TARGET_SCALING_PRIORITY,
)
_BASIC_INDUSTRY = [
EffectsGroup(
scope=IsSource,
activation=Planet() & TargetIndustry(low=0) & Happiness(low=0) & Focus(type=["FOCUS_INDUSTRY"]),
accountinglabel="FOCUS_INDUSTRY_LABEL",
priority=TARGET_EARLY_BEFORE_SCALING_PRIORITY,
effects=SetTargetIndustry(
value=Value
+ Target.Population * NamedReal(name="INDUSTRY_FOCUS_TARGET_INDUSTRY_PERPOP", value=1.0 * INDUSTRY_PER_POP)
),
),
EffectsGroup( # gives human bonuses when AI Aggression set to Beginner
scope=IsSource,
activation=Planet() & IsHuman & (GalaxyMaxAIAggression == 0), # human player, not human species
accountinglabel="DIFFICULTY",
priority=TARGET_AFTER_SCALING_PRIORITY,
effects=SetTargetIndustry(value=Value * 2),
),
]
def _industry(tag, default_multiplier):
return [
*_BASIC_INDUSTRY,
EffectsGroup(
description=f"{tag}_INDUSTRY_DESC",
scope=IsSource,
activation=Planet() & TargetIndustry(low=0) & Happiness(low=0) & Focus(type=["FOCUS_INDUSTRY"]),
accountinglabel=f"{tag}_INDUSTRY_LABEL",
priority=TARGET_SCALING_PRIORITY,
effects=SetTargetIndustry(
value=Value * NamedReal(name=f"{tag}_INDUSTRY_TARGET_INDUSTRY_SCALING", value=default_multiplier)
),
),
]
|