Morale

how Morale works; support/discussion/questions

Moderator: thunderchero

Post Reply
User avatar
Gowron
Code Master
Code Master
Posts: 304
Joined: Sat Apr 26, 2008 2:00 am
Location: 50° N, 11° E

Morale

Post by Gowron » Thu May 01, 2008 4:44 pm

Here's how Morale works for your systems:

First of all, every system has a permanent Morale Modifier (MM). This is the sum of all building morale modifiers that apply to this system.
Note that buildings that have an output type of "Morale" (Hex value 14; e.g. Holo Cinema) or "Morale empire-wide" (Hex value 28; e.g. Great Hall) need to be powered in order to produce that output.
In contrast, Morals bonuses/penalties (not outputs) that are connected to buildings (e.g. Mining Prison, Utopia Planitia) will still be constantly applied even if the buildings would need energy and are switched off.

At the beginning of each turn, first the non-permanent Morale changes are applied (e.g. you declare war, you make peace, you colonize a system, you win a battle). After that, the MM will be applied, but the result depends on the system's Moral level.

On all difficulty levels except "Impossible", there are 6 different Morale levels for a (self-colonized or starting) system:

Code: Select all

LV0:   1 -  99 Morale Points
LV1: 100 - 119 MPs
LV2: 120 - 138 MPs
LV3: 139 - 157 MPs
LV4: 158 - 176 MPs
LV5: 177 - 195 MPs

If your system is at a certain LV, then you need at least the according MM to maintain your current Moral value. If your MM is higher/lower, then you gain/lose Morale points equal to the difference. If your system's LV would change by this, the higher LV counts (exception: you can get from 99 MPs to 100 MPs with a MM of +1).

Example: Your system currently has 117 MPs. Nothing happened during this turn. Now if your MM is 0, your Morale will drop by 1 point. If the MM is 1, it (the Morale) will remain the same. If the MM is 2, it will increase by 1. If the MM is 4, it will only increase by 2, because the "normal" increase of 3 points would bring you into the higher LV, where your MM has a lower effect.

This also means that if your system has 100 MPs and a MM of +1 (for example, the Great Hall and nothing else), it will stay at 100.

Such a system has a base value of 100 MPs. The value is capped at 195. (however, I once had 200 MPs on Romulus, it was either a bug or a special event, the latter would mean that special events can bypass the cap. Btw I couldn't maintain the value of 200 back then, it dropped back to 195)

Although the highest LV number is 5, a MM of, say, +8 will still have its effect, bringing you to 195 MPs fast, where the value will remain.


On "Impossible", your starting systems will have a base value of 80 and the following levels:

Code: Select all

LV0:   1 -  79 Morale Points
LV1:  80 -  99 MPs
LV2: 100 - 118 MPs
LV3: 119 - 137 MPs
LV4: 138 - 156 MPs
LV5: 157 - 175 MPs
LV6: 176 - 194 MPs



The cap is 194 here.
Your other systems will still have the same LVs as on the lower difficulties, since they start with 100 MPs.


Now I tested a few minor race systems, playing as Cardassians and acquiring them as members. The resulting base values (they did not depend on the difficulty level or the Minor Race's attitude towards me):

Code: Select all

100 for the Ktarians
100 for the Mintakans
100 for the Nausicaans
 80 for the Tamarians
 85 for the Trill
100 for the Ullians
100 for the Zakdorn



Conclusions:

(1) The values are always 20 points higher than on the table. Perhaps that's because they're happy members.

User avatar
Gowron
Code Master
Code Master
Posts: 304
Joined: Sat Apr 26, 2008 2:00 am
Location: 50° N, 11° E

Controlling Morale

Post by Gowron » Thu May 01, 2008 4:48 pm

The value that controls morale levels (and caps) is found in trek.exe
starting position: 0x1767DC
type: floating-point value
size: 8 bytes (i.e. double precision)
default value: 0.05

I'll call it MCV (morale control value).

The MCV has different effects depending on its value. I'll divide it into 3 cases.




A) MCV is larger than 0.0 AND smaller than 1.0

This is the "standard case".
In this case, the size of a morale level is given by
[LV size] = ( 1 / MCV ) - 1
If [LV size] is not an integer, then the border values of the morale levels will be cut at the decimal point.

The maximum morale level for a system with a base morale of 100 is given by
[max. LV] = 100 * MCV

Thus, the maximum morale for a system with a base morale of 100 is
[max. morale] = 100 + [LV size] * [max. LV] =
= 200 - 100 * MCV


If the base morale is less than 100, then the maximum morale level is the highest level whose upper end is smaller than ( 200 - 100 * MCV) .
So in this case the maximum morale will not be as high as for a system with a base morale of 100.

Example:
MCV = 0.1
[base morale] = 80
[LV size] = ( 1 / MCV ) - 1 = ( 1 / 0.1 ) - 1 = 9

The morale cap is
200 - 100 * MCV = 190

Thus, the max. morale LV is 12, with the upper end at 188.
So the system can have a max. morale of 188.


If the base morale is more than 100, then the maximum morale level is the lowest level whose upper end is equal to or larger than ( 200 - 100 * MCV) .
If this would produce a maximum morale of more than 200, then the upper end of the maximum morale level is set to
200 - 100 * MCV .
(so in this case the maximum morale level doesn't have the full [LV size] )




B) MCV is 0 or negative

In this case, there are no morale levels. The maximum morale is always 200, and the system will always be treated as if its morale level was 0.
Thus, you can theoretically bring your entire empire to 200 morale with nothing more than just the Great Hall or something like that.

If you want this effect, then I strongly recommend setting the value to 0 or a negative value that is not too ridiculous (just as a precaution).




C) MCV is equal to or larger than 1.0

In this case, the moral cannot exceed the base value. If the system's morale is at the base value and the system gets a positive morale influence, then its morals will drop by

[drop] = ( MCV - 1 ) * [value of positive morale influence]

(limited by the fact that the morale must stay above 0, of course)

If the system's morale is below its base value, then it will behave normally (morale level 0) unless a morale effect (event or building) would increase its morale above the base value. The morale will only increase up to the base value, and the "surplus morale" will cause a drop, i.e. the system's morale will "bounce back", and the larger the MCV, the "harder" it will bounce.

User avatar
Spocks-cuddly-tribble
Code Master
Code Master
Posts: 721
Joined: Sun Apr 27, 2008 2:00 am

Post by Spocks-cuddly-tribble » Thu Oct 02, 2008 3:40 pm

Gowron wrote:If your system's LV would change by this, the higher LV counts
Tests (native, not impossible, no events):

By 119 MPs and MM 1 or 2 -> 119
By 120 MPs and MM 0 or 1 -> 119

It follows from the above:

If MPs = upper LV limit then MM-LV = 0 or 1 gives the same result.
If MPs = lower LV limit then MM-LV =-1 or-2 gives the same result.

:arrow: If your system's LV would change by this (also by lowering), the NEW LV counts (exception: the LAST "count step" reduces the LV).

Gowron wrote:

Code: Select all

LV0:   1 -  99 Morale Points
LV1: 100 - 119 MPs

Code: Select all

LV0:   1 -  79 Morale Points
LV1:  80 -  99 MPs
That looks like a logic error. The game behavior is (seemingly):

Code: Select all

LV0:   1 - 100 Morale Points
LV1: 101 - 119 MPs

Code: Select all

LV0:   1 -  80 Morale Points
LV1:  81 -  99 MPs
Standard experience (native, not impossible, no events):

By 100 MPs and MM 0 or 1 -> 100
By 101 MPs and MM-1 or 0 -> 100

:arrow: Is it possible that LV0 = 1-100MPs & LV1 = 101-119MPs :?:


That would also explain this:
Gowron wrote:(exception: you can get from 99 MPs to 100 MPs with a MM of +1).
And it fits with this:
Gowron wrote:default value: 0.05

A) MCV is larger than 0.0 AND smaller than 1.0

This is the "standard case".
In this case, the size of a morale level is given by
[LV size] = ( 1 / MCV ) - 1

Base Morale on "Impossible"
On the verge of a nervous breakdown? Try the relaxing tribble sounds.

User avatar
Spocks-cuddly-tribble
Code Master
Code Master
Posts: 721
Joined: Sun Apr 27, 2008 2:00 am

Disabled Buildings - Extra Morale Fix

Post by Spocks-cuddly-tribble » Fri Dec 02, 2011 7:41 am

Gowron wrote:Note that buildings that have an output type of "Morale" (Hex value 14; e.g. Holo Cinema) or "Morale empire-wide" (Hex value 28; e.g. Great Hall) need to be powered in order to produce that output.
In contrast, Morals bonuses/penalties (not outputs) that are connected to buildings (e.g. Mining Prison, Utopia Planitia) will still be constantly applied even if the buildings would need energy and are switched off.
A simple bug caused by a wrong jump destination.


:arrow: Disabled Buildings - Extra Morale Fix

Code: Select all

trek.exe at 0x3E5F6 change 88 to -> 9F

0043F1F4    ^0F85 9FFEFFFF  JNZ 0043F099
On the verge of a nervous breakdown? Try the relaxing tribble sounds.

User avatar
xDx
Commander
Commander
Posts: 275
Joined: Sat May 10, 2008 2:00 am
Location: East Coast, USA

Re: Morale

Post by xDx » Fri Dec 02, 2011 8:43 am

SCT this was one bug that annoyed even the most stalwart Pakleds that liked things easy to make them go ;) Big thumbs up from me on this one. Another step in the right direction making this game closer to what it was meant to be. Many thanks :D
"The only thing we have to fear is fear itself." -- FDR

User avatar
EnPhreg
Lieutenant-Commander
Lieutenant-Commander
Posts: 130
Joined: Thu Jul 10, 2008 2:00 am

Re: Morale

Post by EnPhreg » Mon Oct 10, 2016 12:36 pm

anybody an idea where to find the moral level threshold values in the trek.exe??
for example: if i want to change the threshold for the moral level loyal from 160 moral points to 150 moral points.

User avatar
thunderchero
Site Administrator aka Fleet Admiral
Site  Administrator aka Fleet Admiral
Posts: 6039
Joined: Fri Apr 25, 2008 2:00 am
Location: On a three month training mission, in command of the USS Valiant.
Contact:

Re: Morale

Post by thunderchero » Tue Oct 11, 2016 6:08 pm

I was also slightly interested in this question since it was never been clarified that I could find. (I think I understand why)

example if you are wanting to change the display here;
morale.jpg
morale.jpg (46.17 KiB) Viewed 1870 times
this might be a single value to change, but would only effect displayed text.

each sub section would have it's own value to edit.

examples;
bonus level for increased industry would be 1 location or locations
bonus level for increased intel would be a different location or locations
and so on

morale effects so many different aspects of this game and it would be very difficult to find and edit all location even if they were all known and many location are unknown.

so you might want to play with the only control value listed above to see if you could get the effect you want. but a lot of testing would be required.
Gowron wrote:The value that controls morale levels (and caps) is found in trek.exe
starting position: 0x1767DC
type: floating-point value
size: 8 bytes (i.e. double precision)
default value: 0.05

I'll call it MCV (morale control value).

Post Reply

Return to “how Morale works”

Who is online

Users browsing this forum: No registered users