GithubHelp home page GithubHelp logo

mysteriousmilk / ns2_combatplusplus Goto Github PK

View Code? Open in Web Editor NEW
6.0 6.0 5.0 2.31 MB

Recreation of Natural Selection Combat mode with with some tweaks and enhancements.

License: MIT License

Lua 100.00%

ns2_combatplusplus's People

Contributors

keatsandyeats avatar l-as avatar mysteriousmilk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

ns2_combatplusplus's Issues

Socket All PowerPoints on Game Start

Since the Marines do not have a commander, there is no one to socket the PowerPoints. Start the game by socketing all the PowerPoint nodes.

Alternative Approach:
Allow player to interact with 'unsocketed' PowerPoints by pressing the USE key to socket them.

Marine's should not be able to eject from exo suit

Once a marine buy's an exo, they should be locked in to that 'class'. This will prevent players from buying other players an exo.

This can be tested by enabling cheats and then using the command 'cppgiverank 10'

Player not awarded kill xp for sentry kills

If a player places a sentry and that sentry kills someone, the player does not currently receive xp for the kill.

In CPPPointGiverMixin:OnPreKill check to see if the attacker is a sentry, look up its owner, and award combat xp to the owner.

This issue has a dependency on Issue #17 since it relies on looking up the structure's owner.

Remove Marine Infantry Portals

Remove Marine Infantry Portals and replace with a new spawn queue entity that has no physical model. Marines should still spawn with the same holo-marine model effect, just no physical model for the other team to 'destroy'.

Remove Commander from Combat++ Game Mode

Remove the Commander from the game. This includes the following:

  • Prevent player from using the command structure (it should stills spawn).
  • Remove commander check from game start conditions.
  • Remove UI reference to commander.

Modify Spawn Structures

The starting structures for Marines and Aliens should be modified as follows:

  • Marine Initial Structures : Command Station, Armory
  • Marine Warmup Structures : Command Station, Armory, Observatory
  • Alien Initial Structures : Hive
  • Alien Warmup Structures : Hive, Crag, Shade

Implement Combat++ Progression System

  • Create new mixin to track xp, rank and skill points
  • Award XP for Kills
  • Award XP for Assists
  • Award XP for doing Damage
  • Award XP for Building
  • Award XP for Welding (Marines)
  • Award XP for Healing (Aliens)
  • Award Skill Point on Level Up
  • Award Skill Point for 'Rampage' criteria
  • Award Skill Point for 'Got Your Back' criteria
  • Award Skill Point for 'Damage Dealer' criteria
  • Update Marine HUD to show Progression and Skill Points
  • Update Alien HUD to show Progression and Skill Points
  • Visual Indicators for XP Earned
  • Add XP Scaling based on distance from enemy tech point

Create Alien Buy Menu

Create the GUI Script for the Alien Buy Menu (Evolution Chamber).

  • Buy menu allows the player to select a lifeform.
  • Buy menu allows the player to select an upgrade per hive category for a lifeform.
  • Buy menu allows the player to select ability upgrades per lifeform.
  • Buy menu allows the player to select special abilities (enzyme, hallucination, ink)
  • Buy menu allows upgrades to be queued before evolving.
  • Buy menu shows a tooltip with item descriptions and costs when the player hovers the mouse over upgrades and lifeforms.
  • Buy menu shows a readout of the player's current evolution.

Sentries are too overpowering

Even with sentries being hard capped at the moment, they still feel overpowering. The marines can place several of them in group, and without a sentry battery to take out, it pretty much means suicide for a skulk to take them out.

Recommend:

  • Add minimum build distance between sentries

Improve respawn code

Improve the respawn code so that it is more fast paced. Use the combat mod as an example.

  • Wave spawns for Marines and Aliens
  • Spawn protection.

Evaluate Compatibility With Shine and NS2+

Its important that Combat++ be compatible with these quality-of-life mods for NS2. Need to evaluate if the mod in its current state is compatible, if not, see if changes can be made to make it compatible.

If compatibility cannot be supported natively, we need to consider other options such as creating a fork of NS2+ and Shine specifically for Combat++.

Don't lose upgrades on death

A big part of combat should be that you learn to play the lifeforms IMO. For that reason, no upgrade which has been bought with skill points you have gained by levelling up should be lost on death. You should instead respawn with the old upgrades.

You can do other things to encourage not dying, such as:

  • Prolonged respawn times depending on the strength of your lifeform
  • Bonuses gained by gaining bonus à la skulks with shotguns
  • Losing when dying, but without being able to go a level down, à la Path of Exile

Radial Menus

Currently, the Marine abilities that work on a cooldown (MedPack, AmmoPack, CatPack, Scan) are triggered with 'Q', 'Z', 'T' and 'H'. I'd like to still preserve the taunt ability and not override it.

I'd like to implement a radial menu that appears when the player presses and holds 'Q'. The abilities described above will be triggered now from the radial menu. It should still be a quick action. Rather than make the player be 'accurate' with clicking a button, we'll use the mouse position angle to the center of the radial menu to evaluate which action is being selected.

I could see the gorge abilities and structures being moved to a radial menu as well. There won't be enough real estate on the Alien Buy Menu to add the structures for the gorge to select.

Make Alien Structures Spread Infestation

Alien structures should spread infestation similar to a cyst or gorge tunnel.

For the time being, this can hopefully be tested by enabling cheats and using the command spawn <structure name> in the console. The gorge structure building code is not yet implemented at the time of writing this issue.

Building structures as marine is broken

There are several problems:
After you select a building to construct, you can never select a building again.
You will not be able to reselect the builder tool after unselecting it.
Each time you respawn, the builder tool will be reselected automatically.
You can build no matter how many skill points you have, i.e. you can reach reach negative skill points.
You do not regain your skill points when a structure is destroyed.

Modify Gorge Build Ability

Modify Gorge behavior to select structures to build from a popup radial menu. 'Q' will open the initial alien radial menu and the build menu will be a submenu from that. The ability will still exist, but move it to HUD slot 0.

Marine Buy Menu

Marines purchase weapons, upgrades and structures from a buy menu (accessed by pressing the 'Buy' key on the keyboard) instead of the armory, proto lab, etc.

  • Create Marine Buy Menu GUI
  • Enable Marine Buy menu via the 'Buy' key
  • Allow Weapons to be purchased from the Marine Buy Menu
  • Allow Upgrades to be purchased from the Marine Buy Menu
  • Allow Structures to be purchased from Marine Buy Menu
  • Allow Tech to be purchased from the Marine Buy Menu
  • Allow Consumables to be purchased from the Marine Buy Menu

Give XP to Nearby Teammates

In the original combat mod, when a player got a kill, their teammates in the area were also given a fractional amount of xp. Lets do the same here.

Some implementation details...

  • The distance that teammates must be to the player making the kill should be defined in CPPBalance.lua.
  • The scale factor for the fraction xp should be defined in CPPBalance.lua. It should be a value between 0.0 and 1.0. Probably 0.25 to start with and we'll balance it from there. It probably should not be too high because the player will already be getting assist xp if they damaged the attacker at all.
  • This should only apply to kills. Fractional xp is already given for welding, healing, and building.

This can probably be implemented in its entirety in CombatScoreMixin.lua. The function CombatScoreMixin:AddCombatKill would be a good starting point.

No XP awarded for destroying buildings

You only get XP for killing players, not for killing structures. Is this intended?

For example: If marines place a good configuration of sentries, they might rack up the kills while aliens try to break through. It seems unsatisfying that aliens would get no progression after they break through.

If you do intend to grant XP for structure kills, consider granting more XP the longer a structure was alive. (Maybe that could work for players too, now that I think of it.)

Placed structures do not have their owner set to the player that placed them

Right now, when a marine places a structure, that marine is not set as the owner of the structure. This will become problematic later on when trying to track who to give kill xp for when a sentry kills another player.

Its an easy fix. A the time of writing this, line 131 of CPPBuilder.lua needs to be uncommented and changed to:

struct:SetOwner(player)

UI issues

The level bar is faaaaaaaaaaaaaaaaar too obtrusive.
Move it somewhere better and more hidden, and make it smaller and also transparent.

The background of the buy menu should be a bit more transparent; it's too opaque right now.

The pop-ups for XP are also a bit too obtrusive, if they were more like the damage pop-ups, it would be better. Perhaps you could even annotate damages done with the XP you gained by doing it.

Structure Sub Menus

In order to make some of the structures useful and retain their abilities, the abilites normally invoked by the commander need to be available to the player. The idea is to add sub-menus to these structures. The player will walk up to the structure and press the 'Use' key. That will open a sub-menu GUI in the line-of-sight between the player and the structure (see attached).

Planned Menus:

Armory

-[ ] Upgrade to Advanced Armory

ArmoryUpgrade.png

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.