Archived

This topic is now archived and is closed to further replies.

Please be aware that the content of this thread may be outdated and no longer applicable.

SteelCrow

[MOD] AGENTS Cohesion Tweaks v1.1

Recommended Posts

SteelCrow    2

This is the Agents mod I have been thinking of publishing.  It edits several Agents' unique augments and/or starting items. I intent is to amend them to make more sense to my personal tastes, and in general they could be much more interesting.  I would like to know if there are any bugs and egregious imbalances or abuse cases.

Rundown of agent changes, v1.1:

Spoiler
  • OnFile Decker:

Augment changed to Light Skeletal Frame: "Can activate sprint without full AP. Sprint noise reduced to 4 tiles."  Credit: Colonel_S

  • Archive Decker:

His augment grants +1 AP from any kind of attention from guards, once per turn per guard.  He has a TAG pistol instead of a revolver, the better to track guards and safely get AP from them.

  • OnFile Shalem:

Enhanced Optics has no effect unless his AP is greater than or equal to max.  When it is, he ignores basic Heart Monitors for the cost of 3 PWR and gets +1 armor pierce.  It is active during the Corps' turn, so he can overwatch with it.  The intent is to push him toward sniper tactics.

  • Archive Shalem:

Copied the Ventricular Lance from ITEMS New and Editted.  Its main difference is refreshing the agent's attack.

  • OnFile Banks:

Trade Banks' Custom Paralyzer for a Custom Buster Chip.  My feeling is that Banks is primarily a database hacker and vault breaker rather than a smash and grab robber.

  • Archive Banks:

Banks' Custom Econ Chip gets its bonus from Anarchy instead of Hacking and is exclusive to Banks.  There's a few fascinating effects from this change, like already having a bonus from starting with Anarchy 2, and having more skill stealing from guards.

  • Archive Nika:

Nika wields a "Short-Circuit Disruptor", which is like Neural Disruptor 1 but with -1 cooldown and KO time.  With this Disruptor, Nika is able to attack every turn without the help of Torque Injectors.

  • Draco:

Replaced his weapons with a lethal melee Baton.  This Baton uses charges instead of ammo, so it may be reused every mission.

 

Changelog:

Spoiler

(9 May 2017) v1.1:

  • Reverted Shalem's Desert Wind and his augment only pierces armor and ignores Heart Monitors when at at least full AP (includes overwatch).
  • Archive Banks' chip now uses Anarchy for its bonus instead of Hacking.  No more bonus credits.

(29 April 2017) v1.0:

  • Initial version includes changes to both versions of Decker, Shalem, and Banks, as well as to Archive Nika and Draco.

In case this page gets archived, I'll still be able to update on Steam (it's already happened to me):

Link to Steam Workshop

AGENTS_CohesionTweaks.zip

Share this post


Link to post
Share on other sites

The EconChip change would be an interesting one for sure, if only because it would allow her to be more specialized in her skill spread (though technically she's already a pretty blank pallet with no starting augment.) But now I'm curious as to how that change would be implemented...

Share this post


Link to post
Share on other sites

I think "jackin.lua" is what you want to change/piggyback off of. Try this:

jackin2.lua

The code changes I made are specifically in the "calculateCPUs" function. The quick test I ran appeared to work fine, and you can play with it as you see fit. Let me know if you have any questions.

Share this post


Link to post
Share on other sites
SteelCrow    2
On 4/29/2017 at 7:35 PM, PrismaticPhoton said:

I think "jackin.lua" is what you want to change/piggyback off of. Try this:

jackin2.lua

The code changes I made are specifically in the "calculateCPUs" function. The quick test I ran appeared to work fine, and you can play with it as you see fit. Let me know if you have any questions.

Thank you for this!  I remember trying to reverse-engineer the code for checkRequirements, then trying to add a trait to Anarchy in skilldefs.lua.  I didn't realize getSkillLevel() existed (it only appears once in simunit.lua, probably not used for anything), great find!

I'm going to try changing shootSingle to get its functions from other places and change those.  Changing "function _M.calculateShotSuccess" and "function simengine:hitUnit" caused errors.

Share this post


Link to post
Share on other sites
4 hours ago, SteelCrow said:

Thank you for this!  I remember trying to reverse-engineer the code for checkRequirements, then trying to add a trait to Anarchy in skilldefs.lua.  I didn't realize getSkillLevel() existed (it only appears once in simunit.lua, probably not used for anything), great find!

I think it was in Draco's augment that pushed me in the right direction.

Also, something occurred to me: I think the change I made would actually apply to regular Econchips as well, so you might have to come up with a specialized check for Banks' chip. Maybe add an item trait, like "useAnarchy."

Share this post


Link to post
Share on other sites
SteelCrow    2
11 hours ago, PrismaticPhoton said:

Also, something occurred to me: I think the change I made would actually apply to regular Econchips as well, so you might have to come up with a specialized check for Banks' chip. Maybe add an item trait, like "useAnarchy."

Nah, it's not like that, because jackin2 is regarded as a completely different ability than jackin.  In my custom itemdefs, I made an entry for Banks' chip and changed

		abilities = { "carryable","recharge","jackin" },

to

		abilities = { "carryable","recharge","jackin_banksbankchip" },

and they are totally independent ( jackin_banksbankchip is what I named the ability).  I could even delete all the codes that handle Accelerator Chips.  itemdefs is also where I made the chip exclusive, taking Prism as reference.

Oh, and the essential thing I forgot, in the ability's .lua, make sure to rename where it shows these:
 

local jackin =

return jackin

The other scripts read these as the ability's name.

Share this post


Link to post
Share on other sites
2 minutes ago, SteelCrow said:

Nah, it's not like that, because jackin2 is regarded as a completely different ability than jackin.  In my custom itemdefs, I made an entry for Banks' chip and changed


		abilities = { "carryable","recharge","jackin" },

to


		abilities = { "carryable","recharge","jackin_banksbankchip" },

and they are totally independent ( jackin_banksbankchip is what I named the ability).  I could even delete all the codes that handle Accelerator Chips.  itemdefs is also where I made the chip exclusive, taking Prism as reference.

Ah, OK. I was assuming you were going to replace code in the original "jackin," but since its isolated to only one item that's probably easier.

Share this post


Link to post
Share on other sites
Cyberboy2000    549
11 minutes ago, SteelCrow said:

Oh, and the essential thing I forgot, in the ability's .lua, make sure to rename where it shows these:
 


local jackin =

return jackin

The other scripts read these as the ability's name.

It's not necessary, because jackin in this case is local, meaning it is not used outside the file or function it is defined in. The name that is used to refer to the ability is the index the ability has in abilitydefs, which is assigned by addAbilityDef.

Share this post


Link to post
Share on other sites
SteelCrow    2
1 hour ago, Cyberboy2000 said:

It's not necessary, because jackin in this case is local, meaning it is not used outside the file or function it is defined in. The name that is used to refer to the ability is the index the ability has in abilitydefs, which is assigned by addAbilityDef.

Ah, I see.  Well, I did that, too.  I kind of want to edit my post now.

Shalem's new augment is now working perfectly as intended. =)

Share this post


Link to post
Share on other sites