Mount & Blade II: Bannerlord

File information

Last updated

Original upload

Created by

BoiZoi

Uploaded by

Kahchow

Virus scan

Safe to use

About this mod

Adds new cooldown-based yelling perks, which increases nearby allies' morale, cause fleeing allies to return to battle, and can negatively impact nearby enemy morale! This ability scales with Leadership and Roguery, and usage of Inspire will level up both Leadership and Roguery! Configurable to your playstyle!

Requirements
Permissions and credits
Changelogs
NOTE: If there is an aspect or value you want disabled or modified, for example, the white sphere indicator (it's ugly i know), please check the CONFIG SETTINGS below.

RELEASE 0.3.5 - THE LEADERSHIP UPDATE - COMPATIBLE WITH BETA 1.3.0

Leadership/Roguery Skill and Perk integration is here! 0.3.0+ stuff is highlighted in BLUE.

UPDATE CHANGES
(0.3.5) Split release for e1.2.1 and beta 1.3.0
(0.3.5) Fixed issue with certain config values not actually applying
(0.3.5) Fixed crash issue regarding Custom Battles
(0.3.4) Rolled back unit buffs
(0.3.4) Made initial perk auto-enable when the player hits 5 Leadership.
(0.3.4) Made config changes update on save load, so now you don't need to completely close your game to make modifications.


Based off Xorberax's 'Press V to Yell', Yell To Inspire is a mod that allows the player to take more of a leadership role during battle with NEW LEADERSHIP PERKS that allow them to perform a special yell (default key V, can be rebound) that can make enemies run if they're close to fleeing, increase allied unit morale, and even convince fleeing allied units to return back to the fight!


INSTALLATION
Unzip the file and place the YellToInspireBoiZoi folder into the modules folder located in (..\steamapps\common\Mount & Blade II Bannerlord\Modules)
If you are experiencing crashes, ensure that you unblock the dll files in (..\YellToInspireBoiZoi\bin\Win64_Shipping_Client)

CURRENT FEATURES
2 NEW PERKS IN THE LEADERSHIP TREE!

INSPIRE - REQUIRES 5 LEADERSHIP
  • A contextual yell ability that has a base radius of 10 meters, and a base cooldown of 10 seconds. 
  • Friendly units affected by the yell have their morale slightly increased.
  • The radius, cooldown, and amount of morale gained all scale with Leadership
  • Enemy units that are caught in the yell have a chance of fleeing if their morale is low enough (however, they will not otherwise have their morale reduced so that you can't just yell your way to victory)
  • The % chance of enemies fleeing scales with your Roguery
  • The description of Inspire in the Character Menu shows all the calculated stats for Inspire
  • The player will gain Leadership EXP per use of Inspire for each ally affected.
  • The player will gain Roguery EXP per use of Inspire for each enemy affected.
  • All units caught in the yell will verbally respond either positively, as allies, or with fear, as enemies. Occurs with a short random delay for MAXIMUM IMMERSION! 
  • The player and friendly units that are cheering play cheering animations when appropriate. If an enemy is too close, the unit will cancel out of the cheer animation, but the sound will continue.
  • The radius of the yell is visualized via a debug sphere that emanates from your character upon usage.
  • A unique message is displayed when the ability is used, detailing how many units were affected, and a different message is displayed if attempted while on cooldown.
INSPIRE RESOLVE - REQUIRES 35 LEADERSHIP
  • Friendly fleeing units affected by Inspire regain their composure and return to the fight!

  • ALL perks are considered unlocked while in Custom Battles.
  • A config.json file for players to change values. More values have been added!
  • A language.json file that can be edited to display custom text instead of the original messages.

CONFIG SETTINGS
This mod comes with a config.json file that can be edited to modify values within the mod to cater them to your playstyle/immersion preferences. Modify with caution: Setting values like boost duration higher than cooldown may have unintended effects. Issues caused by setting values to wacky numbers may not be considered actual issues.

  • abilityRadius - (default value 10) determines the BASE RADIUS of your yell ability in meters, also the value for Custom Battles
  • abilityCooldown - (default value 10) determines the BASE LENGTH of the cooldown period in seconds between ability uses, also the value for Custom Battles
  • alliedMoraleGain - (default value 0) determines the BASE AMOUNT of how much morale each friendly unit gains per yell, also the value for Custom Battles
  • enemyFleeMoraleThreshold - (default value 15) determines how low morale needs to be for an enemy unit to flee
  • minResponseDelay - (default 0.7) the minimum amount of random time in seconds before a unit responds to your yell
  • maxResponseDelay - (default 2.2) the maximum amount of random time in seconds before a unit responds to your yell
  • enemyChanceToFlee - (default 50) the % chance an enemy will flee if affected by a yell and their morale is low enough
  • baseLeadershipExpPerAlly - (default 1) the base amount (which is multiplied by attribute and focus bonus) of Leadership exp gained per ally affected by Inspire
  • baseRogueryExpPerEnemy - (default 1) the base amount (which is multiplied by attribute and focus bonus) of Roguery exp gained per enemy affected by Inspire

  • radiusIncreasePerLevel - (default 0.1) determines how much extra ability radius in meters per level in Leadership
  • cooldownDecreasePerLevel - (default 0.015) determines how much less cooldown time in seconds per level in Leadership
  • moraleGainIncreasePerLevel - (default 0.05) determines how much extra morale gain per level in Leadership
  • chanceToFleeIncreasePerLevel - (default 0.0015) determines how much extra % chance to make enemies flee per level in Roguery
  • fleeingEnemiesReturn - (default false) determines if fleeing enemies return to battle, like a taunt of sorts; change to true if you want to enable this
  • showSphereIndicators - (default true) displays a visual aid showing the range of the ability on use; change to false to disable visual indicators
  • showDetailedMessage - (default true) displays message containing a rundown of the number of friendly and enemy units affected per ability use; change to false to disable detailed messages
  • enableRandomCheerDelay - (default true) determines if units individually respond to yells with a small random amount of delay; set to false if you want all responses to be totally unanimous.
  • enableCheerAnimation - (default true) determines if the player and allies units play cheering animations; change to false if you don't want cheering animations
  • enableEnemyReaction - (default true) determines whether enemies verbally respond in fear to your yells

LANGUAGE SETTINGS
This mod also comes with a language.json file that can be edited to change text within the mod. Handy for translation purposes, if you are so inclined.

  • useCustomFlavorText - (default false) enable to use custom flavor text (stuff like "You let out a deafening warcry!"); must be set true to use your custom text
  • customFlavorText - change/add to this to customize the flavor text
  • useCustomDetailedText - (default false) enable to use custom detail text (stuff like "Allied unit(s) that were inspired: "); must be set true to use your custom text
  • xCustomDetailedText (multiple variables, x is replaced by the corresponding variable) - change these variables to customize the detail text

COMPATIBILITY 
Yell to Inspire should be compatible with other yelling mods, such as jedijosh920's Cheer Mod, provided you change the hotkeys.

UPCOMING FEATURES
Hopefully a more visually appealing way to show the range of the yell.
More robust translation tools
Maybe NPC Lords can use it too

KNOWN BUGS
Exiting a scene/battle while a debug sphere is active may cause the sphere to remain when the same environment is re-entered. This is purely visual and is fixed upon using the ability again.

Apologies to anyone who opens up my code to take a look around. I know it's spaghetti as hell; I'm not a programmer by trade, but I am learning! Advice is welcome!