Fractal Softworks Forum

Please login or register.

Login with username, password and session length

Author Topic: [0.9.1a] CBCC : Vanilla mini-mod. Starting small, mods and Officer recruitment  (Read 2036 times)

Cabbs

  • Ensign
  • *
  • Posts: 24
    • View Profile



                                                       CBCC v0.1 (Download)
                                                                           Requires Lazylib and Magiclib.
                                          Can be added to an ongoing campaign, but not removed due to hullmods.

    Colony Based Campaign Content!

    Or "Cabbs' Colony Content", or "Campaign Content", or "Cabbs' Bad Ideas". Name to be finalised. 

    This mini-content mod currently includes two NPC contacts that provide simple services for the player. 

    I wanted to throw my hat in the ring of Vanilla-friendly content mods, expand the number of 'things' to do at your own colony, and let you 'customise' ships some more. So, after starting from scratch and spending an awful lot of time achieving simple stuff, I've decided to get what is functional so far in front of you fine folks, before it's all made irrelevant by updates, or inadvertently duplicates the features of another mod.

    These work via rules and commands, so should be compatible with nearly everything.

    Shipyard Liason
    Spoiler

    If your colony contains Heavy Industry or Orbital Works industries, a Shipyard Liason will appear in the Comms Directory.

    He or She can manage 'Combat Tweak' perma-mods for your fleets ships, one per ship, at a credit cost, with removal being free.  Some of these are locked behind Orbital works.

    These 'Tweak' hullmods provide small adjustments to your ships, with zero Ordnance point cost and a suitable downside.

    All available Tweaks:

    Spoiler

    [close]


    [close]

    Recruitment Liason

    Spoiler

    If your colony has a Military Base, a High Command or the Academy from SirHartley's Industrial.Evolution mod, a Recruitment Liason will appear in Comms Directory.

    He or She can start a 'Recruitment Program' to attract an Officer with specific skills and Personality to your colony; You specify Personality and skillset, with a level of funding depending on how fast you want this to occur.  Only one program can be active per colony.  If you have a High Command on the colony, the resulting Officer will be a higher level, and start with more skills from the skillset pool you wanted.

    If industrial.Evolution is active :
    - Base costs are about 40% less, with an Academy reducing it further.[/li][/list]
    - The personality is selected from a range, one either side of what you choose, so only a 1-in-3 to get what you want (or 1-in-2 for Reckless or Timid). 
    - Intention is that you use SirHartleys Academy to fix this if you need to.



    [close]

    Not much right now, kinda proof of concept. With that in mind:

    - Combat tweaks are intended to be felt and I didn't want anything that said 'just don't get hit' like adjustments to damage dealt or taken.  As a result I probably made them kinda boring.
    - Attempted to balance Recruitment time and cost sensibly, mostly based off of the 60-day time required for SirHartleys academy to change an officers personality by 1, which made sense to me. Does this take a hammer to officer balance?
    - I swear, I have tested these things.  They are self-contained and there isn't much to go wrong...
    - hosted above files on my google drive.  Bad idea? I'm too tired to work this out right now.
    - I want feedback! You don't even need to have played it.  Any ideas on how to make these feature more balanced/relevant/interesting would also be appreciated.

    Future plans may include:  repeatable quests from these NPCS, faction-specific bar missions, swap out some Tweaks for something more bespoke, a low quality ship or two to fill out Vanilla trash fleets with more than just Ventures, maybe a short break from staring at NetBeans.

    I do not know which new things I will get around to due to time, but would love to develop whats here a bit further beyond just refactoring it.

    Many thanks to:
    Spoiler
    Alex for this game, answering my questions and the AsteroidInteraction example.
    SirHartley for his help and permission to use his event finding code and implementation of OfficerManager.
    [close]
    Logged

    Mondaymonkey

    • Admiral
    • *****
    • Posts: 777
      • View Profile

    That is looks great!

    However, even without playing this yet , could point some things. Some Shipyard Liason tweaks are good, and some I doubt ever would be used by anyone.

    Attenuated drives downsides arguable worse than output. And it probably shouldn't be available if SO are installed.

    Munitions lastage. It's fine, only wish to know how it work with single torpedo, as you can not have 1.5 reapers ammo. I believe it should be always rounded down at any case, not to abuse.

    Shield scaling. Not sure if +40% upkeep is fair price for what it does. However it's a shield flickering booster and I am not a big fan of it, so could be wrong.

    EDIT: What you doing is good. Wish you luck in expanding and polishing.
    Logged
    I dislike human beings... or I just do not know how to cook them well.

    Rei Akiba

    • Ensign
    • *
    • Posts: 23
      • View Profile

    good start there mate...for future updates you need add this

    1. increase armor at the expense of..well anything you want, like reduce speed or decrease peak operating time
    2. increase missile damage but reduce missile maneuverability
    3. increase damage of all energy weapons but reduce range or turret rotation
    4. increase fighter replacement rate, but reduce armor,damage,shield,etc
    5. add more Ordnance points but decrease Hull,armor,and Peak operating time, well depends on you

    and many more...but that it for now from me, maybe more feedback from me anytime soon
    Logged

    Mondaymonkey

    • Admiral
    • *****
    • Posts: 777
      • View Profile

    5. add more Ordnance points but decrease Hull,armor,and Peak operating time, well depends on you

    No, please, no! That would be be either OP or UP. Different ships depends on PPT, armor and any other penalty you can propose, in different way, and also contribute advantages from Ordnance points in a different way. English is not my native, BTW. The point is: if you balance it for one ship - it would be imbalanced for all the rest.

    SWP have hullmod, that flat increase OP adding malfunction probability, and it's probably less balanced thing in that mode.
    Logged
    I dislike human beings... or I just do not know how to cook them well.

    Cabbs

    • Ensign
    • *
    • Posts: 24
      • View Profile

    Spoiler
    That is looks great!

    However, even without playing this yet , could point some things. Some Shipyard Liason tweaks are good, and some I doubt ever would be used by anyone.

    Attenuated drives downsides arguable worse than output. And it probably shouldn't be available if SO are installed.

    Munitions lastage. It's fine, only wish to know how it work with single torpedo, as you can not have 1.5 reapers ammo. I believe it should be always rounded down at any case, not to abuse.

    Shield scaling. Not sure if +40% upkeep is fair price for what it does. However it's a shield flickering booster and I am not a big fan of it, so could be wrong.

    EDIT: What you doing is good. Wish you luck in expanding and polishing.
    [close]

    Thanks! Yeah, remaking the hullmods is the first thing in my queue.  A few oversights there for sure, but they're pretty innocuous so I'll leave the download up.

    Starting to realise why I haven't seen any other hullmods that provide partial missile ammo bonuses - but i'll take that to the questions thread.
    Logged

    Mondaymonkey

    • Admiral
    • *****
    • Posts: 777
      • View Profile

    Maybe you should try to change maxammo directly in combat (advanceInCombat section)? Like ship starts with no bonus ammo, but gain it in a first frame it exist? And there shouldn't be that hard to get weapons list from there and if it's a missile - set maxammo (or just ammo if it could be higher to maxammo with no errors) with proper rounding.

    Dirty solution, but should work theoretically.
    Logged
    I dislike human beings... or I just do not know how to cook them well.

    Mondaymonkey

    • Admiral
    • *****
    • Posts: 777
      • View Profile

    Code
    	private static final float BONUS_AMMO = 0.2f;


    public void advanceInCombat(ShipAPI ship, float amount) {

    for (WeaponAPI wpn : ship.getAllWeapons()) {

    if wpn.getType() == MISSILE {
      int M_AMMO = wpn.getMaxAmmo();
      float TEMP = M_AMMO*(1f + BONUS_AMMO);
      M_AMMO = Math.round(Math.floor(TEMP));      #not sure of this... Hate JAVA.
      wpn.setMaxAmmo (M_AMMO);
      wpn.resetAmmo();
     
    }


    }
    }


    Do not know exactly how to apply this only once only on first frame...
    « Last Edit: August 05, 2020, 09:57:37 AM by Mondaymonkey »
    Logged
    I dislike human beings... or I just do not know how to cook them well.

    Mondaymonkey

    • Admiral
    • *****
    • Posts: 777
      • View Profile

    That was probably ***...

    int M_AMMO = wpn.getMaxAmmo();

    Should be:

    int M_AMMO = wpn.getSpec().getMaxAmmo();

    And if we already get M_AMMO not from ship weapon, but from spec... we always can:

                  float Time = ship.getFullTimeDeployed();

    And change
                 if wpn.getType() == MISSILE {
    to:
                 if (wpn.getType() == MISSILE)&(Time<=1) {

    The only bad thing may happen here - missile ammo would replenish to modified maxammo indefinitely during first second it exist. Unlikely this can be abused in real battle.
    « Last Edit: August 05, 2020, 11:00:44 AM by Mondaymonkey »
    Logged
    I dislike human beings... or I just do not know how to cook them well.

    Cabbs

    • Ensign
    • *
    • Posts: 24
      • View Profile

    That was probably ***...

    int M_AMMO = wpn.getMaxAmmo();

    Should be:

    int M_AMMO = wpn.getSpec().getMaxAmmo();

    And if we already get M_AMMO not from ship weapon, but from spec... we always can:

                  float Time = ship.getFullTimeDeployed();

    And change
                 if wpn.getType() == MISSILE {
    to:
                 if (wpn.getType() == MISSILE)&(Time<=1) {

    The only bad thing may happen here - missile ammo would replenish to modified maxammo indefinitely during first second it exist. Unlikely this can be abused in real battle.

    We can use the 'applyEffectsAfterShipCreation' of the hullmod to set the wpn ammo immediately, but unfortunately thats about it - can't change the damage or fire-rate of a single installed weapon, which is what I was hoping for.  Maybe in a later version.

    The Hullmod is intended to be free alternative to Expanded Missile Racks, so the way I see it:

    A:  100% Ammo but with half fire rate. So basically free Expanded Missile Racks with large downside
    B:  50-75% missile ammo with 25% rate of fire reduction, 1-shots do not get additional ammo.

    Probably going with B - fits the description, goes well with launchers that carry odd numbers of missiles, dedicated missile ships will want Racks anyway.
    Logged

    Mondaymonkey

    • Admiral
    • *****
    • Posts: 777
      • View Profile

    Quote
    We can use the 'applyEffectsAfterShipCreation'

    Changing ammo there sometimes lead to bad sequences. Mostly compatibility issues with other mods. Don't remember actually why.

    Quote
    B:  50-75% missile ammo with 25% rate of fire reduction, 1-shots do not get additional ammo.

    Reasonable to me. I'd also add -15%(or 20%) to hull integrity, as you store explosives in improper places (description). Alternatively - decrease recovery chance if destroyed.
    Logged
    I dislike human beings... or I just do not know how to cook them well.