Grobobobo / WarOfTheChosenRebalanced

0 stars 1 forks source link

Grobo's Tactical Overhaul (GTO)

This is a massive MegaOverhaul of XCOM 2 War of the Chosen, meant to be a pretty much complete package with the following design goals:

  1. Significantly lower the reliance on alpha striking (more 3-4 + turn engagements than 1-2 turn ones)
  2. Eliminate the need to manage pod activations
  3. A wide variety of distinct tools for the player, and a wide range of distinct challenges to deal with, such as:
    • Much more distinct enemy design
    • Significantly more nuanced perk trees and equipment
  4. More even pacing and difficulty of the campaign
  5. Repurpose stealth from an ambush and combat avoidance tool to a scouting and defensive one.

Current State

Currently the Mod is in beta, in a playable but feature incomplete, unbalanced and unpolished state.

Particularly, the not-implemented features (In this case: Not rebalanced/redesigned yet) so far include:

Also, Gotcha again overwatch indicators are unreliable for now. I plan on creating a version that matches the new OW behavior.

Features

Here's a headline list of features of this mod

Podless

Revamped concealment

Grenade Scatter

Cover

Ammo management

Attachments

Attachments have been rebalanced to:

Overwatch and suppression

Overwatch has been overhauled:

Similar to LWR overwatch rules, except it doesn't have covering fire by default. This is an important mechanic change because:

These changes make suppression far more effective at locking down units, and far less effective at killing them.

Injury and Fatigue

Barracks

Assault - Specialist

Sharpshooter - Shinobi

Gunner - Technical

XTP1: All Soldiers Autopromote to Lance Corporals (unlocked with first lieutenant)

XTP2: All Soldiers Autopromote to Corporals (unlocked with Major)

XTP3: All Soldiers Autopromote to Sergeants (unlocked with Colonel)

Vengeance: Unlocked with Trooper autopsy

Wet Work: Unlocked with Sectoid autopsy

Integrated warfare: Unlocked with Priest Autopsy

Lightning Strike: Unlocked with Spectre Autopsy

Stay with me: Unlocked with Chryssalid Autopsy

Vulture: Unlocked with Alien Encryption research

Soldiers

Classes
Gunner Class
Technical Class
Shinobi Class
Assault Class
Sharpshooter Class
Specialist Class

You can find new class trees here.

Enemies

More detailed enemy changes can be found here, I'll just present some more important changes here

The Leader System

Troopers

Officers

Sectoids

Drones

Stun lancers

Priests

Vipers

Sidewinders

Mutons

Mecs

Spectres

Andromedons

Sectopods

Gatekeeper

Archons

PRIMARY WEAPONS

Base Damage is 4/5/6/7/8 depending on weapon tier (from 4/5.5/7/8.5/10)

AR

SMG

Bullpup

Strike Rifle (Vektor)

Shotgun

Sniper Rifle

Cannon

Immolator (technical only)

Wide Angle Nozzle - +2 cone width

High Velocity Nozzle - +1 cone length

Expanded Fuel Tank - +2 ammo capacity

Heat Resistant Tank - -2 cooldown on flamethrower

Fuel Line - +1 canister charge

Light Frame - reduced infiltration time

Outrider Frame - +1 weapon mobility, at the cost of -35% weapon damage

Blast canister:

Smoke canister

Gas Canister:

Acid Canister:

Bluescreen Canister

Medical canister

GRENADE LAUNCHER

Secondary weapons

Arc thrower

Holotargeter

Knife:

Rocket launcher (technical)

Rocket types:

Standard:

Shredder

lockon

flechette

Plasma Ejector:

Sidearms

Pistol

Autopistol

Sawed off

Grenades

Frag Grenade

Magnetic Grenade

Plasma Grenade

Weapon Ranges

Here are new Weapon Ranges:

LMG_ALL_RANGE[0] = -15
LMG_ALL_RANGE[1] = -15
LMG_ALL_RANGE[2] = -10
LMG_ALL_RANGE[3] = -5
LMG_ALL_RANGE[4] = 0
LMG_ALL_RANGE[5] = 4
LMG_ALL_RANGE[6] = 6
LMG_ALL_RANGE[7] = 8
LMG_ALL_RANGE[8] = 9
LMG_ALL_RANGE[9] = 10
LMG_ALL_RANGE[10] = 9
LMG_ALL_RANGE[11] = 8
LMG_ALL_RANGE[12] = 7
LMG_ALL_RANGE[13] = 6
LMG_ALL_RANGE[14] = 5
LMG_ALL_RANGE[15] = 4
LMG_ALL_RANGE[16] = 3
LMG_ALL_RANGE[17] = 2
LMG_ALL_RANGE[18] = 1
LMG_ALL_RANGE[19] = 0
LMG_ALL_RANGE[20] = -4
LMG_ALL_RANGE[21] = -8
LMG_ALL_RANGE[22] = -12
LMG_ALL_RANGE[23] = -16
LMG_ALL_RANGE[24] = -20
LMG_ALL_RANGE[25] = -24
LMG_ALL_RANGE[26] = -100

MID_LONG_ALL_RANGE[0] = -30
MID_LONG_ALL_RANGE[1] = -30
MID_LONG_ALL_RANGE[2] = -27
MID_LONG_ALL_RANGE[3] = -24
MID_LONG_ALL_RANGE[4] = -21
MID_LONG_ALL_RANGE[5] = -18
MID_LONG_ALL_RANGE[6] = -15
MID_LONG_ALL_RANGE[7] = -12
MID_LONG_ALL_RANGE[8] = -9
MID_LONG_ALL_RANGE[9] = -6
MID_LONG_ALL_RANGE[10] = -3
MID_LONG_ALL_RANGE[11] = 0
MID_LONG_ALL_RANGE[12] = 0
MID_LONG_ALL_RANGE[13] = 0
MID_LONG_ALL_RANGE[14] = 0
MID_LONG_ALL_RANGE[15] = 0
MID_LONG_ALL_RANGE[16] = 0
MID_LONG_ALL_RANGE[17] = 0
MID_LONG_ALL_RANGE[18] = 0
MID_LONG_ALL_RANGE[19] = 0
MID_LONG_ALL_RANGE[20] = -3
MID_LONG_ALL_RANGE[21] = -6
MID_LONG_ALL_RANGE[22] = -9
MID_LONG_ALL_RANGE[23] = -12
MID_LONG_ALL_RANGE[24] = -15
MID_LONG_ALL_RANGE[25] = -18
MID_LONG_ALL_RANGE[26] = -21
MID_LONG_ALL_RANGE[27] = -24
MID_LONG_ALL_RANGE[28] = -27
MID_LONG_ALL_RANGE[29] = -30
MID_LONG_ALL_RANGE[30] = -33
MID_LONG_ALL_RANGE[31] = -36
MID_LONG_ALL_RANGE[32] = -39
MID_LONG_ALL_RANGE[33] = -42
MID_LONG_ALL_RANGE[34] = -45
MID_LONG_ALL_RANGE[35] = -48
MID_LONG_ALL_RANGE[36] = -51
MID_LONG_ALL_RANGE[37] = -54
MID_LONG_ALL_RANGE[38] = -57
MID_LONG_ALL_RANGE[39] = -60
MID_LONG_ALL_RANGE[40] = -80

MEDIUM_ALL_RANGE[0] = 30
MEDIUM_ALL_RANGE[1] = 30
MEDIUM_ALL_RANGE[2] = 27
MEDIUM_ALL_RANGE[3] = 24
MEDIUM_ALL_RANGE[4] = 21
MEDIUM_ALL_RANGE[5] = 18
MEDIUM_ALL_RANGE[6] = 15
MEDIUM_ALL_RANGE[7] = 12
MEDIUM_ALL_RANGE[8] = 11
MEDIUM_ALL_RANGE[9] = 10
MEDIUM_ALL_RANGE[10] = 9
MEDIUM_ALL_RANGE[11] = 8
MEDIUM_ALL_RANGE[12] = 7
MEDIUM_ALL_RANGE[13] = 6
MEDIUM_ALL_RANGE[14] = 5
MEDIUM_ALL_RANGE[15] = 4
MEDIUM_ALL_RANGE[16] = 3
MEDIUM_ALL_RANGE[17] = 2
MEDIUM_ALL_RANGE[18] = 1
MEDIUM_ALL_RANGE[19] = 0
MEDIUM_ALL_RANGE[20] = -5
MEDIUM_ALL_RANGE[21] = -10
MEDIUM_ALL_RANGE[22] = -15
MEDIUM_ALL_RANGE[23] = -20
MEDIUM_ALL_RANGE[24] = -25
MEDIUM_ALL_RANGE[25] = -100

SAWED_OFF_RANGE[0]=60
SAWED_OFF_RANGE[1]=60
SAWED_OFF_RANGE[2]=20
SAWED_OFF_RANGE[3]=0
SAWED_OFF_RANGE[4]=-30
SAWED_OFF_RANGE[5]=-60
SAWED_OFF_RANGE[6]=-90
SAWED_OFF_RANGE[7]=-100

MIDSHORT_ALL_RANGE[0] = 45
MIDSHORT_ALL_RANGE[1] = 45
MIDSHORT_ALL_RANGE[2] = 35
MIDSHORT_ALL_RANGE[3] = 25
MIDSHORT_ALL_RANGE[4] = 15
MIDSHORT_ALL_RANGE[5] = 10
MIDSHORT_ALL_RANGE[6] = 7
MIDSHORT_ALL_RANGE[7] = 3
MIDSHORT_ALL_RANGE[8] = 0
MIDSHORT_ALL_RANGE[9] = 0
MIDSHORT_ALL_RANGE[10] = 0
MIDSHORT_ALL_RANGE[11] = 0
MIDSHORT_ALL_RANGE[12] = -3
MIDSHORT_ALL_RANGE[13] = -6
MIDSHORT_ALL_RANGE[14] = -9
MIDSHORT_ALL_RANGE[15] = -12
MIDSHORT_ALL_RANGE[16] = -16
MIDSHORT_ALL_RANGE[17] = -19
MIDSHORT_ALL_RANGE[18] = -22
MIDSHORT_ALL_RANGE[19] = -30
MIDSHORT_ALL_RANGE[20] = -45
MIDSHORT_ALL_RANGE[21] = -60
MIDSHORT_ALL_RANGE[22] = -75
MIDSHORT_ALL_RANGE[23] = -90
MIDSHORT_ALL_RANGE[24] = -100
MIDSHORT_ALL_RANGE[25] = -100

SHORT_ALL_RANGE[0] = 60
SHORT_ALL_RANGE[1] = 60
SHORT_ALL_RANGE[2] = 45
SHORT_ALL_RANGE[3] = 30
SHORT_ALL_RANGE[4] = 15
SHORT_ALL_RANGE[5] = 8
SHORT_ALL_RANGE[6] = 4
SHORT_ALL_RANGE[7] = 0
SHORT_ALL_RANGE[8] = 0
SHORT_ALL_RANGE[9] = -4
SHORT_ALL_RANGE[10] = -8
SHORT_ALL_RANGE[11] = -16
SHORT_ALL_RANGE[12] = -32
SHORT_ALL_RANGE[13] = -40
SHORT_ALL_RANGE[14] = -48
SHORT_ALL_RANGE[15] = -60
SHORT_ALL_RANGE[16] = -70
SHORT_ALL_RANGE[17] = -80
SHORT_ALL_RANGE[18] = -90
SHORT_ALL_RANGE[19] = -100
SHORT_ALL_RANGE[20] = -100
SHORT_ALL_RANGE[21] = -100
SHORT_ALL_RANGE[22] = -100
SHORT_ALL_RANGE[23] = -100
SHORT_ALL_RANGE[24] = -100
SHORT_ALL_RANGE[25] = -100

LONG_ALL_RANGE[0] = -40
LONG_ALL_RANGE[1] = -40
LONG_ALL_RANGE[2] = -36
LONG_ALL_RANGE[3] = -32
LONG_ALL_RANGE[4] = -28
LONG_ALL_RANGE[5] = -24
LONG_ALL_RANGE[6] = -20
LONG_ALL_RANGE[7] = -16
LONG_ALL_RANGE[8] = -12
LONG_ALL_RANGE[9] = -8
LONG_ALL_RANGE[10] = -4
LONG_ALL_RANGE[11] = 0
LONG_ALL_RANGE[12] = 0
LONG_ALL_RANGE[13] = 0
LONG_ALL_RANGE[14] = 0
LONG_ALL_RANGE[15] = 0
LONG_ALL_RANGE[16] = 0
LONG_ALL_RANGE[17] = 0
LONG_ALL_RANGE[18] = 0
LONG_ALL_RANGE[19] = 0
LONG_ALL_RANGE[20] = -2
LONG_ALL_RANGE[21] = -4
LONG_ALL_RANGE[22] = -6
LONG_ALL_RANGE[23] = -8
LONG_ALL_RANGE[24] = -10
LONG_ALL_RANGE[25] = -12
LONG_ALL_RANGE[26] = -14
LONG_ALL_RANGE[27] = -16
LONG_ALL_RANGE[28] = -18
LONG_ALL_RANGE[29] = -20
LONG_ALL_RANGE[30] = -22
LONG_ALL_RANGE[31] = -24
LONG_ALL_RANGE[32] = -26
LONG_ALL_RANGE[33] = -28
LONG_ALL_RANGE[34] = -30
LONG_ALL_RANGE[35] = -32
LONG_ALL_RANGE[36] = -34
LONG_ALL_RANGE[37] = -36
LONG_ALL_RANGE[38] = -38
LONG_ALL_RANGE[39] = -40
LONG_ALL_RANGE[40] = -42
LONG_ALL_RANGE[41] = -44

Armor

Kevlar

Light Kevlar
Kevlar:

Plated:

Spider suit
Predator armor
EXO

Powered

Wraith suit
Warden armor:
WAR Suit

DOT EFFECTS CHANGES

Officers

NEW OFFICER TREE

Golden Path

Acknowledgements and Credits

LWOTC Credits:

LWOTC-R specific Credits:

Ability Changelog

The actual list is too long, but here are the few important ones

New Abilities

Similarly, only the important ones

Threat assessment makes Aid protocol target go on overwatch

Shock therapy makes Blinding protocol have a 50% chance to stun the targets.

Chaining Jolt causes combat protocol to jump to up to 3 additional targets.

Installing and playing the mod

Installing the mod works exactly the same as normal lwotc, except you download it from here. You can find general instructions on LWOTC's wiki page.

You can grab a release from either the discord sercver, or release section in this repository (experimental ones get posted on discord, more stable ones here)

If you have some kind of trouble or Want to give feedback you can join LWOTC-R discord server, Or raise an issue in github

Contributing translations

If you would like to contribute to translations for LWOTC, then check out the wiki page that explains how it works.

Building and running the mod

If you want to contribute changes to code or assets, then you will need to build the mod so that you can test them. Before you can do that, you need to set some things up:

  1. Make sure you have the WOTC SDK full_content branch installed - see the xcom2mods wiki for details on how to do that (plus lots of other useful information)

  2. Fork this repository and then clone your fork locally, which you can do via Git for Windows (a command-line tool), GitHub Desktop, or some other git client tool

  3. Once you have cloned the repository, you may need to pull the code for the embedded highlander. If the X2WOTCCommunityHighlander directory is empty, then use the command line from the project's root directory (the one containing this README.md):

        > git submodule update --init

    or whatever is the equivalent with the git client tool you are using.

  4. Obtain the LWOTC-R media assets (video, graphics and sound) from this Dropbox link and unpack the resulting zip file into this project's WarOfTheChosenRebalanced directory. The link is not up to date with assets added in LWOTC-R, so you will also need to copy over the WarOfTheChosenRebalanced/Content directory from one of the released alpha builds.

  5. Set up the following environment variables:

    • XCOM2SDKPATH — typically <path to Steam>\steamapps\common\XCOM 2 War Of The Chosen SDK
    • XCOM2GAMEPATH — typically <path to Steam>\steamapps\common\XCOM 2\XCom2-WarOfTheChosen Don't put these paths in quotes.
  6. Open a new command prompt after setting those environment variables and run the following from the LWOTC project directory:

    > build-lwotc.bat -config default

    (You can specify -config debug to compile with debug info)

  7. Compilation may fail with errors that certain classes variables and functions in the Community Highlander are private/protected, rather than protected/public. Edit the corresponding file within the X2WOTCCommunityHighlander directory and change variables from private->protected and functions from protected->public as needed to resolve each error.

  8. You should also build this modified Community Highlander. Follow the most up to date instructions in that repository (CookCommunityHighlander.bat)

Once the highlander and LWOTC-R are built, you will be able to select them as local mods in Alternative Mod Launcher and run Long War of the Chosen Rebalanced.

Contributing

Contributions are welcome. If you just want to raise issues, please do so on GitHub, preferably including a save file if possible.

If you wish to contribute to development — and this project will rely heavily on such contributions — then please look through the issues and if you want tackle one, just leave a comment along the lines of "I'll take this one". If you find you can't complete the issue in a reasonable time, please add another comment that says you're relinquishing the issue.

All contributions are welcome, but bug fixes are extremely welcome!