mirror of
https://github.com/nolen777/eagle0.git
synced 2026-07-29 02:15:43 +00:00
Convert TruceTurnBackPhaseAction to use Scala types internally (#4668)
- Replace LegacyFactionUtils.hasTruceOrAlliance with FactionUtils.hasTruceOrAlliance - Use Scala FactionT and ProvinceT instead of proto types - Remove GameStateConverter.toProto() call (was converting Scala to proto unnecessarily) - Update BUILD.bazel deps: remove legacy_faction_utils and proto_converters/game_state, add faction_utils and state/faction 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1861,7 +1861,7 @@ scala_library(
|
||||
"//src/main/scala/net/eagle0/eagle/library/actions/impl/common:protoless_sequential_results_action",
|
||||
"//src/main/scala/net/eagle0/eagle/library/actions/impl/common:random_state_trait_sequencer",
|
||||
"//src/main/scala/net/eagle0/eagle/library/actions/impl/common:t_random_sequential_results_action",
|
||||
"//src/main/scala/net/eagle0/eagle/library/util/faction_utils:legacy_faction_utils",
|
||||
"//src/main/scala/net/eagle0/eagle/library/util/faction_utils",
|
||||
"//src/main/scala/net/eagle0/eagle/model/action_result:action_result_trait",
|
||||
"//src/main/scala/net/eagle0/eagle/model/action_result:changed_battalion_trait",
|
||||
"//src/main/scala/net/eagle0/eagle/model/action_result:changed_hero_trait",
|
||||
@@ -1873,10 +1873,10 @@ scala_library(
|
||||
"//src/main/scala/net/eagle0/eagle/model/action_result/generated_text_request",
|
||||
"//src/main/scala/net/eagle0/eagle/model/action_result/types:end_truce_turn_back_phase_result_type",
|
||||
"//src/main/scala/net/eagle0/eagle/model/action_result/types:withdrawal_for_truce_result_type",
|
||||
"//src/main/scala/net/eagle0/eagle/model/proto_converters/game_state",
|
||||
"//src/main/scala/net/eagle0/eagle/model/proto_converters/province",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:army",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:round_phase",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state/faction",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state/game_state",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state/province",
|
||||
],
|
||||
|
||||
+9
-10
@@ -2,23 +2,22 @@ package net.eagle0.eagle.library.actions.impl.action
|
||||
|
||||
import net.eagle0.common.{FunctionalRandom, RandomState}
|
||||
import net.eagle0.eagle.{FactionId, ProvinceId}
|
||||
import net.eagle0.eagle.internal.game_state.GameState as GameStateProto
|
||||
import net.eagle0.eagle.internal.province.Province as ProvinceProto
|
||||
import net.eagle0.eagle.library.actions.applier.ActionResultTApplier
|
||||
import net.eagle0.eagle.library.actions.impl.common.{RandomStateTSequencer, TRandomSequentialResultsAction}
|
||||
import net.eagle0.eagle.library.util.faction_utils.LegacyFactionUtils
|
||||
import net.eagle0.eagle.library.util.faction_utils.FactionUtils
|
||||
import net.eagle0.eagle.model.action_result.changed_province.concrete.{ChangedProvinceC, HostileArmyStatusChange}
|
||||
import net.eagle0.eagle.model.action_result.concrete.ActionResultC
|
||||
import net.eagle0.eagle.model.action_result.types.{EndTruceTurnBackPhaseResultType, WithdrawalForTruceResultType}
|
||||
import net.eagle0.eagle.model.action_result.ActionResultT
|
||||
import net.eagle0.eagle.model.proto_converters.game_state.GameStateConverter
|
||||
import net.eagle0.eagle.model.proto_converters.province.ProvinceConverter
|
||||
import net.eagle0.eagle.model.state.faction.FactionT
|
||||
import net.eagle0.eagle.model.state.game_state.GameState
|
||||
import net.eagle0.eagle.model.state.province.ProvinceT
|
||||
import net.eagle0.eagle.model.state.HostileArmyGroupStatus
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
|
||||
case class TruceTurnBackPhaseAction(gameState: GameState) extends TRandomSequentialResultsAction(gameState) {
|
||||
private val startingState: GameStateProto = GameStateConverter.toProto(gameState)
|
||||
private val factions: Vector[FactionT] = gameState.factions.values.toVector
|
||||
|
||||
private def checkOneAttackingArmyGroup(
|
||||
attackingFactionId: FactionId,
|
||||
@@ -26,10 +25,10 @@ case class TruceTurnBackPhaseAction(gameState: GameState) extends TRandomSequent
|
||||
provinceId: ProvinceId
|
||||
): Option[ActionResultT] =
|
||||
Option.when(
|
||||
LegacyFactionUtils.hasTruceOrAlliance(
|
||||
FactionUtils.hasTruceOrAlliance(
|
||||
defendingFid,
|
||||
attackingFactionId,
|
||||
startingState
|
||||
factions
|
||||
)
|
||||
) {
|
||||
ActionResultC(
|
||||
@@ -48,7 +47,7 @@ case class TruceTurnBackPhaseAction(gameState: GameState) extends TRandomSequent
|
||||
)
|
||||
}
|
||||
|
||||
private def checkOneProvince(province: ProvinceProto): Vector[ActionResultT] =
|
||||
private def checkOneProvince(province: ProvinceT): Vector[ActionResultT] =
|
||||
province.rulingFactionId.map { defendingFid =>
|
||||
province.hostileArmies.flatMap { attackingArmy =>
|
||||
checkOneAttackingArmyGroup(
|
||||
@@ -56,7 +55,7 @@ case class TruceTurnBackPhaseAction(gameState: GameState) extends TRandomSequent
|
||||
defendingFid = defendingFid,
|
||||
provinceId = province.id
|
||||
)
|
||||
}.toVector
|
||||
}
|
||||
}
|
||||
.getOrElse(Vector())
|
||||
|
||||
@@ -69,7 +68,7 @@ case class TruceTurnBackPhaseAction(gameState: GameState) extends TRandomSequent
|
||||
actionResultApplier = actionResultTApplier,
|
||||
functionalRandom = functionalRandom
|
||||
)
|
||||
.withActionResults(_ => startingState.provinces.values.toVector.flatMap(checkOneProvince))
|
||||
.withActionResults(_ => gameState.provinces.values.toVector.flatMap(checkOneProvince))
|
||||
.withProtolessSequentialResultsAction(gs =>
|
||||
WithdrawnArmiesReturnHomeAction(
|
||||
gs.currentRoundId,
|
||||
|
||||
Reference in New Issue
Block a user