Giter Site home page Giter Site logo

cwolfs / missioncontrol Goto Github PK

View Code? Open in Web Editor NEW
19.0 19.0 13.0 44.35 MB

A HBS BattleTech mod that provides a framework for runtime modifications of the contracts and encounters.

License: GNU General Public License v3.0

C# 99.78% Shell 0.22%

missioncontrol's Introduction

๐Ÿ‘‹ Hey there ๐Ÿ‘‹

I'm Richard. I design and develop 'cool things'.

I've been developing for over 16 years so I've worked as a backend, frontend, fullstack and games developer. You'll often see me making new business ideas, open source tooling or game mods. I'm a problem solver.

๐ŸŒ Portfolio ๐ŸŒ

Check out my portfolio to see some pictures and write ups of some of the freelance contract work and projects I've done.

๐Ÿ‘‰ More About Me ๐Ÿ‘ˆ

๐Ÿ”ญ Iโ€™m currently working on various business ideas, open source tools and BattleTech game mods

๐Ÿ“ซ Find me: Email | Website | Youtube | Twitter | Mastodon | LinkedIn

โšก Interesting Things โšก

See my portfolio for many more interesting projects but here are some that are hosted on GitHub.

  • ConverseTek - Reverse engineered binary conversation files for BattleTech and created a nice-to-use tool for creating/editing them. The only way for modders to be able to create any conversation of this type.

  • Mission Control - A large BattleTech mod that expands on many aspects of the game. A core mod in the community. Used by all the major modpacks (RogueTech, BattleTech: Advanced, BEX and others).

  • Mission Control Designer - Built a mission editor for BattleTech as an in-game mod. This involved years of work to slowly piece together the mission format and inject extensive user interface into the game to allow for an editor flow with validation.

  • React-Native-Keychain Contributions - Contributed to React-Native-Keychain to add support for a new form of RSA padding (OAEP) & fix Android KeyStore unlock timeout issues related to biometrics

๐Ÿ’ป Languages ๐Ÿ’ป

I don't limit myself to specific languages or frameworks so I tend to pick up a lot as I go. Below are some of the languages and frameworks I've used for at least one sizable project within a recent timeframe.

Languages: Typescript, Javascript, C#, C++, Lua, C++

Frameworks: React, React Native, NextJS, Node, Laravel

Visit my portfolio and CV for a full breakdown. Enjoy looking through my projects! ๐Ÿ‘‹

missioncontrol's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

missioncontrol's Issues

Additional Lances: Spawn lances with battle damage

The base game spawns lances that are at 25, 50 or 75% armor, but the lances spawned by Mission Control are always at full health. Combined with the treatment of the spawned lances as primary objectives in battle missions, it makes those missions basically impossible.

So, is it possible to emulate the base game's mechanism of deploying enemy forces with limited armor?

Maps: Extend boundary to maximum size available

A lot of the maps are restricted to a tiny section of the available map size. The maximum playable map size is 2k by 2k.

Allow for extending the contract encounter to the maximum size available.

Additional Lances: Granular FP restrictions

As asked for in #80 by @NickAragua.

Additional Lances can be disabled for Flashpoints as of v0.2.0. An upgrade to this would allow for more granular control over when to disable this feature. Things like if the contract restricts you to only 1 lance, or if the story really seems incompatible with having a bunch of extra lances appearing.

Random Spawns: Optional unit auto-guard on drop

There are situations when the randomiser spawns you very close to enemies. This is fine in itself but if the enemies get the first initiative it can end very badly, very quickly for the player.

Have an optional settings.json option (maybe on by default) that auto-enables guarded status for all allied units when they initially drop.

An alternative is to start with X amount of evasion on drop to achieve a similar level of drop protection.

Withdraw: Dynamic extraction zone

When selecting 'Withdraw', instead of the contract ending straight away - set a dynamic extraction zone and allow the player to fight their way back to the dropship.

This could be an optional feature turned on/off in the settings.json.

Additional Lances: Allow for faction and reputation to affect lance selection

It would be a good feature to extend the LancePool section to allow for specifying factions and reputation min/max thresholds to provide lance definitions.

A possible example:

      "LancePool": {
        "ALL": [
          "GENERIC_BATTLE_LANCE"
        ],
        "CONTRACT_TYPE:DestroyBase": [
          "BRAWLER_LANCE", "DEFENDING_LANCE"
        ],
        "BIOME:DesertParched": [
          "BBQ_MASTERS"
        ],
        "FACTION:MercenaryReviewBoard": {
          "Reputation": {
            "Min": 50,
            "Max": 100
          },
          "Lances": ["HEAVY_BATTLEMECH_LANCE"]
        }
      }

Contract Loading: Second contract freezes in load

When used with RT.

In some situation for a player they can load a first contract fine but the second contract on that save freezes in the load screen. When they load the save after the first contract has ended, they can successfully play the second contract that failed before. This can be repeated again and again for them.

This needs investigating.

Additional Lances: Direct lance def references don't work

MC attempts to get the lance def from the Data Manager but sometimes the requested lance def isn't available.

Add a step to request the lance def resource to the loaded so it will be available when the contract loads.

There is another method to achieve the same functionality so this is a minor issue.

Encounter Logic: Spawn lance

Add the ability to use a 'Spawn Lance' trigger that runs a 'Spawn Lance' result on a successful condition.

This would be useful for triggering lance spawns mid-way through a contract (e.g. enemy lances that show up after a successful objective has been completed).

Maps: Reuse story maps as generic contract maps

Reuse the story maps for generic contract maps.

This involves making a system to strip the story maps entirely of story specific map logic, chunks and objectives. Then reconstructing a generic contract type structure is required.

Additional Lances: Restrict extra lance spawns on flashpoint missions

Some flashpoint missions have tonnage restrictions, or it doesn't really make narrative sense for extra allied lances to spawn in them, or (in one case) limit you to dropping a single mech. As it turns out my one guy in a Centurion couldn't go 1 on 9 with enemy mechs (although he did take down two and nearly cored a third.)

Is it possible to prevent extra lances from spawning on flashpoints missions or some subset of them?

Saves: In-combat save games don't work

When saving a contract mid-combat, chances are when trying to load the save it will probably fail. This is probably due to some aspects not serialising in the save correctly and/or some logic re-executing that shouldn't.

Encounter Logic: Enemy extraction zones

Add the ability to insert an extraction zone for an enemy lance. This would work together with the 'retreat' AI so the enemy lances retreat to the extraction zone on a certain condition.

AI: Retreat willingness

Based retreat willingness on the faction, lance and pilot personality. Allow for customisation in JSON.

This could lead on to a 'ransom' / 'pay to let me retreat' option.

Additional Lances: Some contract type lances should primary objectives

All the Destroy Lance objectives with Additional Lances are secondary objectives. This is fine for contract types except for Battle, DestroyBase, CaptureBase where the whole point is to destroy the forces.

Make Battle, DestroyBase, CaptureBase contract types Destroy Lance objectives as primary for Additional Lances.

Extended Lances: Error when encountering contract json lance with 0 units

When using Extended Lances feature (on by default in v0.2.0), if a lance is encountered with 0 units in it (sometimes for RT turret lances are set to manual but have no units in them) then this causes an error in Mission Control.

This should be a valid usecase and Mission Control should ignore those usecases though and not try to autofill.

AI: Retreat behaviour

Add a 'retreat' behaviour that makes a lance go into full blown retreat mode (to the edge of the map or to an extraction point).

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.