Ludeon Forums

RimWorld => Mods => Releases => Topic started by: K on April 30, 2020, 04:33:50 PM

Title: [1.2] PsiTech (09.06.20) - Harness psychic phenomenon!
Post by: K on April 30, 2020, 04:33:50 PM
(https://i.imgur.com/gdzaWdy.png)

(https://i.imgur.com/RGbZb8L.png)
PsiTech adds new, late game content in the form of powerful psychic abilities. Train your colonists in the use of psychic abilities and turn them into psions. Customize your colonists in new ways using psionics.

PsiTech includes a wide range of passive and active psychic abilities giving an array customization options for your colonists. These abilities range from simple psychic enhancements, granting a variety of bonuses, to active abilities capable of healing others, to the powerful Psi Storm, capable of driving masses of enemies insane. With 46 total abilities included, PsiTech gives many options for customizing your psions.

Beware though, researching psychic abilities might draw the attention of darker forces, powerful psionic cabals who turn their wrath to any who might threaten their psychic dominion.

(https://i.imgur.com/SGTEGgR.png)
Make sure that you have Harmony from Steam (https://steamcommunity.com/workshop/filedetails/?id=2009463077) or Github (https://github.com/pardeike/Harmony) first!

Download from Steam (https://steamcommunity.com/sharedfiles/filedetails/?id=2078892294)
Download from Dropbox (https://www.dropbox.com/s/2uc50abj9skq93c/PsiTech.zip?dl=1)

(https://i.imgur.com/L4VA8uS.png)
Q: Do I need Royalty to play this?
A: No, Royalty is not required for PsiTech.

Q: Is this mod related to Royalty?
A: PsiTech has no relation to Royalty. It's a completely custom implementation of psionics that's independent of Royalty and quite different from a design standpoint.

Q: Is there somewhere I can go to get help with PsiTech?
A: Try the K's Mods Discord (https://discord.gg/pYmPRj7).

Q: How do I start using psionics?
A: Please refer to the PsiTech Quick Guide (https://i.imgur.com/U1er6xE.png).

Q: How do I use the autocast system?
A: Please refer to the PsiTech Autocasting Guide (https://i.imgur.com/wk4FhRZ.png).

Q: Does PsiTech support my language?
A: The main download only supports English. Check below to see if there's a translation sub-mod for your language.

Q: Can I disable raids by the psionic faction?
A: Yes, you can. There's an option for this.

Q: The essence penalty is too high/low!
A: The essence penalty can be changed in the options menu.

Q: Why isn't the Psi tab showing up for my alien race?
A: Some alien races don't get the Psi tab by default. Try enabling "Patch All Races" in the settings and restarting the game.

Q: There's an autocast condition/target selector/option that I would like that isn't implemented.
A: If there's some customization that you find missing in the autocast system, please leave a comment and I'll try to implement your request.

(https://i.imgur.com/bjOI8yw.png)
English
Chinese available via the PsiTech Chinese Sub-mod (https://steamcommunity.com/workshop/filedetails/?id=2084116002), courtesy of Zephyr (https://steamcommunity.com/profiles/76561198412879575).
Russian available via the PsiTech Russian Sub-mod (http://lttlword.ru/rimworld-mod-psitech), courtesy of lttlworld (http://lttlword.ru/).

If you've made a translation, please message me and I'll add it to the list of supported languages.

(https://i.imgur.com/0088wKs.png)
Design and programming by K (https://ludeon.com/forums/index.php?action=profile;u=98551)
Art by Bugmage (https://twitter.com/craftcaraway/)
Sound effects by A Privacy Company (https://steamcommunity.com/id/tinykidtoo)

The source for PsiTech is available on GitHub (https://github.com/ModderK/PsiTech).

(https://i.imgur.com/J4s3cUb.png)
Pardeike for his wonderful Harmony library. PsiTech couldn't exist without it.
Dubwise for his performance analyzer, which was used extensively in making PsiTech performant.
Canute for finding many bugs hidden in the various pre-releases of PsiTech.

(https://i.imgur.com/8Xj8TWS.png)

Major Update 26.8.20
* Some apparel can now be enhanced to improve the psychic abilities of psions when worn.

Major Update 2.8.20
* Essence penalties can now be configured on a per health effect basis, as well as globally.

Minor Update 9.7.20
* Additional optimization for the PsiTechManager.

Minor Update 25.6.20
* Resisted motes now generate properly for area burst abilities.
* When running with SOS2, insulation on armors is now increased to allow for space walks.

Minor Update 23.6.20
* Fix single target autocasting not working.

Minor Update 17.6.20
* Added a mote on pawns when they resist a psionic ability.

Minor Update 17.6.20
* Fix for a minor incompatibility with Prepare Carefully that could cause errors to occur if you added a psionic pawn to the world pawns list.

Minor Update 8.6.20
* Psychic trainer no longer allows multiple pawns in under any circumstances.
* Loading no longer breaks if a null pawn is encountered.

Minor Update 6.6.20
* Commando, Warrior, and Conduit armor and helmets now count as EVA geat when using SOS2.

Minor Update 4.6.20
* Fix the fix for temporary faction members using psychic trainers.

Minor Update 3.6.20
* Temporary faction members can no longer be put in psychic trainers.

Major Update 30.5.20
* Major performance improvements for autocasting.
* Performance improvments to casting-related stat retrieval.
* Burst-type abilities can now have additional target filters, specifying conditions for targets to be counted towards the minimum targets for cast.
* Changed energy node icon to more clearly convey that there are three trainable energy nodes.

Several new features for making XML extensions to PsiTech:
* AbilityEffectAddHediff can now take a severity.
* Added AbilityEffectNothing, which can be used to pad probabilities.
* Autocast profiles for burst-type abilities can use additional target filters.
* Abilities can now have specific effects on their users, independent of their effects on targets.

Minor Update 27.5.20
* Fixed a harmless warning related to bugged verbs when loading a save with a pawn casting in it.
* Changed tags on advanced psychic armors so that they once again count for royals.

Minor Update 26.5.20
* Fixed a display bug when awakening a pawn after training another one in a skill.
* Some additional optimizations.
* Cast jobs are now properly saved and casting works through saves and loads.

Minor Update 22.5.20
* Fixed a bug that caused issues when loading a save with pawns in the psi warmup stance.

Minor Update 20.5.20
* Pawns in cryptosleep caskets, psychic trainers, and other containers are no longer valid autocast targets.
* Phoenix no longer casts when a pawn is sedated.

Minor Update 17.5.20
* Abilities can now be queued in slots that will be unlocked by queued nodes.
* Training can now be suspended.
* Training is automatically suspended when a pawn is removed from a psychic trainer, preventing them from immediately reentering.
* Fixed a bug where queued focus nodes weren't displayed properly.

Minor Update 16.5.20
* Added a training speed setting, which can be set between 1% (100 times longer training) and 1000% (10 times faster training).
* Fixed a bug that allowed for pawns to be deposited in psychic trainers by other pawns.

Major Update 14.5.20
* Added a new building, the psychic suppression field projector. This building projects an invisible field that lowers the psychic sensitivity of nearby pawns. It can be tuned to specific intensities and radii. It's unlocked by researching the new technology, "Psychic Suppression Field", located behind "Psychic Workbench".

Minor Update 12.5.20
* Psychic foil recipes now use crafting skill for quality determination.

Minor Update 11.5.20
* Psions no longer show their weapons while casting. This should fix a conflict with Yayo's Combat 3.

Minor Update 10.5.20
* General code cleanup.
* Added README.txt to inform users that portions of PsiTech are licensed under the GNU GPLv3, as well as where to obtain source code for PsiTech.

Minor Update 8.5.20
* Added some additional assurances to prevent null keys.

Minor Update 7.5.20
* Decreased the cost of Psi robes and the Psi hood to align with the cost decreases of the advanced armors.

Minor Update 6.5.20
* The psionic faction label is now "Psionic cabal" instead of just "Psionic".
* The psionic faction now gets a leader. This won't occur in ongoing games but will in new ones.

Minor Update 6.5.20
* Added some additional safety checks to prevent null references when spawning raids.

Ability Update 5.5.20
* Armors no longer have two qualities.
* Added a new active ability, Mind Suppression, unlocked by Projection Theory. Mind Suppression lowers the psychic sensitivity of a target for some time.

Balance Update 5.5.20
* Robes and hoods now count as psychic/psycaster gear for Royalty purposes.

Several major balance changes:
* The costs of psionic pawn kinds have been increased across the board, resulting in smaller raids by the psionic faction.
* Buffed and rebalanced the psi defense chain of abilities. Progression is now 35% -> 65% -> 85% defense.
* Nerfed insanity to last 40 seconds from 60.
* Nerfed mindmelt to 10 base damage from 15.
* Buffed mindsoothe, cooldown to 60 seconds from 120, difficulty curve from new states rebalanced to 50% chance modifier at 0 ticks from 25% tapering off to 100% chance modifier in 8000 ticks from 15000.
* Essence now plays a role in the sensitivity modifier calculation used for defense. Lower essence can help pawns avoid psionic abilities up to a total modifier of 50% at 5 artificial parts on default settings. Further decreases in essence do not decrease chance to hit.

Minor Update 5.5.20
* Energy nodes are now explicitly labelled on the Psi tab.

Minor Update 4.5.20
* Added an option to patch all alien races to get the psi tab. This has an impact on startup times, and is disabled by default.
* Added some additional safe guards in case UI elements fail to load (typically due to other broken mods), which should prevent the UI from taking the whole mod down with it.

Minor Update 4.5.20
* Staunched the data bleed once and for all.
* Additional null checking to prevent the Psi card from breaking the game.

Minor Update 3.5.20
* Psionic faction settlements now have a purple color when zoomed in on the world map.
* Athenium can now be used to make obscenely expensive floor tiles.
* Psychic damage can now be treated. I didn't want to do this, but the game has serious trouble handling nontreatable injuries that would require a lot of hacking to change. This generally serves as a buff to players over the psionic faction.

Minor Update 3.5.20
* Locked slots now list how many more nodes they need to be unlocked.

Minor Update 3.5.20
* Added some more disable strings for active abilities to better explain why they're disabled.
* Fixed some stale cache issues caused by removing an ability.

Minor Update 2.5.20
* Psionic raider pawns now use the new additional filters system to be far smarter about who they cast on, and when.

Major Update 2.5.20
* Added "additional autocast filters" which can be used to filter targets beyond the base settings.
* Rebalanced robes and armors (generally buffed slightly across the board).
* PsiTech armors are now qualified as Noble combat gear for Royalty.
* Added "Advanced Psychic Foil Helmet", reducing psychic sensitivity by 180%, craftable after researching Advanced Psychic Equipment.
* Added a toggle to the autocast configuration window hide the autocast toggle gizmo.
* Added a pawn health percent condition and lowest health selector.
* Changed the cabal icon to stand out more on the map.
* The autocast toggle is now properly saved.
* Probably other things I forgot, it was a long day.

Minor Update 1.5.20
* The psionic faction now has base defense troops.
* The psionic faction now spawns more bases on the map.

Breaking Update 1.5.20
* Changed how load IDs are assigned to prevent conflicts and ID loss.

This is a breaking change. I'm deeply sorry to anyone who has a save that will be affected by this issue. To fix an existing save you will need to edit your save and remove all data psion stored under the "PsiTech.Utility.PsiTechManager" game component. This means cleaning out any keys and values that are stored in the "Trackers" tag. Do not delete the keys and values tags themselves, only the data within.

If you want to get back the progress that you lose, you can enable the PsiTech debug mode which allows for instant training by going to the TweakValue menu and enabling "!PsiTechDebug". An option will appear in the Psi tab that will allow for instant training.

Minor Update 1.5.20
* Additional optimizations to Harmony patches.

Minor Update 1.5.20
* Exposed additional functionality to XML to assist in any patch-making efforts.

Minor Update 30.4.20
* Applied additional triage to data bleed.

Title: Re: [1.1] PsiTech (30.04.20) - Harness psychic phenomenon!
Post by: Ruisuki on April 30, 2020, 05:57:16 PM
hey its finally out, congrats!
Title: Re: [1.1] PsiTech (30.04.20) - Harness psychic phenomenon!
Post by: K on April 30, 2020, 06:34:34 PM
8 months on the unfinished forums isn't too bad, right? Of course it would've been way longer except for the pandemic. Silver linings!
Title: Re: [1.1] PsiTech (30.04.20) - Harness psychic phenomenon!
Post by: Canute on May 01, 2020, 04:36:00 AM
Just some questions about the autocast:
- when i don't select drafted, the pawn will use the ability drafted or undrafted ?
- what is a setting for the Psi heal ? Since i don't found anything about wounds i just tested to use undrafted with a 50% chance. But i notice that pawn used the psi heal but there arn't any ingured one.

The autocast is a pretty good tool to remove micromanagment. But maybe give the player some manual control too. Like some you enable at the autocast a button to use the ability manualy.
Nvm. just saw the button for Psi heal while drafted.
Title: Re: [1.1] PsiTech (30.04.20) - Harness psychic phenomenon!
Post by: Chicken Plucker on May 01, 2020, 05:26:01 AM
Hey, you. You're finally awake!
You were trying to cross unfinished forums right? Walked right into that development ambush, same as us, and that mod over there.

Congrats K, it's finally out! Gonna miss seeing your thread in unfinished  :'(
Title: Re: [1.1] PsiTech (30.04.20) - Harness psychic phenomenon!
Post by: K on May 01, 2020, 11:52:07 AM
Quote from: Canute on May 01, 2020, 04:36:00 AM
Just some questions about the autocast:
- when i don't select drafted, the pawn will use the ability drafted or undrafted ?
- what is a setting for the Psi heal ? Since i don't found anything about wounds i just tested to use undrafted with a 50% chance. But i notice that pawn used the psi heal but there arn't any ingured one.

If you don't add a drafted condition then the pawn will autocast whether drafted or undrafted. As for a "damage" filter the "most pain" selector is sort of meant to fill that void. Since filters aren't "modular" in the same sense as conditions it becomes difficult to add individual filter conditions in, but it's something that could use some expansion.

Quote from: Chicken Plucker on May 01, 2020, 05:26:01 AM
Congrats K, it's finally out! Gonna miss seeing your thread in unfinished  :'(

We all have to leave some time, right? I'm just happy the release is going as smoothly as it is, particularly thanks to Canute breaking the unfinished builds.
Title: Re: [1.1] PsiTech (01.05.20) - Harness psychic phenomenon!
Post by: Canute on May 02, 2020, 05:45:46 AM
Again the Psi Heal,
the pain only allow an auto cast to the caster itself, since the pain check is only for the caster (so far i understood it).
But once he become an additional scar the pain increase and the you need to adjust the trigger.

Currently i don't found an autocast for Psi heal to cure others.

I am unable to heal  animals, the target selector goes away but the pawn don't cast.
Ok we can discuss now animals don't got any strong mind so it should work vs. the cast comes from the pawn and he got the mind and can let the others body heal.
But you should metion this at the psi heal description.


I don't think you can made it with the current UI design that you can switch the pawn with open autocast window ?
Maybe a optional global setting for all pawns ?

Btw. i think the athenium cost for the psi armor's are too high. It use more athenium then plasteel and athenium got far worser armor stats then plasteel.
You should take the cost from the regular power armors and add 20 athenium to the headwear and 40 to the bodywear like you did for the other parts.
Too bad the regular psi clothes got so bad armor stats, even a jacket are better.
I would tell these engineer to design a psi belt, that can be used with regular clothings ! :-)
And if they wouldn't listen i would let them equip cloth psi robes/hoods and put them at the first line.

Title: Re: [1.1] PsiTech (01.05.20) - Harness psychic phenomenon!
Post by: K on May 02, 2020, 11:15:54 AM
Ironically your issue with Psi Heal essentially mirrors the issue with adding additional filter conditions. There's some annoyances with it on an architectural level, but I'll see what I can do. And while the pain condition can only be used on the caster, the pain selector is used to pick a target. It too has issues with scars and the like though since it can't differentiate between permanent and temporary injuries.

Animals in general can't be affected by psionic powers. This is mostly a technical limitation, as they don't have a mood to affect.

Lastly, the athenium cost is dependent on the armor type (with commando being the cheapest and conduit being the most expensive in that regard), but I'll decrease it some particularly given of the recent changes to plasteel abundance. I was already considering giving the armors a slight buff defensively to make them more competitive with other late game armors, including those given by Royalty, and think I'll go ahead with that now. The robes can certainly get a buff as well.
Title: Re: [1.1] PsiTech (01.05.20) - Harness psychic phenomenon!
Post by: Canute on May 02, 2020, 11:42:30 AM
QuoteIronically your issue with Psi Heal essentially mirrors the issue with adding additional filter conditions. There's some annoyances with it on an architectural level, but I'll see what I can do. And while the pain condition can only be used on the caster, the pain selector is used to pick a target. It too has issues with scars and the like though since it can't differentiate between permanent and temporary injuries.
You would beed a trigger and target about currentHP/maxHP.
So when the ration fall below x at someone at range it triggered and cast on that target.
It definitiv can't be solved with the curret system. Not to speak about the constant check if someone is injured at range.
Not sure how Rim of Magic solved that with the autocast heals.

You should use the duster defence values for robes instead t-shirts :-)

Title: Re: [1.1] PsiTech (02.05.20) - Harness psychic phenomenon!
Post by: K on May 02, 2020, 09:44:18 PM
Alright, most everything should be addressed in the most recent update.

Armors, for their part, were once balanced in line with vanilla, but I think vanilla got a buff and I didn't notice. They've been slightly buffed across the board.

As for the autocast limitations, they don't exist anymore. I've added a new category of "additional filters" which can be used to filter out targets far more specifically than was previously possible. This allows for a great many highly specific autocast profiles that weren't possible previously, such as only healing people that are damaged to a certain degree, or only healing people who are downed. I haven't update the AI autocast profiles ot use these yet because I wanted to get the update out, but they'll be using these new tools to be far smarter about their targeting shortly. Be careful what you wish for...
Title: Re: [1.1] PsiTech (02.05.20) - Harness psychic phenomenon!
Post by: Ruisuki on May 02, 2020, 10:03:23 PM
alright downloading from dropbox and giving it a go tn
Title: Re: [1.1] PsiTech (02.05.20) - Harness psychic phenomenon!
Post by: K on May 02, 2020, 11:56:50 PM
Psionic raider pawns now use the new additional autocast filter system, making them far smarter. This probably makes psionic raids even harder than before. Fun new profiles include only heal downed allies to get them back up, directed snipes against dangerous psions, and more.

I might need to add an option to make the AI stupider.
Title: Re: [1.1] PsiTech (03.05.20) - Harness psychic phenomenon!
Post by: Canute on May 03, 2020, 04:03:33 AM
I think the raider allways use his abilities if he find a valid target.
Maybe just add a trigger chance.
Not sure how often the raider check for ability targets, just increase these cycle.

But since i didn't encounter any Psi raider so far, i can't say how dangerous they are.

Btw. could you maybe add a version to the mod, hard to keep track which version i got installed.

Edit: looks like the new version isn't safegame friendly
Error in DoPaneContentsFor Builder: System.NullReferenceException: Object reference not set to an instance of an object
  at PsiTech.Psionics.PsiTechAbilityScaledPassive.GetOffsetOfStat (RimWorld.StatDef stat) [0x00047] in <99eaeb56d7a74a33a4e89cdb460f5b06>:0
  at PsiTech.Psionics.PsiTechTracker+<>c__DisplayClass97_0.<GetTotalOffsetOfStat>b__0 (PsiTech.Psionics.PsiTechAbility ability) [0x00000] in <99eaeb56d7a74a33a4e89cdb460f5b06>:0
  at System.Linq.Enumerable.Sum[TSource] (System.Collections.Generic.IEnumerable`1[T] source, System.Func`2[T,TResult] selector) [0x00036] in <351e49e2a5bf4fd6beabb458ce2255f3>:0
  at PsiTech.Psionics.PsiTechTracker.GetTotalOffsetOfStat (RimWorld.StatDef stat) [0x00052] in <99eaeb56d7a74a33a4e89cdb460f5b06>:0
  at PsiTech.Utility.StatValuePatch.Postfix (System.Single __result, RimWorld.StatRequest req, RimWorld.StatDef ___stat) [0x0003c] in <99eaeb56d7a74a33a4e89cdb460f5b06>:0
  at (wrapper dynamic-method) RimWorld.StatWorker.DMD<DMD<GetValueUnfinalized_Patch2>?1564910720::GetValueUnfinalized_Patch2>(RimWorld.StatWorker,RimWorld.StatRequest,bool)
  at RimWorld.StatWorker.GetValue (RimWorld.StatRequest req, System.Boolean applyPostProcess) [0x00043] in <47faabf8b9994656a2c6f038ed160c36>:0
  at RimWorld.StatWorker.GetValue (Verse.Thing thing, System.Boolean applyPostProcess) [0x00007] in <47faabf8b9994656a2c6f038ed160c36>:0
  at (wrapper dynamic-method) RimWorld.StatExtension.DMD<DMD<GetStatValue_Patch1>?934284928::GetStatValue_Patch1>(Verse.Thing,RimWorld.StatDef,bool)
  at Verse.AI.MentalBreaker.get_BreakThresholdExtreme () [0x00000] in <47faabf8b9994656a2c6f038ed160c36>:0
  at RimWorld.Need_Mood.get_MoodString () [0x0001d] in <47faabf8b9994656a2c6f038ed160c36>:0
  at RimWorld.InspectPaneFiller.DrawMood (Verse.WidgetRow row, Verse.Pawn pawn) [0x0003c] in <47faabf8b9994656a2c6f038ed160c36>:0
  at RimWorld.InspectPaneFiller.DoPaneContentsFor (Verse.ISelectable sel, UnityEngine.Rect rect) [0x00048] in <47faabf8b9994656a2c6f038ed160c36>:0
Verse.Log:Error(String, Boolean)
Verse.Log:ErrorOnce(String, Int32, Boolean)
RimWorld.InspectPaneFiller:DoPaneContentsFor(ISelectable, Rect)
RimWorld.MainTabWindow_Inspect:DoPaneContents(Rect)
RimWorld.InspectPaneUtility:InspectPaneOnGUI(Rect, IInspectPane)
RimWorld.MainTabWindow_Inspect:DoWindowContents(Rect)
Verse.Window:InnerWindowOnGUI(Int32)
UnityEngine.GUI:CallWindowDelegate(WindowFunction, Int32, Int32, GUISkin, Int32, Single, Single, GUIStyle)

System.NullReferenceException: Object reference not set to an instance of an object
  at PsiTech.Psionics.PsiTechAbilityScaledPassive.GetOffsetOfStat (RimWorld.StatDef stat) [0x00047] in <99eaeb56d7a74a33a4e89cdb460f5b06>:0
  at PsiTech.Psionics.PsiTechTracker+<>c__DisplayClass97_0.<GetTotalOffsetOfStat>b__0 (PsiTech.Psionics.PsiTechAbility ability) [0x00000] in <99eaeb56d7a74a33a4e89cdb460f5b06>:0
  at System.Linq.Enumerable.Sum[TSource] (System.Collections.Generic.IEnumerable`1[T] source, System.Func`2[T,TResult] selector) [0x00036] in <351e49e2a5bf4fd6beabb458ce2255f3>:0
  at PsiTech.Psionics.PsiTechTracker.GetTotalOffsetOfStat (RimWorld.StatDef stat) [0x00052] in <99eaeb56d7a74a33a4e89cdb460f5b06>:0
  at PsiTech.Utility.StatValuePatch.Postfix (System.Single __result, RimWorld.StatRequest req, RimWorld.StatDef ___stat) [0x0003c] in <99eaeb56d7a74a33a4e89cdb460f5b06>:0
  at (wrapper dynamic-method) RimWorld.StatWorker.DMD<DMD<GetValueUnfinalized_Patch2>?1564910720::GetValueUnfinalized_Patch2>(RimWorld.StatWorker,RimWorld.StatRequest,bool)
  at RimWorld.StatWorker.GetValue (RimWorld.StatRequest req, System.Boolean applyPostProcess) [0x00043] in <47faabf8b9994656a2c6f038ed160c36>:0
  at RimWorld.StatWorker.GetValue (Verse.Thing thing, System.Boolean applyPostProcess) [0x00007] in <47faabf8b9994656a2c6f038ed160c36>:0
  at (wrapper dynamic-method) RimWorld.StatExtension.DMD<DMD<GetStatValue_Patch1>?934284928::GetStatValue_Patch1>(Verse.Thing,RimWorld.StatDef,bool)
  at PsiTech.Psionics.PsiTechTracker.GetTotalModifierActive () [0x00006] in <99eaeb56d7a74a33a4e89cdb460f5b06>:0
  at PsiTech.Psionics.PsiTechTracker.CanUseActiveAbilities () [0x00000] in <99eaeb56d7a74a33a4e89cdb460f5b06>:0
  at PsiTech.Psionics.PsiTechTracker.GetGizmos () [0x0008d] in <99eaeb56d7a74a33a4e89cdb460f5b06>:0
  at PsiTech.Utility.PawnGizmosPatch.Postfix (System.Collections.Generic.IEnumerable`1[Verse.Gizmo]& __result, Verse.Pawn& __instance) [0x00012] in <99eaeb56d7a74a33a4e89cdb460f5b06>:0
  at (wrapper dynamic-method) Verse.Pawn.DMD<DMD<GetGizmos_Patch5>?-974224512::GetGizmos_Patch5>(Verse.Pawn)
  at (wrapper dynamic-method) RimWorld.InspectGizmoGrid.DMD<DMD<DrawInspectGizmoGridFor_Patch0>?962767744::DrawInspectGizmoGridFor_Patch0>(System.Collections.Generic.IEnumerable`1<object>,Verse.Gizmo&)
Verse.Log:Error(String, Boolean)
Verse.Log:ErrorOnce(String, Int32, Boolean)
RimWorld.InspectGizmoGrid:DMD<DMD<DrawInspectGizmoGridFor_Patch0>?962767744::DrawInspectGizmoGridFor_Patch0>(IEnumerable`1, Gizmo&)
RimWorld.MainTabWindow_Inspect:DrawInspectGizmos()
RimWorld.InspectPaneUtility:ExtraOnGUI(IInspectPane)
RimWorld.MainTabWindow_Inspect:ExtraOnGUI()
Verse.WindowStack:WindowStackOnGUI()
RimWorld.UIRoot_Play:UIRootOnGUI()
Verse.Root:OnGUI()

Exception filling tab PsiTech.Interface.ITab_Pawn_Psi: System.NullReferenceException: Object reference not set to an instance of an object
  at PsiTech.Psionics.PsiTechAbilityScaledPassive.GetOffsetOfStat (RimWorld.StatDef stat) [0x00047] in <99eaeb56d7a74a33a4e89cdb460f5b06>:0
  at PsiTech.Psionics.PsiTechTracker+<>c__DisplayClass97_0.<GetTotalOffsetOfStat>b__0 (PsiTech.Psionics.PsiTechAbility ability) [0x00000] in <99eaeb56d7a74a33a4e89cdb460f5b06>:0
  at System.Linq.Enumerable.Sum[TSource] (System.Collections.Generic.IEnumerable`1[T] source, System.Func`2[T,TResult] selector) [0x00036] in <351e49e2a5bf4fd6beabb458ce2255f3>:0
  at PsiTech.Psionics.PsiTechTracker.GetTotalOffsetOfStat (RimWorld.StatDef stat) [0x00052] in <99eaeb56d7a74a33a4e89cdb460f5b06>:0
  at PsiTech.Utility.StatValuePatch.Postfix (System.Single __result, RimWorld.StatRequest req, RimWorld.StatDef ___stat) [0x0003c] in <99eaeb56d7a74a33a4e89cdb460f5b06>:0
  at (wrapper dynamic-method) RimWorld.StatWorker.DMD<DMD<GetValueUnfinalized_Patch2>?1564910720::GetValueUnfinalized_Patch2>(RimWorld.StatWorker,RimWorld.StatRequest,bool)
  at RimWorld.StatWorker.GetValue (RimWorld.StatRequest req, System.Boolean applyPostProcess) [0x00043] in <47faabf8b9994656a2c6f038ed160c36>:0
  at RimWorld.StatWorker.GetValue (Verse.Thing thing, System.Boolean applyPostProcess) [0x00007] in <47faabf8b9994656a2c6f038ed160c36>:0
  at (wrapper dynamic-method) RimWorld.StatExtension.DMD<DMD<GetStatValue_Patch1>?934284928::GetStatValue_Patch1>(Verse.Thing,RimWorld.StatDef,bool)
  at PsiTech.Psionics.PsiTechTracker.EnergyPercentOfMax () [0x00006] in <99eaeb56d7a74a33a4e89cdb460f5b06>:0
  at PsiTech.Interface.PawnPsiCard.DrawPsiCard (UnityEngine.Rect rect, Verse.Pawn pawn, System.Boolean inTrainer) [0x002cb] in <99eaeb56d7a74a33a4e89cdb460f5b06>:0
  at PsiTech.Interface.ITab_Pawn_Psi.FillTab () [0x00067] in <99eaeb56d7a74a33a4e89cdb460f5b06>:0
  at Verse.InspectTabBase+<>c__DisplayClass14_0.<DoTabGUI>b__0 () [0x00039] in <47faabf8b9994656a2c6f038ed160c36>:0
Verse.Log:Error(String, Boolean)
Verse.Log:ErrorOnce(String, Int32, Boolean)
Verse.<>c__DisplayClass14_0:<DoTabGUI>b__0()
Verse.ImmediateWindow:DoWindowContents(Rect)
Verse.Window:InnerWindowOnGUI(Int32)
UnityEngine.GUI:CallWindowDelegate(WindowFunction, Int32, Int32, GUISkin, Int32, Single, Single, GUIStyle)

Title: Re: [1.1] PsiTech (03.05.20) - Harness psychic phenomenon!
Post by: K on May 03, 2020, 11:18:11 AM
There was one change I made that was not save game compatible on Friday that had to be done because there was a very bad piece of code that was more or less a timebomb. However, all other updates since then should be save compatible.

As for versioning, to be honest I'm just too lazy to keep track of version numbers myself, particularly since the update pace is very high right now.
Title: Re: [1.1] PsiTech (03.05.20) - Harness psychic phenomenon!
Post by: Canute on May 03, 2020, 11:28:36 AM
I just download it today, shortly before i wrote this.
Ok, looks like no more updates for the existing colony, no big deal.

Edit:
Damn, the psi faction is deadly. Everyone with Tier3 abilities, they don't even need weapons they just psi kill through the walls.
Since they come like regular raids with an outnumbered strenght, you definitiv have some causalties when they come in Psi range, special since my current colony are all mellee's.

Currently it is a bad idea to imprison these Psi faction, they still use their abilities.
So what do you think about some Psi damper security building ?
Inside the range no Psi ability can be used. Sure you can improve your defence with them too, but it only prevent active abilities not the passive ones.

Dang, do you think that quest is fair ? 9 vs 172.
Yes i know you can't do anything about the quest.
Title: Re: [1.1] PsiTech (05.05.20) - Harness psychic phenomenon!
Post by: K on May 05, 2020, 03:55:36 PM
Didn't see your edit Canute. I've just pushed an update that rebalances many things and should address some of the general op-ness of the psionic faction.

A psychic suppressor building is an interesting idea, particularly since it gives the option of giving up actives for defense, which is the kind of mechanic I like. I'll have to think of a way to make it differentiated from Mind Fortress though, since I don't want to make Mind Fortress useless by adding a building that does the same thing.
Title: Re: [1.1] PsiTech (05.05.20) - Harness psychic phenomenon!
Post by: Canute on May 05, 2020, 04:44:11 PM
Mind fortress wouldn't be useless when you going to attack Psi-faction outposts/settlements.
But currently the Psi-faction is very deadly, so i decide the let strong animals guard the entrance and retreat with my pawn at the opposide of my base out of range.
Maybe for another run, i would train everyone with Mind Fortress so i can fight them directly.
Not sure how clever you made the autocast for the raider, so they would ignore all the mind fortress pawn's (with 0% success chance) and focus on potential supporter.

Or i need to focus on sniper fights, so the weapon range is larger then Psi range if that is possible (don't know all the ranges of the abilities).

And you could add a some chances that regular raiders can have psionic powers too.

Title: Re: [1.1] PsiTech (05.05.20) - Harness psychic phenomenon!
Post by: K on May 05, 2020, 05:59:44 PM
They're pretty smart, but no smarter than any autocast profile that you could set up. In fact, they don't use autocast conditions so they're a bit less smart in that regard. They do have a propensity to focus-fire enemies without Mind Fortress (since they only take shots they can hit). I definitely agree that the faction was too deadly, but hopefully the new balance changes should address that to some extent. At the very least, there should be less of them to deal with.

I'm also in the process of adding a new tier 2 ability that should help players deal with psions. This ability decreases the psychic sensitivity of the target for some time, allowing effective suppression of enemy psions. It can also be used defensively on your own pawns to decrease their psychic sensitivity and therefore their chance to get hit. I'm not certain that I'll add shields due to this new ability (they trivialize combat too much in my opinion), but we'll see where the balance is at after it's added.

Also note that Mind Domination is designed to deal with enemy psions at massive range and instantly kill them, so it can be useful for eliminating high threat targets.

Title: Re: [1.1] PsiTech (05.05.20) - Harness psychic phenomenon!
Post by: Canute on May 06, 2020, 06:25:16 AM
QuoteAlso note that Mind Domination is designed to deal with enemy psions at massive range and instantly kill them, so it can be useful for eliminating high threat targets.
Which would require to check all enemy Psion's if these got Mind Domination or similar abilties and manualy focus on them. I don't think you could setup any autocast about threatlevel! :-)

Another thing, implants like bionic lower the effectivity of psions. So i think the passive abilities could get some boost when the psion got higher sensitivity and an essence of 100%.

Latest verson from yesterday with a new colony, alot of warnings after loading.
Could not resolve reference to object with loadID Thing_Human46813 of type Verse.Pawn. Was it compressed away, destroyed, had no ID number, or not saved/loaded right? curParent=PsiTech.Psionics.PsiTechTracker curPathRelToParent=
Verse.Log:Warning(String, Boolean)
Verse.LoadedObjectDirectory:ObjectWithLoadID(String)
Verse.CrossRefHandler:TakeResolvedRef(String, IExposable)
Verse.CrossRefHandler:TakeResolvedRef(String)
Verse.Scribe_References:Look(Pawn&, String, Boolean)
PsiTech.Psionics.PsiTechTracker:ExposeData()
Verse.CrossRefHandler:ResolveAllCrossReferences()
Verse.ScribeLoader:FinalizeLoading()
Verse.Game:DMD<DMD<LoadGame_Patch1>?-1774510848::LoadGame_Patch1>(Game)
Verse.SavedGameLoaderNow:LoadGameFromSaveFileNow(String)
Verse.<>c:<Start>b__1_1()
Verse.LongEventHandler:RunEventFromAnotherThread(Action)
Verse.<>c:<UpdateCurrentAsynchronousEvent>b__27_0()
System.Threading.ThreadHelper:ThreadStart_Context(Object)
System.Threading.ExecutionContext:RunInternal(ExecutionContext, ContextCallback, Object, Boolean)
System.Threading.ExecutionContext:Run(ExecutionContext, ContextCallback, Object, Boolean)
System.Threading.ExecutionContext:Run(ExecutionContext, ContextCallback, Object)
System.Threading.ThreadHelper:ThreadStart()

https://gist.github.com/999e41dd3283a9f306830090fb7b61fe
Currently i can't open the worldmap, but i don't think that belong to PsiTech.
Title: Re: [1.1] PsiTech (05.05.20) - Harness psychic phenomenon!
Post by: K on May 06, 2020, 11:36:29 AM
Enemy psions don't get Mind Domination actually. It and the new Mind Suppression are designed as trump cards for players. I'm not so cruel as to give the AI long-range oneshots through walls.

As for those warnings, they should be fixed in more recent versions, if you're able to update. Looks like your map is broken because of a missing faction though. Dub's Performance Analyzer has an option that can fix that sometimes, if you wanted to try using it.
Title: Re: [1.1] PsiTech (05.05.20) - Harness psychic phenomenon!
Post by: Canute on May 06, 2020, 03:53:37 PM
Thanks for the hint, but the analyser didn't helped.
None of the numbers or similar strings at the error msg. i could find at the safegame.
After some testing, and checking the mod discussion i found out the StarTrek races are corrupt.
New game, safe,load and world map broken with just that mod.
And i think the mod author have no intention to fix it. No big deal, next race ! :-)

Title: Re: [1.1] PsiTech (06.05.20) - Harness psychic phenomenon!
Post by: K on May 06, 2020, 04:42:40 PM
Now you can update to the most recent version of PsiTech as well. By the way, I added an option to patch all races that you can enable in the settings menu, so no more making patches yourself for races that are too cool to derive from base pawn.

Also, please tell me if you get those yellow and red "null key" errors on your new save. I'm fairly certain I've dealt with it but not entirely.
Title: Re: [1.1] PsiTech (06.05.20) - Harness psychic phenomenon!
Post by: Canute on May 06, 2020, 05:02:02 PM
Downloading PsiTech(10).zip :-)
This time Star Gate races.
Title: Re: [1.1] PsiTech (08.05.20) - Harness psychic phenomenon!
Post by: Ruisuki on May 10, 2020, 01:13:21 AM
Alright imma try this. hopefully its not too difficult or breaking im already having issues keeping this save alive
Title: Re: [1.1] PsiTech (12.05.20) - Harness psychic phenomenon!
Post by: K on May 14, 2020, 05:30:59 PM
I've just released an update that adds a new building, the psychic suppression field projector. This building projects an invisible field that lowers the psychic sensitivity of nearby pawns, and can be used for a variety of purposes. It can be used defensively to make your pawns harder to hit at the cost of lowering their effectiveness, and it provides a way to control the casting of captured psionic pawns, among other uses.
Title: Re: [1.1] PsiTech (22.05.20) - Harness psychic phenomenon!
Post by: Ruisuki on May 23, 2020, 03:17:20 AM
so the new faction hates everyone and is not possible to ally with right? Cant gain relation boost upon downing/release of their members so im assuming thats the case. I added this mod mid save and have no psions or psychic pawns even to give them reason to hate me. Whats the in game lore behind them/reason for their hatred? I thought theyd be like the royals are for psychics?
Title: Re: [1.1] PsiTech (22.05.20) - Harness psychic phenomenon!
Post by: K on May 23, 2020, 04:18:23 PM
They're always hostile, but they won't attack you unless you research into psionics. They'll ignore you until they perceive you as a threat. This does mean you can preemptively attack them before researching psionics if you wish.

Ultimately, they're basically a cult and they'll never be friends with anyone.
Title: Re: [1.1] PsiTech (22.05.20) - Harness psychic phenomenon!
Post by: Canute on May 23, 2020, 05:12:29 PM
But you can encounter them at various quests like bandit camps. Or when a refuge got chased by 2 hostile factions (not 100% sure).
Title: Re: [1.1] PsiTech (22.05.20) - Harness psychic phenomenon!
Post by: crowman on May 23, 2020, 07:01:39 PM
The only psychic phenomenon I need to harness is a 0.10% BAC on a daily basis lest I wake up from my intermittent psychosis only to find a broken and unwelcoming world, filled with facetious laws whose only purpose is to serve those who foot the bill of the executioners. Of course, I'm talking about the game, silly! Don't stress yourself too hard, you've had a rough day today and god forbid you knew how many ounces of sugar and debt are flowing through your family. But that's okay, because the big good man in the armoury is going to save us from... and he's dead. Oh, Cindy has an idea! Alright, let's listen to... Wait, she's for real? She wants to have interco... with the mechs? Listen, Cindy, I don't think you thoroughly understand what's at stake here. You can't just go ahead and trade your... skills in exchange for peace. No, that would be barbaric. Here, let's try walling them off and tearing through the chest cavities of these fine gentlemen who just decided to visit us; how fortunate! Yes, they are losing roughly half their body's weight in blood per minute, but that is alright, because the govern... Alright, let me just cut open the aorta and adjust the obtuse margnis so that it fits somewhat properly. Aaaaand... there are the risks of the job, after all. Can't put all of your eggs in one basket. And Cindy sure had a lot of those.
Title: Re: [1.1] PsiTech (22.05.20) - Harness psychic phenomenon!
Post by: K on May 23, 2020, 08:00:23 PM
Quote from: Canute on May 23, 2020, 05:12:29 PM
But you can encounter them at various quests like bandit camps. Or when a refuge got chased by 2 hostile factions (not 100% sure).

Unfortunately the game gives very few ways to control when a faction gets spawned. The way that the current limitations are implemented is by setting the raid commonality to zero until you've researched projection theory, and that's done with a Harmony patch because there's no way to do it otherwise. I'll take another look though and see if there's any other parameters I can control to stop them from spawning when they're not meant to, though.

Quote from: crowman on May 23, 2020, 07:01:39 PM
The only psychic phenomenon I need...

I have no idea what you're talking about.
Title: Re: [1.1] PsiTech (22.05.20) - Harness psychic phenomenon!
Post by: Canute on May 24, 2020, 04:33:53 AM
That's ok while they don't start an own raid.

But that's because they are an own faction with settlements.
Whats about if you made them as hidden faction without settlement. .... (no idea).

Or do you know Rim of Madness-Cult ? when your colony develop an cult and a faction which is normaly neutral/friendly turn into hostile once it discover it.
Maybe you adapt it, so the psi-faction is neutral and visit you. And once they notice a pawn with an acsendent ability on their visits, it turns hostile after they left.
Title: Re: [1.1] PsiTech (22.05.20) - Harness psychic phenomenon!
Post by: K on May 24, 2020, 12:49:44 PM
It doesn't seem like there's any way (besides very invasive Harmony patching) for me to control when the faction gets spawned more than it already is.

I think that from a "lore" perspective the current situation is fine, as the cabal is an organization out in the world and they are active in some ways. The idea is that before researching psionics, you're like an ant to them, and they'll crush you because they can, but once you have, you're an active threat that needs to be quelled. From this perspective, I think it's alright for them to show up from time to time in other, non-direct capacities.

Of course, from a balance perspective they're still brutally hard which is why they don't spawn early, and anything that spawns them early has the capacity to totally destroy the player.
Title: Re: [1.1] PsiTech (22.05.20) - Harness psychic phenomenon!
Post by: Ruisuki on May 24, 2020, 01:30:47 PM
Quote from: K on May 23, 2020, 04:18:23 PM
They're always hostile, but they won't attack you unless you research into psionics. They'll ignore you until they perceive you as a threat. This does mean you can preemptively attack them before researching psionics if you wish.

Ultimately, they're basically a cult and they'll never be friends with anyone.
ah i was attacked after they demanded protection money, so thats probably a mod. I noticed none of the 10 attackers used any sort of psychic powers either
Title: Re: [1.1] PsiTech (22.05.20) - Harness psychic phenomenon!
Post by: K on May 24, 2020, 01:50:49 PM
Some of their lower tier pawns don't have psionics. If you prompted them to attack early on, they probably just sent those low tier pawns instead of actual psions.
Title: Re: [1.1] PsiTech (22.05.20) - Harness psychic phenomenon!
Post by: Malacai on May 26, 2020, 07:20:36 AM
The protection money demand is from the Settlers faction mod from vanilla expanded series.