mirror of
https://github.com/nolen777/eagle0.git
synced 2026-07-28 21:35:42 +00:00
Compare commits
4
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9cf6e9cc3f | ||
|
|
aa62cbdae5 | ||
|
|
b5ce58a448 | ||
|
|
561babd7bc |
@@ -175,6 +175,19 @@ proto_library(
|
||||
],
|
||||
)
|
||||
|
||||
scala_proto_library(
|
||||
name = "game_type_scala_proto",
|
||||
deps = [":game_type_proto"],
|
||||
)
|
||||
|
||||
proto_library(
|
||||
name = "game_type_proto",
|
||||
srcs = ["game_type.proto"],
|
||||
visibility = [
|
||||
"//src/main/protobuf/net/eagle0:__subpackages__",
|
||||
],
|
||||
)
|
||||
|
||||
scala_proto_library(
|
||||
name = "gender_scala_proto",
|
||||
deps = [":gender_proto"],
|
||||
@@ -356,6 +369,7 @@ csharp_proto_compile(
|
||||
":date_proto",
|
||||
":diplomacy_offer_proto",
|
||||
":diplomacy_offer_status_proto",
|
||||
":game_type_proto",
|
||||
":gender_proto",
|
||||
":improvement_type_proto",
|
||||
":profession_proto",
|
||||
@@ -383,6 +397,7 @@ go_proto_library(
|
||||
":date_proto",
|
||||
":diplomacy_offer_proto",
|
||||
":diplomacy_offer_status_proto",
|
||||
":game_type_proto",
|
||||
":gender_proto",
|
||||
":improvement_type_proto",
|
||||
":profession_proto",
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
//
|
||||
// Copyright 2019 Dan Crosby
|
||||
//
|
||||
|
||||
syntax = "proto3";
|
||||
|
||||
package net.eagle0.eagle.common;
|
||||
|
||||
option java_multiple_files = true;
|
||||
option java_package = "net.eagle0.eagle.common";
|
||||
option java_outer_classname = "GameType";
|
||||
option objc_class_prefix = "E0G";
|
||||
|
||||
enum GameType {
|
||||
UNKNOWN_GAME_TYPE = 0;
|
||||
NORMAL = 1;
|
||||
TUTORIAL = 2;
|
||||
}
|
||||
@@ -34,6 +34,7 @@ proto_library(
|
||||
"//src/main/protobuf/net/eagle0/eagle/common:chronicle_entry_proto",
|
||||
"//src/main/protobuf/net/eagle0/eagle/common:command_type_proto",
|
||||
"//src/main/protobuf/net/eagle0/eagle/common:date_proto",
|
||||
"//src/main/protobuf/net/eagle0/eagle/common:game_type_proto",
|
||||
"//src/main/protobuf/net/eagle0/eagle/common:round_phase_proto",
|
||||
"@com_google_protobuf//:wrappers_proto",
|
||||
],
|
||||
@@ -324,6 +325,7 @@ proto_library(
|
||||
"//src/main/protobuf/net/eagle0/eagle/common:battalion_type_proto",
|
||||
"//src/main/protobuf/net/eagle0/eagle/common:chronicle_entry_proto",
|
||||
"//src/main/protobuf/net/eagle0/eagle/common:date_proto",
|
||||
"//src/main/protobuf/net/eagle0/eagle/common:game_type_proto",
|
||||
"//src/main/protobuf/net/eagle0/eagle/common:round_phase_proto",
|
||||
"@com_google_protobuf//:wrappers_proto",
|
||||
],
|
||||
|
||||
@@ -14,6 +14,7 @@ import "src/main/protobuf/net/eagle0/eagle/common/battalion_type.proto";
|
||||
import "src/main/protobuf/net/eagle0/eagle/common/chronicle_entry.proto";
|
||||
import "src/main/protobuf/net/eagle0/eagle/common/command_type.proto";
|
||||
import "src/main/protobuf/net/eagle0/eagle/common/date.proto";
|
||||
import "src/main/protobuf/net/eagle0/eagle/common/game_type.proto";
|
||||
import "src/main/protobuf/net/eagle0/eagle/common/round_phase.proto";
|
||||
import "src/main/protobuf/net/eagle0/eagle/internal/battalion.proto";
|
||||
import "src/main/protobuf/net/eagle0/eagle/internal/changed_faction.proto";
|
||||
@@ -89,4 +90,6 @@ message ActionResult {
|
||||
.google.protobuf.Int64Value new_random_seed = 33;
|
||||
|
||||
.net.eagle0.eagle.common.ChronicleEntry new_chronicle_entry = 42;
|
||||
|
||||
.net.eagle0.eagle.common.GameType new_game_type = 44;
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ import "src/main/protobuf/net/eagle0/eagle/common/action_result_notification_det
|
||||
import "src/main/protobuf/net/eagle0/eagle/common/battalion_type.proto";
|
||||
import "src/main/protobuf/net/eagle0/eagle/common/chronicle_entry.proto";
|
||||
import "src/main/protobuf/net/eagle0/eagle/common/date.proto";
|
||||
import "src/main/protobuf/net/eagle0/eagle/common/game_type.proto";
|
||||
import "src/main/protobuf/net/eagle0/eagle/common/round_phase.proto";
|
||||
import "src/main/protobuf/net/eagle0/eagle/internal/battalion.proto";
|
||||
import "src/main/protobuf/net/eagle0/eagle/internal/faction.proto";
|
||||
@@ -55,4 +56,6 @@ message GameState {
|
||||
int64 random_seed = 16;
|
||||
|
||||
repeated .net.eagle0.eagle.common.ChronicleEntry chronicle_entries = 21;
|
||||
|
||||
.net.eagle0.eagle.common.GameType game_type = 23;
|
||||
}
|
||||
|
||||
@@ -135,6 +135,7 @@ proto_library(
|
||||
"//src/main/protobuf/net/eagle0/eagle/common:battalion_type_proto",
|
||||
"//src/main/protobuf/net/eagle0/eagle/common:chronicle_entry_proto",
|
||||
"//src/main/protobuf/net/eagle0/eagle/common:date_proto",
|
||||
"//src/main/protobuf/net/eagle0/eagle/common:game_type_proto",
|
||||
"//src/main/protobuf/net/eagle0/eagle/common:round_phase_proto",
|
||||
"@com_google_protobuf//:wrappers_proto",
|
||||
],
|
||||
|
||||
@@ -11,6 +11,7 @@ import "google/protobuf/wrappers.proto";
|
||||
import "src/main/protobuf/net/eagle0/eagle/common/battalion_type.proto";
|
||||
import "src/main/protobuf/net/eagle0/eagle/common/chronicle_entry.proto";
|
||||
import "src/main/protobuf/net/eagle0/eagle/common/date.proto";
|
||||
import "src/main/protobuf/net/eagle0/eagle/common/game_type.proto";
|
||||
import "src/main/protobuf/net/eagle0/eagle/common/round_phase.proto";
|
||||
import "src/main/protobuf/net/eagle0/eagle/views/faction_view.proto";
|
||||
import "src/main/protobuf/net/eagle0/eagle/views/hero_view.proto";
|
||||
@@ -43,6 +44,8 @@ message GameStateView {
|
||||
repeated .net.eagle0.eagle.common.BattalionType battalion_types = 12;
|
||||
|
||||
repeated .net.eagle0.eagle.common.ChronicleEntry chronicle_entries = 14;
|
||||
|
||||
.net.eagle0.eagle.common.GameType game_type = 15;
|
||||
}
|
||||
|
||||
message GameStateViewDiff {
|
||||
@@ -72,4 +75,6 @@ message GameStateViewDiff {
|
||||
repeated .net.eagle0.eagle.common.BattalionType new_battalion_types = 19;
|
||||
|
||||
repeated .net.eagle0.eagle.common.ChronicleEntry updated_chronicle_entries = 20;
|
||||
|
||||
.net.eagle0.eagle.common.GameType new_game_type = 21;
|
||||
}
|
||||
|
||||
+5
-1
@@ -158,6 +158,10 @@ class ActionResultApplierImpl(validator: Option[Validator]) extends ActionResult
|
||||
.map(factionId => afterRunStatus.copy(victor = Some(factionId)))
|
||||
.getOrElse(afterRunStatus)
|
||||
|
||||
afterVictor.copy(actionResultCount = afterVictor.actionResultCount + 1)
|
||||
val afterGameType = result.newGameType
|
||||
.map(gameType => afterVictor.copy(gameType = gameType))
|
||||
.getOrElse(afterVictor)
|
||||
|
||||
afterGameType.copy(actionResultCount = afterGameType.actionResultCount + 1)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -134,6 +134,7 @@ scala_library(
|
||||
],
|
||||
deps = [
|
||||
"//src/main/scala/net/eagle0/eagle:eagle_pkg",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:game_type",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:round_phase",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state/chronicle_entry",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state/hero:gender",
|
||||
|
||||
@@ -39,7 +39,8 @@ object GameStateViewDiffer {
|
||||
.flatMap(b => b.shardokGameId)
|
||||
.diff(after.outstandingBattles.flatMap(b => b.shardokGameId)),
|
||||
newBattalionTypes = newValues(before.battalionTypes, after.battalionTypes),
|
||||
updatedChronicleEntries = after.chronicleEntries.filterNot(before.chronicleEntries.contains)
|
||||
updatedChronicleEntries = after.chronicleEntries.filterNot(before.chronicleEntries.contains),
|
||||
newGameType = optionalDiff(before.gameType, after.gameType)
|
||||
)
|
||||
)
|
||||
.filterNot(_ == emptyDiff)
|
||||
|
||||
@@ -52,7 +52,8 @@ object GameStateViewFilter {
|
||||
running = false,
|
||||
victor = gs.victor,
|
||||
battalionTypes = gs.battalionTypes,
|
||||
chronicleEntries = gs.chronicleEntries
|
||||
chronicleEntries = gs.chronicleEntries,
|
||||
gameType = gs.gameType
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ import net.eagle0.eagle.model.state.hero.HeroT
|
||||
import net.eagle0.eagle.model.state.province.ProvinceT
|
||||
import net.eagle0.eagle.model.state.shardok_battle.ShardokBattle
|
||||
import net.eagle0.eagle.model.state.BattalionType
|
||||
import net.eagle0.eagle.model.state.GameType
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
|
||||
object ActionResultT {
|
||||
@@ -64,6 +65,8 @@ trait ActionResultT {
|
||||
|
||||
def newRandomSeed: Option[Long]
|
||||
|
||||
def newGameType: Option[GameType]
|
||||
|
||||
def affectedFactionIds: Vector[FactionId]
|
||||
|
||||
def copy(
|
||||
@@ -99,6 +102,7 @@ trait ActionResultT {
|
||||
newVictorFactionId: Option[FactionId] = newVictorFactionId,
|
||||
gameEnded: Option[Boolean] = gameEnded,
|
||||
newRandomSeed: Option[Long] = newRandomSeed,
|
||||
newGameType: Option[GameType] = newGameType,
|
||||
affectedFactionIds: Vector[FactionId] = affectedFactionIds
|
||||
): ActionResultT
|
||||
|
||||
|
||||
@@ -37,6 +37,7 @@ scala_library(
|
||||
"//src/main/scala/net/eagle0/eagle/model/action_result/generated_text_request",
|
||||
"//src/main/scala/net/eagle0/eagle/model/action_result/types",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:battalion_type",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:game_type",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:round_phase",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state/battalion",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state/chronicle_entry",
|
||||
@@ -59,6 +60,7 @@ scala_library(
|
||||
"//src/main/scala/net/eagle0/eagle/model/action_result/generated_text_request",
|
||||
"//src/main/scala/net/eagle0/eagle/model/action_result/types",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:battalion_type",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:game_type",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:round_phase",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state/battalion",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state/chronicle_entry",
|
||||
|
||||
@@ -21,6 +21,7 @@ import net.eagle0.eagle.model.state.hero.HeroT
|
||||
import net.eagle0.eagle.model.state.province.ProvinceT
|
||||
import net.eagle0.eagle.model.state.shardok_battle.ShardokBattle
|
||||
import net.eagle0.eagle.model.state.BattalionType
|
||||
import net.eagle0.eagle.model.state.GameType
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
|
||||
object ActionResultC {
|
||||
@@ -59,6 +60,7 @@ case class ActionResultC(
|
||||
newVictorFactionId: Option[FactionId] = None,
|
||||
gameEnded: Option[Boolean] = None,
|
||||
newRandomSeed: Option[Long] = None,
|
||||
newGameType: Option[GameType] = None,
|
||||
affectedFactionIds: Vector[FactionId] = Vector.empty
|
||||
) extends ActionResultT {
|
||||
def update(updater: ActionResultC.ActionResultCUpdater): ActionResultC =
|
||||
@@ -96,6 +98,7 @@ case class ActionResultC(
|
||||
newVictorFactionId: Option[FactionId] = newVictorFactionId,
|
||||
gameEnded: Option[Boolean] = gameEnded,
|
||||
newRandomSeed: Option[Long] = newRandomSeed,
|
||||
newGameType: Option[GameType] = newGameType,
|
||||
affectedFactionIds: Vector[FactionId] = affectedFactionIds
|
||||
): ActionResultC =
|
||||
ActionResultC(
|
||||
@@ -129,6 +132,7 @@ case class ActionResultC(
|
||||
newVictorFactionId = newVictorFactionId,
|
||||
gameEnded = gameEnded,
|
||||
newRandomSeed = newRandomSeed,
|
||||
newGameType = newGameType,
|
||||
affectedFactionIds = affectedFactionIds
|
||||
)
|
||||
}
|
||||
|
||||
+8
@@ -44,6 +44,7 @@ import net.eagle0.eagle.model.state.hero.HeroT
|
||||
import net.eagle0.eagle.model.state.province.ProvinceT
|
||||
import net.eagle0.eagle.model.state.shardok_battle.ShardokBattle
|
||||
import net.eagle0.eagle.model.state.BattalionType
|
||||
import net.eagle0.eagle.model.state.GameType
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
|
||||
object ActionResultProtoConverter {
|
||||
@@ -83,6 +84,7 @@ object ActionResultProtoConverter {
|
||||
newVictorFactionId: Option[FactionId],
|
||||
gameEnded: Option[Boolean],
|
||||
newRandomSeed: Option[Long],
|
||||
newGameType: Option[GameType],
|
||||
affectedFactionIds: Vector[FactionId]
|
||||
) =>
|
||||
val arInit = ActionResultProto(
|
||||
@@ -155,6 +157,11 @@ object ActionResultProtoConverter {
|
||||
newVictor = newVictorFactionId,
|
||||
gameEnded = gameEnded,
|
||||
newRandomSeed = newRandomSeed,
|
||||
newGameType = newGameType
|
||||
.map(GameTypeConverter.toProto)
|
||||
.getOrElse(
|
||||
net.eagle0.eagle.common.game_type.GameType.UNKNOWN_GAME_TYPE
|
||||
),
|
||||
affectedPlayers = affectedFactionIds
|
||||
)
|
||||
|
||||
@@ -233,6 +240,7 @@ object ActionResultProtoConverter {
|
||||
newVictorFactionId = proto.newVictor,
|
||||
gameEnded = proto.gameEnded,
|
||||
newRandomSeed = proto.newRandomSeed,
|
||||
newGameType = GameTypeConverter.fromProtoOption(proto.newGameType),
|
||||
affectedFactionIds = proto.affectedPlayers.toVector
|
||||
)
|
||||
}
|
||||
|
||||
@@ -27,6 +27,7 @@ scala_library(
|
||||
":changed_hero_converter",
|
||||
":changed_province_converter",
|
||||
":command_type_converter",
|
||||
":game_type_converter",
|
||||
":notification_converter",
|
||||
":round_phase_converter",
|
||||
"//src/main/protobuf/net/eagle0/eagle/api:selected_command_scala_proto",
|
||||
@@ -51,6 +52,7 @@ scala_library(
|
||||
"//src/main/scala/net/eagle0/eagle/model/proto_converters/llm_request",
|
||||
"//src/main/scala/net/eagle0/eagle/model/proto_converters/province",
|
||||
"//src/main/scala/net/eagle0/eagle/model/proto_converters/shardok_battle:shardok_battle_converter",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:game_type",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:round_phase",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state/battalion",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state/chronicle_entry",
|
||||
@@ -62,6 +64,22 @@ scala_library(
|
||||
],
|
||||
)
|
||||
|
||||
scala_library(
|
||||
name = "game_type_converter",
|
||||
srcs = ["GameTypeConverter.scala"],
|
||||
visibility = [
|
||||
"//src/main/scala/net/eagle0/eagle/model/proto_converters:__pkg__",
|
||||
"//src/main/scala/net/eagle0/eagle/model/proto_converters/game_state:__pkg__",
|
||||
"//src/main/scala/net/eagle0/eagle/model/proto_converters/view/game_state:__pkg__",
|
||||
"//src/test/scala/net/eagle0/eagle/model/proto_converters:__pkg__",
|
||||
],
|
||||
deps = [
|
||||
":proto_conversion_exception",
|
||||
"//src/main/protobuf/net/eagle0/eagle/common:game_type_scala_proto",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:game_type",
|
||||
],
|
||||
)
|
||||
|
||||
scala_library(
|
||||
name = "generated_text_request_converter",
|
||||
srcs = ["GeneratedTextRequestConverter.scala"],
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
package net.eagle0.eagle.model.proto_converters
|
||||
|
||||
import net.eagle0.eagle.common.game_type.GameType as GameTypeProto
|
||||
import net.eagle0.eagle.model.proto_converters.ProtoConversionException
|
||||
import net.eagle0.eagle.model.state.GameType
|
||||
|
||||
object GameTypeConverter {
|
||||
def toProto(gameType: GameType): GameTypeProto = gameType match {
|
||||
case GameType.Normal => GameTypeProto.NORMAL
|
||||
case GameType.Tutorial => GameTypeProto.TUTORIAL
|
||||
}
|
||||
|
||||
def fromProto(gameTypeProto: GameTypeProto): GameType =
|
||||
gameTypeProto match {
|
||||
case GameTypeProto.NORMAL => GameType.Normal
|
||||
case GameTypeProto.TUTORIAL => GameType.Tutorial
|
||||
case GameTypeProto.UNKNOWN_GAME_TYPE =>
|
||||
throw new ProtoConversionException(
|
||||
"UNKNOWN_GAME_TYPE is not a valid GameType"
|
||||
)
|
||||
case GameTypeProto.Unrecognized(unrecognizedValue) =>
|
||||
throw new ProtoConversionException(
|
||||
s"Unrecognized GameType $unrecognizedValue"
|
||||
)
|
||||
}
|
||||
|
||||
def fromProtoOption(gameTypeProto: GameTypeProto): Option[GameType] =
|
||||
gameTypeProto match {
|
||||
case GameTypeProto.NORMAL => Some(GameType.Normal)
|
||||
case GameTypeProto.TUTORIAL => Some(GameType.Tutorial)
|
||||
case GameTypeProto.UNKNOWN_GAME_TYPE => None
|
||||
case GameTypeProto.Unrecognized(unrecognizedValue) =>
|
||||
throw new ProtoConversionException(
|
||||
s"Unrecognized GameType $unrecognizedValue"
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -30,6 +30,7 @@ scala_library(
|
||||
"//src/main/scala/net/eagle0/eagle/model/action_result:notification_trait",
|
||||
"//src/main/scala/net/eagle0/eagle/model/proto_converters:battalion_converter",
|
||||
"//src/main/scala/net/eagle0/eagle/model/proto_converters:battalion_type_converter",
|
||||
"//src/main/scala/net/eagle0/eagle/model/proto_converters:game_type_converter",
|
||||
"//src/main/scala/net/eagle0/eagle/model/proto_converters:notification_converter",
|
||||
"//src/main/scala/net/eagle0/eagle/model/proto_converters:proto_conversion_exception",
|
||||
"//src/main/scala/net/eagle0/eagle/model/proto_converters:round_phase_converter",
|
||||
|
||||
+12
-3
@@ -4,6 +4,7 @@ import net.eagle0.eagle.{BattalionId, FactionId, GameId, HeroId, ProvinceId, Rou
|
||||
import net.eagle0.eagle.common.action_result_notification_details.Notification as NotificationProto
|
||||
import net.eagle0.eagle.common.battalion_type.BattalionType as BattalionTypeProto
|
||||
import net.eagle0.eagle.common.date.Date as DateProto
|
||||
import net.eagle0.eagle.common.game_type.GameType as GameTypeProto
|
||||
import net.eagle0.eagle.common.round_phase.RoundPhase as RoundPhaseProto
|
||||
import net.eagle0.eagle.internal.battalion.Battalion as BattalionProto
|
||||
import net.eagle0.eagle.internal.chronicle_entry.ChronicleEntry as ChronicleEntryProto
|
||||
@@ -17,6 +18,7 @@ import net.eagle0.eagle.model.action_result.NotificationT
|
||||
import net.eagle0.eagle.model.proto_converters.{
|
||||
BattalionConverter,
|
||||
BattalionTypeConverter,
|
||||
GameTypeConverter,
|
||||
NotificationConverter,
|
||||
RoundPhaseConverter
|
||||
}
|
||||
@@ -37,6 +39,7 @@ import net.eagle0.eagle.model.state.province.ProvinceT
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.shardok_battle.ShardokBattle
|
||||
import net.eagle0.eagle.model.state.BattalionType
|
||||
import net.eagle0.eagle.model.state.GameType
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
|
||||
object GameStateConverter {
|
||||
@@ -63,7 +66,8 @@ object GameStateConverter {
|
||||
victor: Option[FactionId],
|
||||
battalionTypes: Vector[BattalionType],
|
||||
randomSeed: Long,
|
||||
chronicleEntries: Vector[ChronicleEntry]
|
||||
chronicleEntries: Vector[ChronicleEntry],
|
||||
gameType: GameType
|
||||
) =>
|
||||
GameStateProto(
|
||||
gameId = gameId,
|
||||
@@ -86,7 +90,8 @@ object GameStateConverter {
|
||||
victor = victor,
|
||||
battalionTypes = battalionTypes.map(BattalionTypeConverter.toProto),
|
||||
randomSeed = randomSeed,
|
||||
chronicleEntries = chronicleEntries.map(ChronicleEntryConverter.toProto)
|
||||
chronicleEntries = chronicleEntries.map(ChronicleEntryConverter.toProto),
|
||||
gameType = GameTypeConverter.toProto(gameType)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -114,6 +119,7 @@ object GameStateConverter {
|
||||
battalionTypes: Seq[BattalionTypeProto],
|
||||
randomSeed: Long,
|
||||
chronicleEntries: Seq[ChronicleEntryProto],
|
||||
gameType: GameTypeProto,
|
||||
_
|
||||
) =>
|
||||
GameState(
|
||||
@@ -145,7 +151,10 @@ object GameStateConverter {
|
||||
victor = victor,
|
||||
battalionTypes = battalionTypes.map(BattalionTypeConverter.fromProto).toVector,
|
||||
randomSeed = randomSeed,
|
||||
chronicleEntries = chronicleEntries.map(ChronicleEntryConverter.fromProto).toVector
|
||||
chronicleEntries = chronicleEntries.map(ChronicleEntryConverter.fromProto).toVector,
|
||||
gameType =
|
||||
if gameType == GameTypeProto.UNKNOWN_GAME_TYPE then GameType.Normal
|
||||
else GameTypeConverter.fromProto(gameType)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ scala_library(
|
||||
"//src/main/protobuf/net/eagle0/eagle/views:game_state_view_scala_proto",
|
||||
"//src/main/scala/net/eagle0/eagle:eagle_pkg",
|
||||
"//src/main/scala/net/eagle0/eagle/model/proto_converters:battalion_type_converter",
|
||||
"//src/main/scala/net/eagle0/eagle/model/proto_converters:game_type_converter",
|
||||
"//src/main/scala/net/eagle0/eagle/model/proto_converters:round_phase_converter",
|
||||
"//src/main/scala/net/eagle0/eagle/model/proto_converters/chronicle_entry:chronicle_entry_converter",
|
||||
"//src/main/scala/net/eagle0/eagle/model/proto_converters/date",
|
||||
@@ -19,6 +20,7 @@ scala_library(
|
||||
"//src/main/scala/net/eagle0/eagle/model/proto_converters/view/faction:faction_view_converter",
|
||||
"//src/main/scala/net/eagle0/eagle/model/proto_converters/view/hero:hero_view_converter",
|
||||
"//src/main/scala/net/eagle0/eagle/model/proto_converters/view/province:province_view",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:game_type",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:round_phase",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state/chronicle_entry",
|
||||
"//src/main/scala/net/eagle0/eagle/model/view/battle:shardok_battle_view",
|
||||
@@ -41,6 +43,7 @@ scala_library(
|
||||
"//src/main/protobuf/net/eagle0/eagle/views:game_state_view_scala_proto",
|
||||
"//src/main/scala/net/eagle0/eagle:eagle_pkg",
|
||||
"//src/main/scala/net/eagle0/eagle/model/proto_converters:battalion_type_converter",
|
||||
"//src/main/scala/net/eagle0/eagle/model/proto_converters:game_type_converter",
|
||||
"//src/main/scala/net/eagle0/eagle/model/proto_converters:round_phase_converter",
|
||||
"//src/main/scala/net/eagle0/eagle/model/proto_converters/chronicle_entry:chronicle_entry_converter",
|
||||
"//src/main/scala/net/eagle0/eagle/model/proto_converters/date",
|
||||
@@ -51,6 +54,7 @@ scala_library(
|
||||
"//src/main/scala/net/eagle0/eagle/model/proto_converters/view/hero:hero_view_diff_converter",
|
||||
"//src/main/scala/net/eagle0/eagle/model/proto_converters/view/province:province_view",
|
||||
"//src/main/scala/net/eagle0/eagle/model/proto_converters/view/province:province_view_diff_converter",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:game_type",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:round_phase",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state/chronicle_entry",
|
||||
"//src/main/scala/net/eagle0/eagle/model/view/battle:shardok_battle_view",
|
||||
|
||||
+3
-2
@@ -1,6 +1,6 @@
|
||||
package net.eagle0.eagle.model.proto_converters.view.game_state
|
||||
|
||||
import net.eagle0.eagle.model.proto_converters.{BattalionTypeConverter, RoundPhaseConverter}
|
||||
import net.eagle0.eagle.model.proto_converters.{BattalionTypeConverter, GameTypeConverter, RoundPhaseConverter}
|
||||
import net.eagle0.eagle.model.proto_converters.chronicle_entry.ChronicleEntryConverter
|
||||
import net.eagle0.eagle.model.proto_converters.date.DateConverter
|
||||
import net.eagle0.eagle.model.proto_converters.view.battle.ShardokBattleViewConverter
|
||||
@@ -38,6 +38,7 @@ object GameStateViewConverter {
|
||||
running = view.running,
|
||||
victor = view.victor,
|
||||
battalionTypes = view.battalionTypes.map(BattalionTypeConverter.toProto),
|
||||
chronicleEntries = view.chronicleEntries.map(ChronicleEntryConverter.toProto)
|
||||
chronicleEntries = view.chronicleEntries.map(ChronicleEntryConverter.toProto),
|
||||
gameType = GameTypeConverter.toProto(view.gameType)
|
||||
)
|
||||
}
|
||||
|
||||
+6
-2
@@ -1,7 +1,8 @@
|
||||
package net.eagle0.eagle.model.proto_converters.view.game_state
|
||||
|
||||
import net.eagle0.eagle.common.game_type.GameType as GameTypeProto
|
||||
import net.eagle0.eagle.common.round_phase.NewRoundPhase
|
||||
import net.eagle0.eagle.model.proto_converters.{BattalionTypeConverter, RoundPhaseConverter}
|
||||
import net.eagle0.eagle.model.proto_converters.{BattalionTypeConverter, GameTypeConverter, RoundPhaseConverter}
|
||||
import net.eagle0.eagle.model.proto_converters.chronicle_entry.ChronicleEntryConverter
|
||||
import net.eagle0.eagle.model.proto_converters.date.DateConverter
|
||||
import net.eagle0.eagle.model.proto_converters.view.battle.ShardokBattleViewConverter
|
||||
@@ -31,6 +32,9 @@ object GameStateViewDiffConverter {
|
||||
newRunning = diff.newRunning,
|
||||
newVictor = diff.newVictor,
|
||||
newBattalionTypes = diff.newBattalionTypes.map(BattalionTypeConverter.toProto),
|
||||
updatedChronicleEntries = diff.updatedChronicleEntries.map(ChronicleEntryConverter.toProto)
|
||||
updatedChronicleEntries = diff.updatedChronicleEntries.map(ChronicleEntryConverter.toProto),
|
||||
newGameType = diff.newGameType
|
||||
.map(GameTypeConverter.toProto)
|
||||
.getOrElse(GameTypeProto.UNKNOWN_GAME_TYPE)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -127,6 +127,25 @@ scala_library(
|
||||
],
|
||||
)
|
||||
|
||||
scala_library(
|
||||
name = "game_type",
|
||||
srcs = ["GameType.scala"],
|
||||
visibility = [
|
||||
":__subpackages__",
|
||||
"//src/main/scala/net/eagle0/eagle/library/actions/applier:__pkg__",
|
||||
"//src/main/scala/net/eagle0/eagle/library/util:__pkg__",
|
||||
"//src/main/scala/net/eagle0/eagle/model/action_result:__pkg__",
|
||||
"//src/main/scala/net/eagle0/eagle/model/action_result/concrete:__pkg__",
|
||||
"//src/main/scala/net/eagle0/eagle/model/proto_converters:__pkg__",
|
||||
"//src/main/scala/net/eagle0/eagle/model/proto_converters/game_state:__pkg__",
|
||||
"//src/main/scala/net/eagle0/eagle/model/proto_converters/view/game_state:__pkg__",
|
||||
"//src/main/scala/net/eagle0/eagle/model/view/game_state:__pkg__",
|
||||
"//src/main/scala/net/eagle0/eagle/service/new_game_creation:__pkg__",
|
||||
"//src/test/scala/net/eagle0/eagle/service:__subpackages__",
|
||||
],
|
||||
deps = [],
|
||||
)
|
||||
|
||||
scala_library(
|
||||
name = "improvement_type",
|
||||
srcs = ["ImprovementType.scala"],
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
package net.eagle0.eagle.model.state
|
||||
|
||||
sealed trait GameType { def value: Int }
|
||||
object GameType {
|
||||
case object Normal extends GameType { val value = 1 }
|
||||
case object Tutorial extends GameType { val value = 2 }
|
||||
|
||||
val allValues: Vector[GameType] = Vector(Normal, Tutorial)
|
||||
}
|
||||
@@ -6,6 +6,7 @@ scala_library(
|
||||
visibility = ["//visibility:public"],
|
||||
exports = [
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:battalion_type",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:game_type",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:round_phase",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state/battalion",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state/chronicle_entry",
|
||||
@@ -22,6 +23,7 @@ scala_library(
|
||||
"//src/main/scala/net/eagle0/eagle:eagle_pkg",
|
||||
"//src/main/scala/net/eagle0/eagle/model/action_result:notification_trait",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:battalion_type",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:game_type",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:round_phase",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state/battalion",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state/chronicle_entry",
|
||||
|
||||
@@ -11,6 +11,7 @@ import net.eagle0.eagle.model.state.province.ProvinceT
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.shardok_battle.ShardokBattle
|
||||
import net.eagle0.eagle.model.state.BattalionType
|
||||
import net.eagle0.eagle.model.state.GameType
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
|
||||
case class GameState(
|
||||
@@ -34,5 +35,6 @@ case class GameState(
|
||||
victor: Option[FactionId],
|
||||
battalionTypes: Vector[BattalionType],
|
||||
randomSeed: Long,
|
||||
chronicleEntries: Vector[ChronicleEntry]
|
||||
chronicleEntries: Vector[ChronicleEntry],
|
||||
gameType: GameType
|
||||
)
|
||||
|
||||
@@ -7,6 +7,7 @@ scala_library(
|
||||
deps = [
|
||||
"//src/main/scala/net/eagle0/eagle:eagle_pkg",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:battalion_type",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:game_type",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:round_phase",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state/chronicle_entry",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state/date",
|
||||
@@ -24,6 +25,7 @@ scala_library(
|
||||
deps = [
|
||||
"//src/main/scala/net/eagle0/eagle:eagle_pkg",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:battalion_type",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:game_type",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:round_phase",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state/chronicle_entry",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state/date",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package net.eagle0.eagle.model.view.game_state
|
||||
|
||||
import net.eagle0.eagle.{BattalionId, FactionId, HeroId, ProvinceId, RoundId}
|
||||
import net.eagle0.eagle.model.state.{BattalionType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.{BattalionType, GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.chronicle_entry.ChronicleEntry
|
||||
import net.eagle0.eagle.model.state.date.Date
|
||||
import net.eagle0.eagle.model.view.battle.ShardokBattleView
|
||||
@@ -23,5 +23,6 @@ case class GameStateView(
|
||||
running: Boolean,
|
||||
victor: Option[FactionId],
|
||||
battalionTypes: Vector[BattalionType],
|
||||
chronicleEntries: Vector[ChronicleEntry]
|
||||
chronicleEntries: Vector[ChronicleEntry],
|
||||
gameType: GameType
|
||||
)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package net.eagle0.eagle.model.view.game_state
|
||||
|
||||
import net.eagle0.eagle.{BattalionId, FactionId, HeroId}
|
||||
import net.eagle0.eagle.model.state.{BattalionType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.{BattalionType, GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.chronicle_entry.ChronicleEntry
|
||||
import net.eagle0.eagle.model.state.date.Date
|
||||
import net.eagle0.eagle.model.view.battle.ShardokBattleView
|
||||
@@ -27,5 +27,6 @@ case class GameStateViewDiff(
|
||||
newRunning: Option[Boolean] = None,
|
||||
newVictor: Option[FactionId] = None,
|
||||
newBattalionTypes: Vector[BattalionType] = Vector.empty,
|
||||
updatedChronicleEntries: Vector[ChronicleEntry] = Vector.empty
|
||||
updatedChronicleEntries: Vector[ChronicleEntry] = Vector.empty,
|
||||
newGameType: Option[GameType] = None
|
||||
)
|
||||
|
||||
@@ -1371,7 +1371,7 @@ class GamesManager(
|
||||
|
||||
tutorialBattleConfigs = tutorialBattleConfigs + (gameId -> tutorialConfig)
|
||||
|
||||
val textStore = ClientTextStoreImpl(
|
||||
val initialTextStore = ClientTextStoreImpl(
|
||||
pregenerated = pregeneratedClientText,
|
||||
persister = gamePersisterCreation.persisterForGame(gameId),
|
||||
completeTexts = Map.empty,
|
||||
@@ -1383,6 +1383,13 @@ class GamesManager(
|
||||
accessibleToIsSaved = true
|
||||
)
|
||||
|
||||
// Copy pregenerated texts (hero names, backstories) into the game's text store
|
||||
val populatedTextStore = GamesManager.withPopulatedPregeneratedTexts(
|
||||
clientTextStore = initialTextStore,
|
||||
heroes = engineAndResults.engine.currentState.heroes.values,
|
||||
factionIds = engineAndResults.engine.factionIds
|
||||
)
|
||||
|
||||
val userToFid = Map(userId -> 1)
|
||||
|
||||
val withAiCommands = GameController.performAiCommands(
|
||||
@@ -1391,7 +1398,7 @@ class GamesManager(
|
||||
fullHistory = GamesManager.extractFullHistory(engineAndResults.engine),
|
||||
userIdToFactionId = userToFid,
|
||||
aiFids = Vector(2),
|
||||
clientTextStore = textStore
|
||||
clientTextStore = populatedTextStore
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@@ -74,7 +74,8 @@ object InMemoryHistory {
|
||||
victor = None,
|
||||
battalionTypes = Vector.empty,
|
||||
randomSeed = 0L,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = net.eagle0.eagle.model.state.GameType.Normal
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -182,6 +182,7 @@ scala_library(
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:army",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:battalion_type",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:combat_unit",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:game_type",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:round_phase",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state:supplies",
|
||||
"//src/main/scala/net/eagle0/eagle/model/state/chronicle_entry",
|
||||
|
||||
+2
-1
@@ -44,7 +44,8 @@ object TutorialGameCreation {
|
||||
newRoundPhase = Some(RoundPhase.BattleRequest),
|
||||
newDate = Some(StartDate.startDate),
|
||||
newRandomSeed = Some(gameId),
|
||||
newProvinces = provinces
|
||||
newProvinces = provinces,
|
||||
newGameType = Some(GameType.Tutorial)
|
||||
)
|
||||
|
||||
// Build factions, heroes, and battalions from tutorial parameters
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
package net.eagle0.eagle.ai
|
||||
|
||||
import net.eagle0.eagle.{FactionId, HeroId, ProvinceId}
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.faction.concrete.FactionC
|
||||
import net.eagle0.eagle.model.state.faction.FactionT
|
||||
import net.eagle0.eagle.model.state.game_state.GameState
|
||||
import net.eagle0.eagle.model.state.province.{Neighbor, ProvinceT}
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
@@ -73,7 +73,8 @@ class FactionLeaderProvinceRankerTest extends AnyFlatSpec with Matchers with Bef
|
||||
victor = None,
|
||||
battalionTypes = Vector.empty,
|
||||
randomSeed = 0L,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
"rankedProvinceIds" should "order by hostile, then hostile + neutral" in {
|
||||
|
||||
@@ -4,6 +4,7 @@ import scala.util.Random
|
||||
|
||||
import net.eagle0.common.SeededRandom
|
||||
import net.eagle0.eagle.{FactionId, HeroId, ProvinceId}
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.command.available.AvailableCommand
|
||||
import net.eagle0.eagle.model.state.command.available.AvailableCommand.{
|
||||
AvailableDestinationProvince,
|
||||
@@ -17,7 +18,6 @@ import net.eagle0.eagle.model.state.game_state.GameState
|
||||
import net.eagle0.eagle.model.state.province.{Neighbor, ProvinceT}
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
@@ -77,7 +77,8 @@ class FixLeaderAloneCommandSelectorTest extends AnyFlatSpec with Matchers with B
|
||||
victor = None,
|
||||
battalionTypes = Vector.empty,
|
||||
randomSeed = 0L,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private def makeMarchAvailable(
|
||||
|
||||
@@ -10,6 +10,7 @@ import net.eagle0.eagle.library.settings.{
|
||||
MinimumTrustToInvite,
|
||||
PrestigePerSupportedProvince
|
||||
}
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.command.available.AvailableCommand
|
||||
import net.eagle0.eagle.model.state.command.available.AvailableCommand.{DiplomacyAvailable, DiplomacyOption}
|
||||
import net.eagle0.eagle.model.state.command.common.DiplomacyOptionType
|
||||
@@ -22,7 +23,6 @@ import net.eagle0.eagle.model.state.game_state.GameState
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.province.ProvinceT
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
@@ -82,7 +82,8 @@ class InvitationCommandSelectorTest extends AnyFlatSpec with Matchers with Befor
|
||||
victor = None,
|
||||
battalionTypes = Vector.empty,
|
||||
randomSeed = 0L,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private val actingFaction: FactionC = makeFaction(
|
||||
|
||||
@@ -3,6 +3,7 @@ package net.eagle0.eagle.ai
|
||||
import net.eagle0.eagle.{BattalionId, FactionId, HeroId, ProvinceId}
|
||||
import net.eagle0.eagle.library.settings.{GoldPerHeroHeldBack, MonthsReconConsideredRecent}
|
||||
import net.eagle0.eagle.model.state.{Army, BattalionType, MovingArmy, Supplies}
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.battalion.concrete.BattalionC
|
||||
import net.eagle0.eagle.model.state.battalion.BattalionT
|
||||
import net.eagle0.eagle.model.state.command.available.AvailableCommand
|
||||
@@ -25,7 +26,6 @@ import net.eagle0.eagle.model.state.province.{Neighbor, ProvinceT}
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.BattalionTypeId as ScalaBattalionTypeId
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import net.eagle0.eagle.model.view.province.ProvinceView
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
@@ -88,7 +88,8 @@ class MidGameAIClientTest extends AnyFlatSpec with Matchers with BeforeAndAfterE
|
||||
victor = None,
|
||||
battalionTypes = battalionTypes,
|
||||
randomSeed = 0L,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private def makeFaction(
|
||||
|
||||
+3
-2
@@ -2,6 +2,7 @@ package net.eagle0.eagle.ai
|
||||
|
||||
import net.eagle0.eagle.{FactionId, HeroId, ProvinceId}
|
||||
import net.eagle0.eagle.library.settings.GoldPerHeroHeldBack
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.command.available.AvailableCommand.{
|
||||
AvailableDestinationProvince,
|
||||
MarchAvailable,
|
||||
@@ -16,7 +17,6 @@ import net.eagle0.eagle.model.state.hero.HeroT
|
||||
import net.eagle0.eagle.model.state.province.{Neighbor, ProvinceT}
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
@@ -108,7 +108,8 @@ class MoveLeaderToBetterProvinceCommandChooserTest extends AnyFlatSpec with Matc
|
||||
victor = None,
|
||||
battalionTypes = Vector.empty,
|
||||
randomSeed = 0L,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private val faction: FactionC = makeFaction(
|
||||
|
||||
@@ -7,6 +7,7 @@ import net.eagle0.eagle.library.settings.{
|
||||
LoyaltyGainFromFeast,
|
||||
MinimumLoyaltyForSwearBrotherhood
|
||||
}
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.command.available.AvailableCommand
|
||||
import net.eagle0.eagle.model.state.command.available.AvailableCommand.{
|
||||
AvailableDestinationProvince,
|
||||
@@ -35,7 +36,6 @@ import net.eagle0.eagle.model.state.hero.HeroT
|
||||
import net.eagle0.eagle.model.state.province.{Neighbor, ProvinceT}
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
@@ -144,7 +144,8 @@ class SeekMoreLeadersCommandChooserTest extends AnyFlatSpec with Matchers with B
|
||||
victor = None,
|
||||
battalionTypes = Vector.empty,
|
||||
randomSeed = 0L,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private def makeMarchAvailable(
|
||||
|
||||
+3
-2
@@ -13,6 +13,7 @@ import net.eagle0.eagle.model.action_result.concrete.{
|
||||
}
|
||||
import net.eagle0.eagle.model.action_result.types.ActionResultType
|
||||
import net.eagle0.eagle.model.action_result.NotificationDetails
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.battalion.concrete.BattalionC
|
||||
import net.eagle0.eagle.model.state.date.Date
|
||||
import net.eagle0.eagle.model.state.date.Date.Month
|
||||
@@ -26,7 +27,6 @@ import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.shardok_battle.{BattleType, ShardokBattle}
|
||||
import net.eagle0.eagle.model.state.BattalionTypeId
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
@@ -61,7 +61,8 @@ class ActionResultApplierImplTest extends AnyFlatSpec with Matchers with BeforeA
|
||||
victor = None,
|
||||
battalionTypes = Vector.empty,
|
||||
randomSeed = 1L,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
// ============ Basic State Updates ============
|
||||
|
||||
+3
-2
@@ -1,6 +1,7 @@
|
||||
package net.eagle0.eagle.library.actions.availability
|
||||
|
||||
import net.eagle0.eagle.library.settings.{MaxAlmsFood, MinVigorForAlms}
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.command.available.AvailableCommand.AlmsAvailable
|
||||
import net.eagle0.eagle.model.state.faction.concrete.FactionC
|
||||
import net.eagle0.eagle.model.state.game_state.GameState
|
||||
@@ -8,7 +9,6 @@ import net.eagle0.eagle.model.state.hero.concrete.HeroC
|
||||
import net.eagle0.eagle.model.state.hero.Profession
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
@@ -68,7 +68,8 @@ class AvailableAlmsCommandFactoryTest extends AnyFlatSpec with Matchers with Bef
|
||||
victor = None,
|
||||
battalionTypes = Vector(),
|
||||
randomSeed = 0,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private val extraProvinceVassal1 = HeroC(
|
||||
|
||||
+3
-2
@@ -1,6 +1,7 @@
|
||||
package net.eagle0.eagle.library.actions.availability
|
||||
|
||||
import net.eagle0.eagle.library.settings.MinVigorForApprehendOutlaw
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.command.available.AvailableCommand.{ApprehendOutlawAvailable, ResidentOutlaw}
|
||||
import net.eagle0.eagle.model.state.game_state.GameState
|
||||
import net.eagle0.eagle.model.state.hero.concrete.HeroC
|
||||
@@ -8,7 +9,6 @@ import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.concrete.UnaffiliatedHeroC
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.UnaffiliatedHeroType
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
@@ -84,7 +84,8 @@ class AvailableApprehendOutlawCommandFactoryTest extends AnyFlatSpec with Matche
|
||||
victor = None,
|
||||
battalionTypes = Vector(),
|
||||
randomSeed = 0,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private val gameState = makeGameState()
|
||||
|
||||
+3
-1
@@ -5,6 +5,7 @@ import net.eagle0.eagle.model.state.battalion.concrete.BattalionC
|
||||
import net.eagle0.eagle.model.state.command.available.AvailableCommand.{ArmTroopsAvailable, ArmamentCost}
|
||||
import net.eagle0.eagle.model.state.game_state.GameState
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.GameType
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
@@ -94,7 +95,8 @@ class AvailableArmTroopsCommandFactoryTest extends AnyFlatSpec with Matchers wit
|
||||
victor = None,
|
||||
battalionTypes = battalionTypes,
|
||||
randomSeed = 0,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
"availableCommands" should "return nothing if there are no battalions" in {
|
||||
|
||||
+3
-2
@@ -8,6 +8,7 @@ import net.eagle0.eagle.library.settings.{
|
||||
}
|
||||
import net.eagle0.eagle.library.EagleInternalException
|
||||
import net.eagle0.eagle.model.state.{Army, CombatUnit, HostileArmyGroup, HostileArmyGroupStatus, MovingArmy, Supplies}
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.battalion.concrete.BattalionC
|
||||
import net.eagle0.eagle.model.state.command.available.AvailableCommand.{
|
||||
ArmyStats,
|
||||
@@ -26,7 +27,6 @@ import net.eagle0.eagle.model.state.province.Neighbor
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.BattalionTypeId
|
||||
import net.eagle0.eagle.model.state.Hostility
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
@@ -182,7 +182,8 @@ class AvailableAttackDecisionCommandFactoryTest extends AnyFlatSpec with Matcher
|
||||
victor = None,
|
||||
battalionTypes = Vector(),
|
||||
randomSeed = 0,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private def getAttackDecisionCommand(gs: GameState): AttackDecisionAvailable =
|
||||
|
||||
+3
-1
@@ -13,6 +13,7 @@ import net.eagle0.eagle.model.state.game_state.GameState
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.province.ProvinceEvent
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.GameType
|
||||
import org.scalamock.scalatest.MockFactory
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
@@ -60,7 +61,8 @@ class AvailableCommandsFactoryTest extends AnyFlatSpec with Matchers with MockFa
|
||||
victor = None,
|
||||
battalionTypes = Vector.empty,
|
||||
randomSeed = 0L,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private val baseProvince = ProvinceC(
|
||||
|
||||
+3
-2
@@ -2,6 +2,7 @@ package net.eagle0.eagle.library.actions.availability
|
||||
|
||||
import net.eagle0.eagle.{FactionId, ProvinceId}
|
||||
import net.eagle0.eagle.library.settings.MinVigorForControlWeather
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.command.available.AvailableCommand.{ControlWeatherAvailable, TargetProvinceOptions}
|
||||
import net.eagle0.eagle.model.state.command.common.ControlWeatherType
|
||||
import net.eagle0.eagle.model.state.game_state.GameState
|
||||
@@ -11,7 +12,6 @@ import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.province.Neighbor
|
||||
import net.eagle0.eagle.model.state.province.ProvinceEvent.{BlizzardEvent, DroughtEvent}
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
@@ -68,7 +68,8 @@ class AvailableControlWeatherCommandsFactoryTest extends AnyFlatSpec with Before
|
||||
victor = None,
|
||||
battalionTypes = Vector(),
|
||||
randomSeed = 0,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private val gameState = makeGameState()
|
||||
|
||||
+3
-1
@@ -10,6 +10,7 @@ import net.eagle0.eagle.model.state.quest.DefeatFactionQuest
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.concrete.UnaffiliatedHeroC
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.RecruitmentInfo
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.UnaffiliatedHeroType.Traveler
|
||||
import net.eagle0.eagle.model.state.GameType
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.Inside.inside
|
||||
@@ -76,7 +77,8 @@ class AvailableDeclineQuestCommandsFactoryTest extends AnyFlatSpec with Matchers
|
||||
victor = None,
|
||||
battalionTypes = Vector(),
|
||||
randomSeed = 0,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
"availableCommand" should "return None when the province is not ruled by the faction leader" in {
|
||||
|
||||
+3
-1
@@ -19,6 +19,7 @@ import net.eagle0.eagle.model.state.hero.concrete.HeroC
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.province.Neighbor
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.GameType
|
||||
import net.eagle0.eagle.model.state.HostileArmyGroupStatus.Attacking
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
@@ -143,7 +144,8 @@ class AvailableDefendCommandsFactoryTest extends AnyFlatSpec with BeforeAndAfter
|
||||
victor = None,
|
||||
battalionTypes = battalionTypes,
|
||||
randomSeed = 0,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private val defendingProvince = ProvinceC(
|
||||
|
||||
+3
-2
@@ -11,6 +11,7 @@ import net.eagle0.eagle.library.settings.{
|
||||
PrestigePerSupportedProvince,
|
||||
TruceGoldCost
|
||||
}
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.command.available.AvailableCommand
|
||||
import net.eagle0.eagle.model.state.command.common.DiplomacyOptionType
|
||||
import net.eagle0.eagle.model.state.date.Date
|
||||
@@ -26,7 +27,6 @@ import net.eagle0.eagle.model.state.province.Neighbor
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.{RecruitmentInfo, UnaffiliatedHeroType}
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.concrete.UnaffiliatedHeroC
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
@@ -151,7 +151,8 @@ class AvailableDiplomacyCommandsFactoryTest extends AnyFlatSpec with Matchers wi
|
||||
victor = None,
|
||||
battalionTypes = Vector.empty,
|
||||
randomSeed = 0L,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private def gameState: GameState = makeGameState()
|
||||
|
||||
+3
-1
@@ -10,6 +10,7 @@ import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.concrete.UnaffiliatedHeroC
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.RecruitmentInfo
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.UnaffiliatedHeroType.Resident
|
||||
import net.eagle0.eagle.model.state.GameType
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
@@ -85,7 +86,8 @@ class AvailableDivineCommandsFactoryTest extends AnyFlatSpec with Matchers with
|
||||
victor = None,
|
||||
battalionTypes = Vector(),
|
||||
randomSeed = 0,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
"availableCommand" should "return None when the province is not ruled by the faction leader" in {
|
||||
|
||||
+3
-2
@@ -1,12 +1,12 @@
|
||||
package net.eagle0.eagle
|
||||
package library.actions.availability
|
||||
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.command.available.AvailableCommand.ExileVassalAvailable
|
||||
import net.eagle0.eagle.model.state.faction.concrete.FactionC
|
||||
import net.eagle0.eagle.model.state.game_state.GameState
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.Inside.inside
|
||||
@@ -56,7 +56,8 @@ class AvailableExileVassalCommandFactoryTest extends AnyFlatSpec with Matchers {
|
||||
victor = None,
|
||||
battalionTypes = Vector(),
|
||||
randomSeed = 0,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
"availableCommand" should "include non-leader vassals" in {
|
||||
|
||||
+11
-5
@@ -5,6 +5,7 @@ import net.eagle0.eagle.model.state.command.available.AvailableCommand.FeastAvai
|
||||
import net.eagle0.eagle.model.state.game_state.GameState
|
||||
import net.eagle0.eagle.model.state.hero.concrete.HeroC
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.GameType
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
@@ -50,7 +51,8 @@ class AvailableFeastCommandFactoryTest extends AnyFlatSpec with Matchers with Be
|
||||
victor = None,
|
||||
battalionTypes = Vector(),
|
||||
randomSeed = 0,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
AvailableFeastCommandFactory.availableCommand(
|
||||
@@ -94,7 +96,8 @@ class AvailableFeastCommandFactoryTest extends AnyFlatSpec with Matchers with Be
|
||||
victor = None,
|
||||
battalionTypes = Vector(),
|
||||
randomSeed = 0,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
inside(AvailableFeastCommandFactory.availableCommand(gameState, 9, 5).get) {
|
||||
@@ -137,7 +140,8 @@ class AvailableFeastCommandFactoryTest extends AnyFlatSpec with Matchers with Be
|
||||
victor = None,
|
||||
battalionTypes = Vector(),
|
||||
randomSeed = 0,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
inside(AvailableFeastCommandFactory.availableCommand(gameState, 9, 5).get) {
|
||||
@@ -184,7 +188,8 @@ class AvailableFeastCommandFactoryTest extends AnyFlatSpec with Matchers with Be
|
||||
victor = None,
|
||||
battalionTypes = Vector(),
|
||||
randomSeed = 0,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
inside(AvailableFeastCommandFactory.availableCommand(gameState, 9, 5).get) {
|
||||
@@ -231,7 +236,8 @@ class AvailableFeastCommandFactoryTest extends AnyFlatSpec with Matchers with Be
|
||||
victor = None,
|
||||
battalionTypes = Vector(),
|
||||
randomSeed = 0,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
inside(AvailableFeastCommandFactory.availableCommand(gameState, 9, 5).get) {
|
||||
|
||||
+3
-2
@@ -7,6 +7,7 @@ import net.eagle0.eagle.library.settings.{
|
||||
MinimumWisdomForStartFire
|
||||
}
|
||||
import net.eagle0.eagle.model.state.{Army, CombatUnit, HostileArmyGroup, HostileArmyGroupStatus, MovingArmy, Supplies}
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.battalion.concrete.BattalionC
|
||||
import net.eagle0.eagle.model.state.command.available.AvailableCommand.{
|
||||
ArmyStats,
|
||||
@@ -23,7 +24,6 @@ import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.BattalionTypeId
|
||||
import net.eagle0.eagle.model.state.Hostility
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import org.scalatest.{BeforeAndAfterEach, Inside}
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
@@ -135,7 +135,8 @@ class AvailableFreeForAllDecisionCommandFactoryTest
|
||||
victor = None,
|
||||
battalionTypes = Vector(),
|
||||
randomSeed = 0,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private def getFreeForAllCommand(gs: GameState): FreeForAllDecisionAvailable =
|
||||
|
||||
+3
-2
@@ -6,6 +6,7 @@ import net.eagle0.eagle.library.settings.{
|
||||
MinimumAgilityForStartFire,
|
||||
MinimumWisdomForStartFire
|
||||
}
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.command.available.AvailableCommand.HandleCapturedHeroAvailable
|
||||
import net.eagle0.eagle.model.state.command.common.CapturedHeroOption
|
||||
import net.eagle0.eagle.model.state.faction.concrete.FactionC
|
||||
@@ -14,7 +15,6 @@ import net.eagle0.eagle.model.state.hero.concrete.HeroC
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.CapturedHero
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import org.scalatest.{BeforeAndAfterEach, Inside}
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
@@ -95,7 +95,8 @@ class AvailableHandleCapturedHeroCommandFactoryTest
|
||||
victor = None,
|
||||
battalionTypes = Vector(),
|
||||
randomSeed = 0,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private val gameStateWithOne: GameState = gameStateWithTwo.copy(
|
||||
|
||||
+14
-10
@@ -5,12 +5,13 @@ import net.eagle0.eagle.library.settings.MinVigorForCrackDown
|
||||
import net.eagle0.eagle.model.state.command.available.AvailableCommand.HandleRiotCrackDownAvailable
|
||||
import net.eagle0.eagle.model.state.game_state.GameState
|
||||
import net.eagle0.eagle.model.state.hero.concrete.HeroC
|
||||
import net.eagle0.eagle.model.state.province.ProvinceEvent.ImminentRiotEvent
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
import org.scalatest.Inside.inside
|
||||
import net.eagle0.eagle.model.state.province.ProvinceEvent.ImminentRiotEvent
|
||||
import net.eagle0.eagle.model.state.GameType
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
import org.scalatest.Inside.inside
|
||||
|
||||
class AvailableHandleRiotCrackDownCommandFactoryTest extends AnyFlatSpec with BeforeAndAfterEach with Matchers {
|
||||
private val fid: FactionId = 17
|
||||
@@ -64,7 +65,8 @@ class AvailableHandleRiotCrackDownCommandFactoryTest extends AnyFlatSpec with Be
|
||||
victor = None,
|
||||
battalionTypes = Vector(),
|
||||
randomSeed = 0,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
override def beforeEach(): Unit =
|
||||
@@ -74,10 +76,11 @@ class AvailableHandleRiotCrackDownCommandFactoryTest extends AnyFlatSpec with Be
|
||||
val result = AvailableHandleRiotCrackDownCommandFactory
|
||||
.availableCommand(makeGameState(), fid, pid)
|
||||
|
||||
inside(result.get) { case cmd: HandleRiotCrackDownAvailable =>
|
||||
cmd.actingProvinceId shouldBe pid
|
||||
cmd.availableHeroIds shouldBe rulingFactionHeroIds
|
||||
cmd.battalionIdsAvailable shouldBe battalionIds
|
||||
inside(result.get) {
|
||||
case cmd: HandleRiotCrackDownAvailable =>
|
||||
cmd.actingProvinceId shouldBe pid
|
||||
cmd.availableHeroIds shouldBe rulingFactionHeroIds
|
||||
cmd.battalionIdsAvailable shouldBe battalionIds
|
||||
}
|
||||
}
|
||||
|
||||
@@ -99,8 +102,9 @@ class AvailableHandleRiotCrackDownCommandFactoryTest extends AnyFlatSpec with Be
|
||||
val result = AvailableHandleRiotCrackDownCommandFactory
|
||||
.availableCommand(makeGameState(heroVigorOverrides = Map(10 -> 12.0)), fid, pid)
|
||||
|
||||
inside(result.get) { case cmd: HandleRiotCrackDownAvailable =>
|
||||
cmd.availableHeroIds shouldBe Vector(20, 30)
|
||||
inside(result.get) {
|
||||
case cmd: HandleRiotCrackDownAvailable =>
|
||||
cmd.availableHeroIds shouldBe Vector(20, 30)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+3
-1
@@ -6,6 +6,7 @@ import net.eagle0.eagle.model.state.game_state.GameState
|
||||
import net.eagle0.eagle.model.state.hero.concrete.HeroC
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.province.ProvinceEvent.ImminentRiotEvent
|
||||
import net.eagle0.eagle.model.state.GameType
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
@@ -58,7 +59,8 @@ class AvailableHandleRiotDoNothingCommandFactoryTest extends AnyFlatSpec with Be
|
||||
victor = None,
|
||||
battalionTypes = Vector(),
|
||||
randomSeed = 0,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
override def beforeEach(): Unit = {}
|
||||
|
||||
+3
-1
@@ -6,6 +6,7 @@ import net.eagle0.eagle.model.state.command.available.AvailableCommand.HandleRio
|
||||
import net.eagle0.eagle.model.state.game_state.GameState
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.province.ProvinceEvent
|
||||
import net.eagle0.eagle.model.state.GameType
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
@@ -50,7 +51,8 @@ class AvailableHandleRiotGiveCommandFactoryTest extends AnyFlatSpec with BeforeA
|
||||
victor = None,
|
||||
battalionTypes = Vector(),
|
||||
randomSeed = 0,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
override def beforeEach(): Unit = {
|
||||
|
||||
+3
-2
@@ -2,13 +2,13 @@ package net.eagle0.eagle.library.actions.availability
|
||||
|
||||
import net.eagle0.eagle.{FactionId, HeroId, ProvinceId}
|
||||
import net.eagle0.eagle.library.settings.MaxGiftGold
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.command.available.AvailableCommand.{EligibleGift, HeroGiftAvailable}
|
||||
import net.eagle0.eagle.model.state.faction.concrete.FactionC
|
||||
import net.eagle0.eagle.model.state.game_state.GameState
|
||||
import net.eagle0.eagle.model.state.hero.concrete.HeroC
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
@@ -82,7 +82,8 @@ class AvailableHeroGiftCommandFactoryTest extends AnyFlatSpec with Matchers with
|
||||
victor = None,
|
||||
battalionTypes = Vector(),
|
||||
randomSeed = 0,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private val brother1 = HeroC(
|
||||
|
||||
+3
-2
@@ -3,6 +3,7 @@ package net.eagle0.eagle.library.actions.availability
|
||||
import net.eagle0.eagle.{FactionId, HeroId, ProvinceId}
|
||||
import net.eagle0.eagle.library.settings.MinVigorForImprove
|
||||
import net.eagle0.eagle.library.EagleInternalException
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.command.available.AvailableCommand.ImproveAvailable
|
||||
import net.eagle0.eagle.model.state.command.common.ImprovementType
|
||||
import net.eagle0.eagle.model.state.game_state.GameState
|
||||
@@ -10,7 +11,6 @@ import net.eagle0.eagle.model.state.hero.concrete.HeroC
|
||||
import net.eagle0.eagle.model.state.hero.Profession
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
@@ -86,7 +86,8 @@ class AvailableImproveCommandsFactoryTest extends AnyFlatSpec with Matchers with
|
||||
victor = None,
|
||||
battalionTypes = Vector(),
|
||||
randomSeed = 0,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private val gameState = makeGameState()
|
||||
|
||||
+3
-1
@@ -7,6 +7,7 @@ import net.eagle0.eagle.model.state.faction.concrete.FactionC
|
||||
import net.eagle0.eagle.model.state.game_state.GameState
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.province.ProvinceOrderType as StateProvinceOrderType
|
||||
import net.eagle0.eagle.model.state.GameType
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.Inside.inside
|
||||
@@ -113,7 +114,8 @@ class AvailableIssueOrdersCommandFactoryTest extends AnyFlatSpec with Matchers {
|
||||
victor = None,
|
||||
battalionTypes = Vector(),
|
||||
randomSeed = 0,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
"availableCommands" should "return nothing if the province leader is not a faction leader" in {
|
||||
|
||||
+3
-2
@@ -2,6 +2,7 @@ package net.eagle0.eagle.library.actions.availability
|
||||
|
||||
import net.eagle0.eagle.{FactionId, HeroId, ProvinceId}
|
||||
import net.eagle0.eagle.library.settings.{MinimumAgilityForArchery, MinimumAgilityForStartFire}
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.command.available.AvailableCommand.ManagePrisonersAvailable
|
||||
import net.eagle0.eagle.model.state.command.common.PrisonerManagementOption
|
||||
import net.eagle0.eagle.model.state.faction.concrete.FactionC
|
||||
@@ -12,7 +13,6 @@ import net.eagle0.eagle.model.state.province.Neighbor
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.{RecruitmentInfo, UnaffiliatedHeroType}
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.concrete.UnaffiliatedHeroC
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import org.scalatest.{BeforeAndAfterEach, Inside}
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
@@ -110,7 +110,8 @@ class AvailableManagePrisonerCommandsFactoryTest extends AnyFlatSpec with Before
|
||||
victor = None,
|
||||
battalionTypes = Vector(),
|
||||
randomSeed = 0,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private def getManagePrisonersCommand(gs: GameState): ManagePrisonersAvailable =
|
||||
|
||||
+3
-2
@@ -2,6 +2,7 @@ package net.eagle0.eagle.library.actions.availability
|
||||
|
||||
import net.eagle0.eagle.library.settings.{MaxCombatUnitCountPerSide, MaxFoodTribute, MaxGoldTribute, MinVigorForMarch}
|
||||
import net.eagle0.eagle.library.util.ShardokMapInfo
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.battalion.concrete.BattalionC
|
||||
import net.eagle0.eagle.model.state.battalion.BattalionT
|
||||
import net.eagle0.eagle.model.state.command.available.AvailableCommand
|
||||
@@ -14,7 +15,6 @@ import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.BattalionType
|
||||
import net.eagle0.eagle.model.state.BattalionTypeId.{HeavyInfantry, LightInfantry}
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
@@ -54,7 +54,8 @@ class AvailableMarchCommandFactoryTest extends AnyFlatSpec with BeforeAndAfterEa
|
||||
victor = None,
|
||||
battalionTypes = battalionTypes,
|
||||
randomSeed = 0L,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private def getMarchCommand(
|
||||
|
||||
+3
-1
@@ -5,6 +5,7 @@ import net.eagle0.eagle.model.state.battalion.concrete.BattalionC
|
||||
import net.eagle0.eagle.model.state.command.available.AvailableCommand.{OrganizeTroopsAvailable, TroopCost}
|
||||
import net.eagle0.eagle.model.state.game_state.GameState
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.GameType
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
@@ -90,7 +91,8 @@ class AvailableOrganizeTroopsCommandsFactoryTest extends AnyFlatSpec with Before
|
||||
victor = None,
|
||||
battalionTypes = battalionTypes,
|
||||
randomSeed = 0,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
"availableCommand" should "include all battalions, below cap or not, if stats are high enough" in {
|
||||
|
||||
+3
-2
@@ -17,6 +17,7 @@ import net.eagle0.eagle.library.settings.{
|
||||
RecruitmentPowerFactor,
|
||||
RecruitmentPrestigeFactor
|
||||
}
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.date.Date
|
||||
import net.eagle0.eagle.model.state.faction.concrete.FactionC
|
||||
import net.eagle0.eagle.model.state.game_state.GameState
|
||||
@@ -25,7 +26,6 @@ import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.{RecruitmentInfo, UnaffiliatedHeroType}
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.concrete.UnaffiliatedHeroC
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
@@ -83,7 +83,8 @@ class AvailablePleaseRecruitMeCommandFactoryTest extends AnyFlatSpec with Before
|
||||
victor = None,
|
||||
battalionTypes = Vector.empty,
|
||||
randomSeed = 0L,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private val baseProvinces: Map[Int, ProvinceC] = Map(actingProvince.id -> actingProvince)
|
||||
|
||||
+3
-2
@@ -1,6 +1,7 @@
|
||||
package net.eagle0.eagle.library.actions.availability
|
||||
|
||||
import net.eagle0.eagle.library.settings.MinVigorForRecon
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.command.available.AvailableCommand.ReconAvailable
|
||||
import net.eagle0.eagle.model.state.faction.concrete.FactionC
|
||||
import net.eagle0.eagle.model.state.game_state.GameState
|
||||
@@ -9,7 +10,6 @@ import net.eagle0.eagle.model.state.hero.Profession
|
||||
import net.eagle0.eagle.model.state.province.{IncomingEndTurnAction, IncomingRecon}
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import net.eagle0.eagle.FactionId
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
@@ -66,7 +66,8 @@ class AvailableReconCommandFactoryTest extends AnyFlatSpec with BeforeAndAfterEa
|
||||
victor = None,
|
||||
battalionTypes = Vector(),
|
||||
randomSeed = 0,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private val gameState = makeGameState()
|
||||
|
||||
+3
-1
@@ -27,6 +27,7 @@ import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.concrete.UnaffiliatedHeroC
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.RecruitmentInfo
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.UnaffiliatedHeroType.{Resident, Traveler}
|
||||
import net.eagle0.eagle.model.state.GameType
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
@@ -88,7 +89,8 @@ class AvailableRecruitHeroesCommandFactoryTest extends AnyFlatSpec with Matchers
|
||||
victor = None,
|
||||
battalionTypes = Vector(),
|
||||
randomSeed = 0,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
override def beforeEach(): Unit = {
|
||||
|
||||
+3
-2
@@ -1,5 +1,6 @@
|
||||
package net.eagle0.eagle.library.actions.availability
|
||||
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.command.available.AvailableCommand
|
||||
import net.eagle0.eagle.model.state.command.available.AvailableCommand.DiplomacyOfferInfo
|
||||
import net.eagle0.eagle.model.state.date.Date
|
||||
@@ -9,7 +10,6 @@ import net.eagle0.eagle.model.state.faction.concrete.FactionC
|
||||
import net.eagle0.eagle.model.state.game_state.GameState
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
@@ -81,7 +81,8 @@ class AvailableResolveBreakAllianceCommandFactoryTest extends AnyFlatSpec with M
|
||||
victor = None,
|
||||
battalionTypes = Vector.empty,
|
||||
randomSeed = 12345L,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
override def beforeEach(): Unit = {}
|
||||
|
||||
+3
-1
@@ -19,6 +19,7 @@ import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.concrete.UnaffiliatedHeroC
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.RecruitmentInfo
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.UnaffiliatedHeroType.{Prisoner, Traveler}
|
||||
import net.eagle0.eagle.model.state.GameType
|
||||
import net.eagle0.eagle.model.state.RoundPhase.PlayerCommands
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
@@ -133,7 +134,8 @@ class AvailableResolveRansomOfferCommandFactoryTest extends AnyFlatSpec with Mat
|
||||
victor = None,
|
||||
battalionTypes = Vector(),
|
||||
randomSeed = 1L,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private val gameState = makeGameState()
|
||||
|
||||
+3
-1
@@ -16,6 +16,7 @@ import net.eagle0.eagle.model.state.command.available.AvailableCommand.{ResolveT
|
||||
import net.eagle0.eagle.model.state.game_state.GameState
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.GameType
|
||||
import net.eagle0.eagle.model.state.HostileArmyGroupStatus.TributeDemanded
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
@@ -64,7 +65,8 @@ class AvailableResolveTributeCommandsFactoryTest extends AnyFlatSpec with Matche
|
||||
victor = None,
|
||||
battalionTypes = Vector(),
|
||||
randomSeed = 0,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private def makeHostileArmyGroup(
|
||||
|
||||
+3
-2
@@ -1,9 +1,9 @@
|
||||
package net.eagle0.eagle.library.actions.availability
|
||||
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.command.available.AvailableCommand.RestAvailable
|
||||
import net.eagle0.eagle.model.state.game_state.GameState
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
|
||||
@@ -30,7 +30,8 @@ class AvailableRestCommandsFactoryTest extends AnyFlatSpec with Matchers {
|
||||
victor = None,
|
||||
battalionTypes = Vector(),
|
||||
randomSeed = 0,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
val command = AvailableRestCommandsFactory.availableCommand(gameState, 12, 6)
|
||||
|
||||
+3
-2
@@ -1,11 +1,11 @@
|
||||
package net.eagle0.eagle.library.actions.availability
|
||||
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.command.available.AvailableCommand.ReturnAvailable
|
||||
import net.eagle0.eagle.model.state.game_state.GameState
|
||||
import net.eagle0.eagle.model.state.hero.concrete.HeroC
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.Inside.inside
|
||||
@@ -48,7 +48,8 @@ class AvailableReturnCommandsFactoryTest extends AnyFlatSpec with Matchers {
|
||||
victor = None,
|
||||
battalionTypes = Vector(),
|
||||
randomSeed = 0,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private val gameState = makeGameState()
|
||||
|
||||
+3
-2
@@ -1,6 +1,7 @@
|
||||
package net.eagle0.eagle.library.actions.availability
|
||||
|
||||
import net.eagle0.eagle.library.settings.MinVigorForSendSupplies
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.command.available.AvailableCommand.SendSuppliesAvailable
|
||||
import net.eagle0.eagle.model.state.date.Date
|
||||
import net.eagle0.eagle.model.state.game_state.GameState
|
||||
@@ -8,7 +9,6 @@ import net.eagle0.eagle.model.state.hero.concrete.HeroC
|
||||
import net.eagle0.eagle.model.state.province.{Neighbor, ProvinceEvent}
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import net.eagle0.eagle.ProvinceId
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
@@ -70,7 +70,8 @@ class AvailableSendSuppliesCommandFactoryTest extends AnyFlatSpec with BeforeAnd
|
||||
victor = None,
|
||||
battalionTypes = Vector(),
|
||||
randomSeed = 0,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private val gameState: GameState = makeGameState()
|
||||
|
||||
+3
-2
@@ -2,6 +2,7 @@ package net.eagle0.eagle.library.actions.availability
|
||||
|
||||
import net.eagle0.eagle.{FactionId, HeroId, ProvinceId}
|
||||
import net.eagle0.eagle.library.settings.MinVigorForStartEpidemic
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.command.available.AvailableCommand.{StartEpidemicAvailable, StartEpidemicOptions}
|
||||
import net.eagle0.eagle.model.state.date.Date
|
||||
import net.eagle0.eagle.model.state.game_state.GameState
|
||||
@@ -10,7 +11,6 @@ import net.eagle0.eagle.model.state.hero.Profession
|
||||
import net.eagle0.eagle.model.state.province.{Neighbor, ProvinceEvent}
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
@@ -98,7 +98,8 @@ class AvailableStartEpidemicCommandFactoryTest extends AnyFlatSpec with BeforeAn
|
||||
victor = None,
|
||||
battalionTypes = Vector(),
|
||||
randomSeed = 0,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private val gameState = makeGameState()
|
||||
|
||||
+3
-2
@@ -2,6 +2,7 @@ package net.eagle0.eagle.library.actions.availability
|
||||
|
||||
import net.eagle0.eagle.{FactionId, HeroId, ProvinceId}
|
||||
import net.eagle0.eagle.library.settings.{MaximumFactionLeaders, MinimumLoyaltyForSwearBrotherhood}
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.command.available.AvailableCommand.{HeroAndBackstory, SwearBrotherhoodAvailable}
|
||||
import net.eagle0.eagle.model.state.date.Date
|
||||
import net.eagle0.eagle.model.state.faction.concrete.FactionC
|
||||
@@ -10,7 +11,6 @@ import net.eagle0.eagle.model.state.hero.backstory_version.BackstoryVersion
|
||||
import net.eagle0.eagle.model.state.hero.concrete.HeroC
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
@@ -93,7 +93,8 @@ class AvailableSwearBrotherhoodCommandFactoryTest extends AnyFlatSpec with Match
|
||||
victor = None,
|
||||
battalionTypes = Vector(),
|
||||
randomSeed = 0,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private val gameState = makeGameState()
|
||||
|
||||
+3
-1
@@ -5,6 +5,7 @@ import net.eagle0.eagle.model.state.command.available.AvailableCommand.TradeAvai
|
||||
import net.eagle0.eagle.model.state.game_state.GameState
|
||||
import net.eagle0.eagle.model.state.hero.concrete.HeroC
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.GameType
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
@@ -49,7 +50,8 @@ class AvailableTradeCommandFactoryTest extends AnyFlatSpec with Matchers with Be
|
||||
victor = None,
|
||||
battalionTypes = Vector(),
|
||||
randomSeed = 0,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
override def beforeEach(): Unit = {
|
||||
|
||||
+3
-1
@@ -9,6 +9,7 @@ import net.eagle0.eagle.model.state.hero.concrete.HeroC
|
||||
import net.eagle0.eagle.model.state.hero.Profession
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.GameType
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
@@ -91,7 +92,8 @@ class AvailableTrainCommandsFactoryTest extends AnyFlatSpec with BeforeAndAfterE
|
||||
victor = None,
|
||||
battalionTypes = Vector(),
|
||||
randomSeed = 0,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
override def beforeEach(): Unit =
|
||||
|
||||
+3
-2
@@ -1,6 +1,7 @@
|
||||
package net.eagle0.eagle.library.actions.availability
|
||||
|
||||
import net.eagle0.eagle.library.settings.MinVigorForTravel
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.command.available.AvailableCommand.TravelAvailable
|
||||
import net.eagle0.eagle.model.state.date.Date
|
||||
import net.eagle0.eagle.model.state.game_state.GameState
|
||||
@@ -8,7 +9,6 @@ import net.eagle0.eagle.model.state.hero.concrete.HeroC
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.province.ProvinceEvent.BlizzardEvent
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
@@ -54,7 +54,8 @@ class AvailableTravelCommandsFactoryTest extends AnyFlatSpec with Matchers with
|
||||
victor = None,
|
||||
battalionTypes = Vector(),
|
||||
randomSeed = 0,
|
||||
chronicleEntries = Vector()
|
||||
chronicleEntries = Vector(),
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private val gameState = makeGameState()
|
||||
|
||||
+3
-1
@@ -42,6 +42,7 @@ import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.concrete.UnaffiliatedHeroC
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.RecruitmentInfo
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.UnaffiliatedHeroType.{Outlaw, Prisoner}
|
||||
import net.eagle0.eagle.model.state.GameType
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
@@ -92,7 +93,8 @@ class EndBattleAftermathPhaseActionTest extends AnyFlatSpec with Matchers with B
|
||||
victor = None,
|
||||
battalionTypes = Vector.empty,
|
||||
randomSeed = randomSeed,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
behavior of "EndBattleAftermathPhaseActionTest"
|
||||
|
||||
+3
-1
@@ -18,6 +18,7 @@ import net.eagle0.eagle.model.state.faction.concrete.FactionC
|
||||
import net.eagle0.eagle.model.state.game_state.GameState
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.GameType
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
|
||||
@@ -115,7 +116,8 @@ class EndDefenseDecisionPhaseActionTest extends AnyFlatSpec with Matchers {
|
||||
runStatus = RunStatus.Running,
|
||||
victor = None,
|
||||
battalionTypes = Vector.empty,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
"execute" should "end the phase and proceed to TRUCE_TURN_BACK" in {
|
||||
|
||||
+3
-2
@@ -4,10 +4,10 @@ import net.eagle0.common.SeededRandom
|
||||
import net.eagle0.eagle.library.actions.applier.ActionResultApplierImpl
|
||||
import net.eagle0.eagle.library.util.validations.RuntimeValidator
|
||||
import net.eagle0.eagle.model.action_result.types.ActionResultType.EndDiplomacyResolutionPhase
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.date.Date
|
||||
import net.eagle0.eagle.model.state.game_state.GameState
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
@@ -38,7 +38,8 @@ class EndDiplomacyResolutionPhaseActionTest extends AnyFlatSpec with Matchers wi
|
||||
victor = None,
|
||||
battalionTypes = Vector.empty,
|
||||
randomSeed = 12345L,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private val applier = ActionResultApplierImpl(Some(RuntimeValidator))
|
||||
|
||||
+3
-2
@@ -17,6 +17,7 @@ import net.eagle0.eagle.model.action_result.types.ActionResultType.{
|
||||
RiotAversionFailed,
|
||||
RiotOccurred
|
||||
}
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.command.available.AvailableCommand.HandleRiotDoNothingAvailable
|
||||
import net.eagle0.eagle.model.state.command.available.OneProvinceAvailableCommands
|
||||
import net.eagle0.eagle.model.state.date.Date
|
||||
@@ -27,7 +28,6 @@ import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.province.ProvinceEvent.ImminentRiotEvent
|
||||
import net.eagle0.eagle.model.state.province.ProvinceOrderType
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import org.scalamock.scalatest.MockFactory
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
@@ -71,7 +71,8 @@ class EndHandleRiotsPhaseActionTest extends AnyFlatSpec with BeforeAndAfterEach
|
||||
victor = None,
|
||||
battalionTypes = Vector.empty,
|
||||
randomSeed = 1L,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
override def beforeEach(): Unit = {
|
||||
|
||||
+3
-2
@@ -12,6 +12,7 @@ import net.eagle0.eagle.model.action_result.types.ActionResultType.{
|
||||
PrisonerMoveTookEffect,
|
||||
WeatherTookEffect
|
||||
}
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.date.Date
|
||||
import net.eagle0.eagle.model.state.faction.concrete.FactionC
|
||||
import net.eagle0.eagle.model.state.game_state.GameState
|
||||
@@ -23,7 +24,6 @@ import net.eagle0.eagle.model.state.province.ProvinceEvent.{BlizzardEvent, Droug
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.{RecruitmentInfo, UnaffiliatedHeroT, UnaffiliatedHeroType}
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.concrete.UnaffiliatedHeroC
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import net.eagle0.eagle.FactionId
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
@@ -143,7 +143,8 @@ class EndPlayerCommandsPhaseActionTest extends AnyFlatSpec with Matchers with Be
|
||||
victor = None,
|
||||
battalionTypes = Vector.empty,
|
||||
randomSeed = randomSeed,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private def gameState: GameState = makeGameState()
|
||||
|
||||
+3
-1
@@ -44,6 +44,7 @@ import net.eagle0.eagle.model.state.province.ProvinceOrderType
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.{RecruitmentInfo, UnaffiliatedHeroType}
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.concrete.UnaffiliatedHeroC
|
||||
import net.eagle0.eagle.model.state.GameType
|
||||
import org.scalamock.scalatest.MockFactory
|
||||
import org.scalatest.{BeforeAndAfterEach, OneInstancePerTest}
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
@@ -94,7 +95,8 @@ class NewRoundActionTest
|
||||
victor = None,
|
||||
battalionTypes = Vector.empty,
|
||||
randomSeed = 0L,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
// Helper to run NewRoundAction and return Scala ActionResults
|
||||
|
||||
@@ -14,6 +14,7 @@ import net.eagle0.eagle.library.settings.{
|
||||
import net.eagle0.eagle.model.action_result.changed_province.concrete.ChangedProvinceC
|
||||
import net.eagle0.eagle.model.action_result.concrete.{ChangedBattalionC, ChangedHeroC, StatDelta}
|
||||
import net.eagle0.eagle.model.action_result.types.ActionResultType
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.battalion.concrete.BattalionC
|
||||
import net.eagle0.eagle.model.state.faction.concrete.FactionC
|
||||
import net.eagle0.eagle.model.state.game_state.GameState
|
||||
@@ -23,7 +24,6 @@ import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.province.ProvinceT
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.BattalionTypeId
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
@@ -128,7 +128,8 @@ class NewYearActionTest extends AnyFlatSpec with Matchers with BeforeAndAfterEac
|
||||
victor = None,
|
||||
battalionTypes = Vector.empty,
|
||||
randomSeed = 0L,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private def gs: GameState = baseGameState
|
||||
|
||||
+3
-1
@@ -14,6 +14,7 @@ import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.BattalionType
|
||||
import net.eagle0.eagle.model.state.BattalionTypeId
|
||||
import net.eagle0.eagle.model.state.GameType
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
@@ -85,7 +86,8 @@ class PerformFoodConsumptionPhaseActionTest extends AnyFlatSpec with Matchers wi
|
||||
victor = None,
|
||||
battalionTypes = battalionTypes,
|
||||
randomSeed = 1L,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
override def beforeEach(): Unit = {}
|
||||
|
||||
+3
-1
@@ -18,6 +18,7 @@ import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.province.ProvinceEvent.BlizzardEvent
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.UnaffiliatedHeroType
|
||||
import net.eagle0.eagle.model.state.GameType
|
||||
import net.eagle0.eagle.ProvinceId
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
@@ -72,7 +73,8 @@ class PerformForcedTurnBackActionTest extends AnyFlatSpec with Matchers with Bef
|
||||
runStatus = RunStatus.Running,
|
||||
victor = None,
|
||||
battalionTypes = Vector.empty,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private val gsWithoutBlizzard = gsWithBlizzard.copy(
|
||||
|
||||
+3
-2
@@ -5,6 +5,7 @@ import net.eagle0.eagle.library.settings.{FactionBiasFromDeparture, LoyaltyThres
|
||||
import net.eagle0.eagle.model.action_result.changed_province.concrete.ChangedProvinceC
|
||||
import net.eagle0.eagle.model.action_result.concrete.ChangedHeroC
|
||||
import net.eagle0.eagle.model.action_result.types.ActionResultType.{EndHeroDeparturePhase, HeroesDeparted}
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.date.Date
|
||||
import net.eagle0.eagle.model.state.date.Date.Month
|
||||
import net.eagle0.eagle.model.state.faction.concrete.FactionC
|
||||
@@ -16,7 +17,6 @@ import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.{RecruitmentInfo, UnaffiliatedHeroType}
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.concrete.UnaffiliatedHeroC
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
@@ -72,7 +72,8 @@ class PerformHeroDeparturesActionTest extends AnyFlatSpec with Matchers with Bef
|
||||
runStatus = RunStatus.Running,
|
||||
victor = None,
|
||||
battalionTypes = Vector.empty,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
override def beforeEach(): Unit = {
|
||||
|
||||
+21
-18
@@ -8,6 +8,7 @@ import net.eagle0.eagle.model.state.game_state.GameState
|
||||
import net.eagle0.eagle.model.state.province.{Neighbor, ProvinceT}
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.GameType
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.Inside.inside
|
||||
@@ -60,7 +61,8 @@ class PerformHostileArmySetupActionTest extends AnyFlatSpec with Matchers {
|
||||
victor = None,
|
||||
battalionTypes = Vector.empty,
|
||||
randomSeed = 0L,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
"any setup" should "move to the next round phase" in {
|
||||
@@ -78,23 +80,24 @@ class PerformHostileArmySetupActionTest extends AnyFlatSpec with Matchers {
|
||||
result.actionResultType shouldBe SetUpHostileArmies
|
||||
result.changedProvinces should have size 1
|
||||
|
||||
inside(result.changedProvinces.head) { case c: ChangedProvinceC =>
|
||||
c.provinceId shouldBe 98
|
||||
c.removedIncomingArmyIds shouldBe Vector(22)
|
||||
c.newHostileArmies should have size 1
|
||||
|
||||
val hag = c.newHostileArmies.head
|
||||
hag.factionId shouldBe anotherFactionId
|
||||
hag.status shouldBe HostileArmyGroupStatus.AwaitingDecision
|
||||
hag.armies should have size 1
|
||||
|
||||
// Verify the full army structure is preserved
|
||||
val army = hag.armies.head
|
||||
army.id shouldBe 22
|
||||
army.originProvinceId shouldBe neighborProvinceId
|
||||
army.arrivalRound shouldBe currentRoundId
|
||||
army.startingPositionIndex shouldBe Some(3)
|
||||
army.army.factionId shouldBe anotherFactionId
|
||||
inside(result.changedProvinces.head) {
|
||||
case c: ChangedProvinceC =>
|
||||
c.provinceId shouldBe 98
|
||||
c.removedIncomingArmyIds shouldBe Vector(22)
|
||||
c.newHostileArmies should have size 1
|
||||
|
||||
val hag = c.newHostileArmies.head
|
||||
hag.factionId shouldBe anotherFactionId
|
||||
hag.status shouldBe HostileArmyGroupStatus.AwaitingDecision
|
||||
hag.armies should have size 1
|
||||
|
||||
// Verify the full army structure is preserved
|
||||
val army = hag.armies.head
|
||||
army.id shouldBe 22
|
||||
army.originProvinceId shouldBe neighborProvinceId
|
||||
army.arrivalRound shouldBe currentRoundId
|
||||
army.startingPositionIndex shouldBe Some(3)
|
||||
army.army.factionId shouldBe anotherFactionId
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+3
-2
@@ -46,6 +46,7 @@ import net.eagle0.eagle.model.action_result.concrete.{
|
||||
}
|
||||
import net.eagle0.eagle.model.action_result.types.ActionResultType.ProvinceEventsChanged
|
||||
import net.eagle0.eagle.model.state.{Army, MovingArmy, Supplies}
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.battalion.concrete.BattalionC
|
||||
import net.eagle0.eagle.model.state.date.Date
|
||||
import net.eagle0.eagle.model.state.faction.concrete.FactionC
|
||||
@@ -67,7 +68,6 @@ import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.concrete.UnaffiliatedHeroC
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.UnaffiliatedHeroType
|
||||
import net.eagle0.eagle.model.state.BattalionTypeId
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import net.eagle0.eagle.FactionId
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
@@ -159,7 +159,8 @@ class PerformProvinceEventsActionTest extends AnyFlatSpec with BeforeAndAfterEac
|
||||
victor = None,
|
||||
battalionTypes = Vector.empty,
|
||||
randomSeed = randomSeed,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
"changedProvince" should "remove beasts if we're past their end date" in {
|
||||
|
||||
+3
-1
@@ -12,6 +12,7 @@ import net.eagle0.eagle.model.state.game_state.GameState
|
||||
import net.eagle0.eagle.model.state.hero.concrete.HeroC
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.province.ProvinceOrderType
|
||||
import net.eagle0.eagle.model.state.GameType
|
||||
import net.eagle0.eagle.HeroId
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
@@ -111,7 +112,8 @@ class PerformProvinceMoveResolutionActionTest extends AnyFlatSpec with Matchers
|
||||
runStatus = net.eagle0.eagle.model.state.run_status.RunStatus.Running,
|
||||
victor = None,
|
||||
battalionTypes = Vector.empty,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private def getResults(gs: GameState) =
|
||||
|
||||
+3
-2
@@ -8,6 +8,7 @@ import net.eagle0.eagle.library.settings.{BaseResourceLimit, PerDevelopmentResou
|
||||
import net.eagle0.eagle.model.action_result.changed_province.concrete.ChangedProvinceC
|
||||
import net.eagle0.eagle.model.action_result.concrete.{ActionResultC, ChangedFactionC, ClientTextVisibilityExtensionC}
|
||||
import net.eagle0.eagle.model.action_result.types.ActionResultType.{EndReconResolutionPhase, ReconSucceeded}
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.date.Date
|
||||
import net.eagle0.eagle.model.state.faction.concrete.FactionC
|
||||
import net.eagle0.eagle.model.state.game_state.GameState
|
||||
@@ -19,7 +20,6 @@ import net.eagle0.eagle.model.state.quest.{ReconProvincesQuest, ReconSpecificPro
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.{RecruitmentInfo, UnaffiliatedHeroType}
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.concrete.UnaffiliatedHeroC
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
@@ -64,7 +64,8 @@ class PerformReconResolutionActionTest extends AnyFlatSpec with BeforeAndAfterEa
|
||||
victor = None,
|
||||
battalionTypes = Vector.empty,
|
||||
randomSeed = 0L,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private val baseProvinces: Map[Int, ProvinceC] = Map(
|
||||
|
||||
+3
-2
@@ -34,6 +34,7 @@ import net.eagle0.eagle.model.action_result.types.ActionResultType.{
|
||||
HeroMoved,
|
||||
HeroRejoined
|
||||
}
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.date.Date
|
||||
import net.eagle0.eagle.model.state.faction.concrete.FactionC
|
||||
import net.eagle0.eagle.model.state.faction.FactionT
|
||||
@@ -47,7 +48,6 @@ import net.eagle0.eagle.model.state.province.ProvinceEvent.BlizzardEvent
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.{RecruitmentInfo, UnaffiliatedHeroType}
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.concrete.UnaffiliatedHeroC
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
import org.scalatest.BeforeAndAfterEach
|
||||
@@ -77,7 +77,8 @@ class PerformUnaffiliatedHeroesActionTest extends AnyFlatSpec with Matchers with
|
||||
victor = None,
|
||||
battalionTypes = Vector.empty,
|
||||
randomSeed = 12345L,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
override def beforeEach(): Unit = {
|
||||
|
||||
+3
-1
@@ -48,6 +48,7 @@ import net.eagle0.eagle.model.state.province.Neighbor
|
||||
import net.eagle0.eagle.model.state.province.ProvinceOrderType.{Develop, Expand}
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.BattalionTypeId.{HeavyCavalry, HeavyInfantry, LightInfantry}
|
||||
import net.eagle0.eagle.model.state.GameType
|
||||
import org.scalamock.scalatest.MockFactory
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
@@ -264,7 +265,8 @@ class PerformVassalCommandsPhaseActionTest extends AnyFlatSpec with Matchers wit
|
||||
victor = None,
|
||||
battalionTypes = battalionTypes,
|
||||
randomSeed = 1L,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private val marchGameState = baseGameState(
|
||||
|
||||
+3
-2
@@ -5,13 +5,13 @@ import net.eagle0.eagle.model.action_result.changed_province.concrete.ChangedPro
|
||||
import net.eagle0.eagle.model.action_result.concrete.ChangedHeroC
|
||||
import net.eagle0.eagle.model.action_result.types.ActionResultType.{EndPrisonerExchangePhase, PrisonersExchanged}
|
||||
import net.eagle0.eagle.model.action_result.NotificationDetails
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.faction.concrete.FactionC
|
||||
import net.eagle0.eagle.model.state.game_state.GameState
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.{RecruitmentInfo, UnaffiliatedHeroType}
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.concrete.UnaffiliatedHeroC
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
|
||||
@@ -40,7 +40,8 @@ class PrisonerExchangeActionTest extends AnyFlatSpec with Matchers {
|
||||
runStatus = RunStatus.Running,
|
||||
victor = None,
|
||||
battalionTypes = Vector.empty,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private def prisoner(heroId: Int, lastFactionId: Int): UnaffiliatedHeroC =
|
||||
|
||||
+3
-1
@@ -40,6 +40,7 @@ import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.{RecruitmentInfo, UnaffiliatedHeroType}
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.concrete.UnaffiliatedHeroC
|
||||
import net.eagle0.eagle.model.state.unit_status.UnitStatus
|
||||
import net.eagle0.eagle.model.state.GameType
|
||||
import net.eagle0.eagle.shardok_interface.{EagleUnit, ResolvedEagleUnit}
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
@@ -203,7 +204,8 @@ class ProvinceConqueredActionTest extends AnyFlatSpec with Matchers {
|
||||
victor = None,
|
||||
battalionTypes = Vector.empty,
|
||||
randomSeed = 0L,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private val currentDate = Date(year = 2024, month = Date.Month.July)
|
||||
|
||||
+3
-1
@@ -48,6 +48,7 @@ import net.eagle0.eagle.model.state.shardok_battle.{DrawType, EndGameCondition}
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.{RecruitmentInfo, UnaffiliatedHeroType}
|
||||
import net.eagle0.eagle.model.state.unaffiliated_hero.concrete.UnaffiliatedHeroC
|
||||
import net.eagle0.eagle.model.state.unit_status.UnitStatus
|
||||
import net.eagle0.eagle.model.state.GameType
|
||||
import net.eagle0.eagle.shardok_interface.{BattleResolution, EagleUnit, ResolvedEagleUnit, ResolvedShardokPlayer}
|
||||
import net.eagle0.eagle.FactionId
|
||||
import org.scalamock.scalatest.MockFactory
|
||||
@@ -496,7 +497,8 @@ class ResolveBattleActionTest extends AnyFlatSpec with MockFactory with Matchers
|
||||
runStatus = RunStatus.Running,
|
||||
victor = None,
|
||||
randomSeed = 0L,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private val startingGameStateWithAllies = startingGameState.copy(
|
||||
|
||||
+3
-2
@@ -6,6 +6,7 @@ import net.eagle0.eagle.model.action_result.changed_province.concrete.{ChangedPr
|
||||
import net.eagle0.eagle.model.action_result.concrete.ActionResultC
|
||||
import net.eagle0.eagle.model.action_result.types.ActionResultType.{EndTruceTurnBackPhase, WithdrawalForTruce}
|
||||
import net.eagle0.eagle.model.state.{Army, HostileArmyGroup, HostileArmyGroupStatus, MovingArmy, Supplies}
|
||||
import net.eagle0.eagle.model.state.{GameType, RoundPhase}
|
||||
import net.eagle0.eagle.model.state.date.Date
|
||||
import net.eagle0.eagle.model.state.faction.concrete.FactionC
|
||||
import net.eagle0.eagle.model.state.faction.FactionRelationship
|
||||
@@ -13,7 +14,6 @@ import net.eagle0.eagle.model.state.faction.FactionRelationship.RelationshipLeve
|
||||
import net.eagle0.eagle.model.state.game_state.GameState
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.run_status.RunStatus
|
||||
import net.eagle0.eagle.model.state.RoundPhase
|
||||
import net.eagle0.eagle.FactionId
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
@@ -113,7 +113,8 @@ class TruceTurnBackPhaseActionTest extends AnyFlatSpec with Matchers {
|
||||
victor = None,
|
||||
battalionTypes = Vector.empty,
|
||||
randomSeed = 1L,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
"results" should "advance to the next phase" in {
|
||||
|
||||
+3
-1
@@ -10,6 +10,7 @@ import net.eagle0.eagle.model.state.hero.{Gender, Profession}
|
||||
import net.eagle0.eagle.model.state.hero.backstory_version.BackstoryVersion
|
||||
import net.eagle0.eagle.model.state.hero.concrete.HeroC
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.GameType
|
||||
import org.scalamock.scalatest.MockFactory
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
@@ -107,7 +108,8 @@ class CapturedHeroMessagePromptGeneratorTest extends AnyFlatSpec with Matchers w
|
||||
victor = None,
|
||||
battalionTypes = Vector.empty,
|
||||
randomSeed = 0L,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
"execute message prompt" should "return an appropriate execute message" in {
|
||||
|
||||
+3
-1
@@ -14,6 +14,7 @@ import net.eagle0.eagle.model.state.hero.backstory_version.BackstoryVersion
|
||||
import net.eagle0.eagle.model.state.hero.concrete.HeroC
|
||||
import net.eagle0.eagle.model.state.hero.Gender
|
||||
import net.eagle0.eagle.model.state.province.concrete.ProvinceC
|
||||
import net.eagle0.eagle.model.state.GameType
|
||||
import org.scalamock.scalatest.MockFactory
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
@@ -80,7 +81,8 @@ class ChronicleUpdatePromptGeneratorTest extends AnyFlatSpec with BeforeAndAfter
|
||||
victor = None,
|
||||
battalionTypes = Vector.empty,
|
||||
randomSeed = 0L,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
|
||||
private val mockClientTextStore = mock[ClientTextStore]
|
||||
|
||||
+3
-1
@@ -3,6 +3,7 @@ package net.eagle0.eagle.library.actions.llm_prompt_generators
|
||||
import net.eagle0.eagle.client_text.ClientTextStore
|
||||
import net.eagle0.eagle.model.state.date.Date
|
||||
import net.eagle0.eagle.model.state.game_state.GameState
|
||||
import net.eagle0.eagle.model.state.GameType
|
||||
import org.scalamock.scalatest.MockFactory
|
||||
import org.scalatest.flatspec.AnyFlatSpec
|
||||
import org.scalatest.matchers.should.Matchers
|
||||
@@ -56,7 +57,8 @@ class GeneratorUtilitiesTest extends AnyFlatSpec with Matchers with BeforeAndAft
|
||||
victor = None,
|
||||
battalionTypes = Vector.empty,
|
||||
randomSeed = 0L,
|
||||
chronicleEntries = Vector.empty
|
||||
chronicleEntries = Vector.empty,
|
||||
gameType = GameType.Normal
|
||||
)
|
||||
val clientTextStore = mock[ClientTextStore]
|
||||
GeneratorUtilities
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user