mirror of
https://github.com/nolen777/eagle0.git
synced 2026-07-28 21:35:42 +00:00
Preserve custom battle starting morale
This commit is contained in:
@@ -9,6 +9,7 @@ namespace shardok {
|
||||
using Coords = net::eagle0::shardok::storage::fb::Coords;
|
||||
|
||||
constexpr double kDefaultMorale = 50.0;
|
||||
constexpr float kExplicitMoraleSentinel = -1.0f;
|
||||
|
||||
auto ConvertBattalion(const net::eagle0::common::CommonBattalion &battalion) -> Battalion {
|
||||
Battalion shardokBattalion{};
|
||||
@@ -19,6 +20,7 @@ auto ConvertBattalion(const net::eagle0::common::CommonBattalion &battalion) ->
|
||||
static_cast<net::eagle0::shardok::storage::fb::BattalionTypeId>(battalion.type()));
|
||||
shardokBattalion.mutate_morale(
|
||||
static_cast<float>(battalion.has_morale() ? battalion.morale() : kDefaultMorale));
|
||||
if (battalion.has_morale()) { shardokBattalion.mutate_base_morale(kExplicitMoraleSentinel); }
|
||||
shardokBattalion.mutate_armament(static_cast<float>(battalion.armament()));
|
||||
shardokBattalion.mutate_training(static_cast<float>(battalion.training()));
|
||||
|
||||
|
||||
@@ -17,6 +17,8 @@
|
||||
|
||||
namespace shardok::fb {
|
||||
|
||||
constexpr float kExplicitMoraleSentinel = -1.0f;
|
||||
|
||||
using flatbuffers::FlatBufferBuilder;
|
||||
using flatbuffers::Offset;
|
||||
using net::eagle0::shardok::storage::fb::AlliedPlayer;
|
||||
@@ -200,8 +202,11 @@ auto SetupInitialGameState(
|
||||
RequiredMonthlyFood(modifiedUnit, settings) *
|
||||
foodPercentByPid[modifiedUnit.player_id()]);
|
||||
auto baseMorale = BaseMorale(modifiedUnit);
|
||||
auto startingMorale = modifiedUnit.battalion().base_morale() == kExplicitMoraleSentinel
|
||||
? modifiedUnit.battalion().morale()
|
||||
: baseMorale;
|
||||
modifiedUnit.mutable_battalion().mutate_base_morale(baseMorale);
|
||||
modifiedUnit.mutable_battalion().mutate_morale(baseMorale);
|
||||
modifiedUnit.mutable_battalion().mutate_morale(startingMorale);
|
||||
|
||||
if (modifiedUnit.status() !=
|
||||
net::eagle0::shardok::storage::fb::UnitStatus_PENDING_REINFORCEMENT) {
|
||||
|
||||
Reference in New Issue
Block a user