Code Monkey home page Code Monkey logo

longwar2abilitiesforwotc's People

Contributors

antigluon avatar danice123 avatar favid avatar karnich avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

longwar2abilitiesforwotc's Issues

Remove project self reference

XComEngine.ini lists LongWar2AbilitiesForWotC as a dependency, which can cause compile issues. This reference needs to be removed. As a result, AreaSuppression restrictions need to be added to weapon abilities in the Secondary Pack in a different way.

Implement LW2WotC_Solace

Implement the LW2 version of the Solace ability. This includes creating the ability itself, integrating it into the PsiOperative class, English localization, and dynamic localization for configurable values (if applicable).

The ability's name must be 'LW2WotC_Solace'.
The code for creating the AbilityTemplate must be in the X2Ability_LW2WotC_ActivatedAbilitySet class.

Note that this issue does not include implementing the animation and FX - those should wait until the next Highlander is released.

Close Encounters red ring does not appear

Close Encounters red ring does not appear. The particle effect for it is in the included in LW_Perk_CloseEncounters.upk file. Tried to just copy the implementation from LW2 but it doesn't seem to work. I suspect there is something new that has to be done for it to work with WotC, but I currently do not know what that is.

Suppression preventing ability usage should be configurable

Because the default behavior in War of the Chosen is that being suppressed does not prevent you from using special abilities, whether or not abilities added by this mod should be unable to used while suppressed should be configurable though an .ini file.

Additionally, the list of Suppression abilities should not be hard coded; they should be defined in an .ini file.

Stop using XComGameState_Effect components

Abilities using an XComGameState_Effect component can cause hard to reproduce crashes due to them not unregistering from events properly at the end of a tactical mission. Below are steps to reproduce this issue with LW2WotC_LightningReflexes:

  1. Give a soldier Lightning Reflexes
  2. Take that soldier on a mission and complete it
  3. Start a new mission.

The game will crash when starting a new mission, presumably because there are still listeners tied to gamestates that shouldn't be. Or something, I don't totally understand it yet, but creating a new event that is registered for 'TacticalGameEnd' with a callback function that unregisters all events fixes the crash.

Long story short, we need to stop using XComGameState effects and use X2EventListerners instead. If that is not possible for some abilities for some reason, then at least make sure that events get unregistered at the end of a tactical mission.

This will require re-implementing:

  • Hyper-Reactive Pupils
  • Lightning Reflexes
  • Locked On
  • Rapid Reaction
  • Savior
  • Sentinel
  • Steady Weapon
  • Trojan
  • Failsafe
  • Bombardier

The following abilities should be fine, but should be heavily retested to make sure they don't cause similar issues:

  • Close Encounters
  • Emergency Life Support
  • Hit and Run

Port changes to Vanilla abilities

Most of these can be found by looking at LWTemplateMods.ModifyAbilitiesGeneral() in the LW2 source code. May need to use some discretion in deciding which changes to port, because some may not make sense in the context of WotC or may require changes to the implementation.

Remove Gauntlet package

The Gauntlet is now included in the LW2 Secondaries mod, which will become a dependency. Also rename abilities in the configs to match the naming scheme in LW2 Secondaries.

Implement LW2WotC_Bastion

Implement the Bastion ability. This includes creating the ability itself, integrating it into the PsiOperative class, English localization, and dynamic localization for configurable values (if applicable).

The ability's name must be 'LW2WotC_Bastion'.
The code for creating the AbilityTemplate must be in the X2Ability_LW2WotC_PassiveAbilitySet class.

Note that this issue does not include implementing the animation and FX - those should wait until the next Highlander is released.

Sniper abilities

Rapid Targeting
Phantom
HiDef Holo
Independent Tracking
Vital Point Targeting
Multitargeting
Alpha Mike Foxtrot

Implemented where necessary, or just added to tree

Complete implementation of LW2WotC_MindMerge and LW2WotC_SoulMerge

Complete the implementations of the Mind Merge and Soul Merge abilities. Both are currently functional, but the following must still be done:

  • Dynamic localization for configurable values
  • Function comment and cleanup in X2Ability_LW2WotC_ActivatedAbilitySet
  • AssociatedPassives value for the Mind Merge X2AbilityTemplate must be corrected (is currently 'SoulMerge', should be 'LW2WotC_SoulMerge')

Note that this issue does not include implementing the animation and FX - those should wait until the next Highlander is released.

Create README.md

Create readme similar to the alien and weapons pack readme (see copy paste).

Fix building in Modbuddy

The project should build and run in the WotC Modbuddy. This most likely means fixing the solution file by adding all of the files and removing any that no longer exist.

Add non-English localization files

Currently, only the English (.INT) files are included. The localization files for the rest of the supported languages need to be ported over.

The localization files contains text for the following:

  • Names and descriptions of the abilities.
  • Names, nicknames, and various other details of the soldier classes.
  • Descriptions for new PCS items.
  • Modified help tips, research, equipment descriptions to remove references to specific classes having exclusive access to certain weapons.

Some notes on what this issue entails:

  • In the Long War 2 codebase, some abilities are in the LW_PerkPack package, while others are in the LW_Overhaul package.
  • The files from Long War 2 cannot be copied over directly. All ability names have changed (some more than others).
  • If possible, include dynamic localization for configurable values.

Implement LW2 PCS Items

Implement PCS Items from LW2. This includes:

  • Creating the PCS Item Templates
  • Adding the appropriate abilities to PCS Items
  • Adding the appropriate icons to PCS Items
  • Adding the PCS Items to loot tables

Verify Steady Weapon functionality

The functionality of Steady Weapon does not match its description. Its aim bonus also does not appear to be shown while using Extended Information. Because of that, need to do some extra testing to make sure that the bonus is actually applying.

Assault abilities

Electroshock
Arc Pulser
Stun Gunner
Aggression
Rapid Fire
Close Combat Specialist
Chain Lightning

Limit overwatch shots to once per target

Implement LW2 functionality where overwatch shots can only target each enemy once per turn. This is mostly to support Sentinel and Rapid Reaction. By default, should only affect those abilities (so not Skirmisher's Waylay), but should be configurable.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.