Skip to content

New EVA voice after deploying a building - #1682

Open
FS-21 wants to merge 32 commits into
Phobos-developers:developfrom
FS-21:feature/StructuresCanChangeEvaVoice
Open

FS-21 wants to merge 32 commits into
Phobos-developers:developfrom
FS-21:feature/StructuresCanChangeEvaVoice

Conversation

@FS-21

@FS-21 FS-21 commented May 27, 2025 •

Copy link
Copy Markdown
Contributor
  • You can now replace the current EVA voice when a specific building is placed/deployed.
  • If any building is undeployed/sold/destroyed, the EVA voice will be evaluated again across all active player buildings defining NewEVAVoice.Tag.
  • NewEVAVoice.Tag specifies the EVA voice name (defined under [EVATypes] in evamd.ini via Ares, or vanilla voices Allied, Russian, Yuri).
  • In case of multiple buildings with different EVA voices, NewEVAVoice.Priority establishes a priority queue, where the building with the highest value is selected.
  • NewEVAVoice.RecheckOnDeath controls whether to re-evaluate the active EVA voice upon building destruction or sale.
  • NewEVAVoice.InitialMessage plays an EVA sound message to the player when a new EVA voice is activated.
  • NewEVAVoice.EndingMessage plays an EVA sound message / sound effect with the outgoing EVA voice when it is deactivated/replaced before transitioning to the new voice.
  • When no buildings with NewEVAVoice remain, the EVA voice automatically falls back hierarchically:
    1. [HouseType] -> EVA.Tag (Country-specific EVA voice)
    2. [Side] -> EVA.Tag (Side-specific EVA voice)
    3. Default vanilla voice according to side index (Allied, Russian, Yuri)

In rulesmd.ini:

[SOMESIDE]                        ; Side
EVA.Tag=                          ; EVA type name from [EVATypes] or Allied/Russian/Yuri

[SOMEBUILDING]                    ; BuildingType
NewEVAVoice.Tag=                  ; EVA type name from [EVATypes] or Allied/Russian/Yuri
NewEVAVoice.Priority=1            ; integer
NewEVAVoice.RecheckOnDeath=false  ; boolean
NewEVAVoice.InitialMessage=       ; EVA entry
NewEVAVoice.EndingMessage=        ; EVA entry

@FS-21
FS-21 marked this pull request as draft May 27, 2025 11:15
FS-21 added 2 commits May 28, 2025 08:40
- The player will hear only his own EVA voices from the tag NewEVAVoice.InitialMessage.
- The readed data of the [EVATypes] was deleted before it was used by the new code.
- Small fixes & tweaks.
@FS-21
FS-21 marked this pull request as ready for review May 28, 2025 07:04
@FS-21

FS-21 commented May 28, 2025

Copy link
Copy Markdown
Contributor Author
2025-05-28.09-02-10.mp4

@github-actions

github-actions Bot commented May 28, 2025 •

Copy link
Copy Markdown

Nightly build for this pull request:

This comment is automatic and is meant to allow guests to get latest nightly builds for this pull request without registering. It is updated on every successful build.

@Starkku Starkku left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The EVA voice change logic should be generalized and put in a separate function from buildings, probably in SideExt or something. Firestorm has a map trigger for this purpose and I suppose someone might want to reimplement that here as well.

Some smaller things to take note of as well.

Comment thread docs/User-Interface.md Outdated
Comment thread src/Ext/Rules/Body.cpp Outdated
@Starkku
Starkku force-pushed the develop branch 2 times, most recently from b429215 to 280b1c8 Compare June 29, 2025 19:13
@FS-21

FS-21 commented Jul 7, 2025

Copy link
Copy Markdown
Contributor Author

The EVA voice change logic should be generalized and put in a separate function from buildings, probably in SideExt or something. Firestorm has a map trigger for this purpose and I suppose someone might want to reimplement that here as well.

Some smaller things to take note of as well.

Since Ares already has Map trigger actions for changing these voices like in Firestorm I only focused in learning how to change it and apply this logic for buildings like in the video, not reimplementing again the EVA voices.

Let me see the SideExt you mentioned because I remember one of the first attempts was storing data in that place but things happened that made me move the code and I ended here.

FS-21 added 2 commits July 8, 2025 08:19
- Removed NewEvaVoice tag.
- NewEvaVoice.Index now is nullable int and the checks are against this value instead of the old NewEvaVoice.
@FS-21

FS-21 commented Jul 8, 2025

Copy link
Copy Markdown
Contributor Author

Applied feedback and updated documentation and initial message here.

The missing bit I have to do now is that suggestion of moving the code into a separated function from buildings to SideExt for future changes/additions, etc.

FS-21 added 2 commits July 8, 2025 08:38
Function UpdateMainEvaVoice(...) moved from Buildings to side class.
@FS-21

FS-21 commented Jul 8, 2025

Copy link
Copy Markdown
Contributor Author

Moved the UpdateMainEvaVoice(...) function to SideExt.

@Flactine

Flactine commented May 4, 2026

Copy link
Copy Markdown
Contributor

Limbo Delivery buildings can't change EVA

@FS-21

FS-21 commented Aug 31, 2026

Copy link
Copy Markdown
Contributor Author

Limbo Delivery buildings can't change EVA

Yes, I never tried that so I added support now.

I updated this code and added support when a building is captured by engineers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants