2.3 KiB
Legacy Game Constants and Unit Sets
This document summarizes the static configuration layers that define game
rules and unit sets. References include legacy/hwe/sammo/GameConstBase.php,
legacy/hwe/sammo/GameUnitConstBase.php, legacy/hwe/sammo/GameUnitDetail.php,
and legacy/hwe/sammo/GameUnitConstraint/*.
GameConst (Rules)
GameConstBase defines the default rule set:
- Turn limits, stat caps, and progression thresholds.
- Resource floors (
basegold,baserice) and maintenance coefficients. - Command lists (
availableGeneralCommand,availableChiefCommand). - Availability lists for specials, items, and nation types.
- Scenario overrides apply via
Scenario::buildConf().
During scenario build, the engine generates d_setting/GameConst.php from
GameConstBase and scenario overrides (see
docs/architecture/legacy-scenarios.md).
Unit Sets (GameUnitConst)
GameUnitConstBase defines the base unit list and their combat properties:
- Unit identifiers, arm types, and labels.
- Base attack/defence stats, speed, avoid, magic coefficients.
- Cost and rice consumption.
- Attack/defence coefficients vs. other arm types.
- Attached trigger lists (
initSkillTrigger,phaseSkillTrigger). - Requirements via
GameUnitConstraintobjects.
Scenario build emits d_setting/GameUnitConst.php based on the selected
unitSet (scenario/unit/*.php).
GameUnitDetail
GameUnitDetail is the runtime representation of a crew type:
- Computes derived attack/defence using general stats and tech (
getTechAbil). - Calculates resource costs (
costWithTech,riceWithTech). - Applies attack/defence multipliers by opponent crew type.
- Can include an
iActionList(crew-type-specific action modules).
Crew types are also iAction providers, enabling triggers and stat modifiers
through General::getActionList().
Unit Constraints
Unit availability is controlled by GameUnitConstraint implementations:
ReqTech,ReqCities,ReqRegions,ReqMinRelYear,Impossible, etc.- Each constraint exposes
test(...)andgetInfo()for UI display. ReqNationAuxgates unit availability bynation.auxflags (e.g. research unlocks likecan_화시병사용), which are written by nation commands.
Open Questions / Follow-ups
- Scenario-specific overrides may redefine available units or unit sets; document those deltas per scenario when needed.