Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Topics - Rah

#1
Help / Gizmo error with Shield Belt code
August 27, 2021, 04:30:52 PM
Hi, I made some armor with the shield belt feature on it and pawns being able to shoot with it. Everything works except for the shield energy display in-game when drafted. The "Gizmo" code for the vanilla shield belt is the code responsible for showing the energy in-game. I have to remove that code to be error free, but then I can't see how much shield the pawn has.

It gives all kinds of errors, like "IteratorStateMachine" cant be found, d 26 cannot be found, etc. Anyone know how to fix that error? Thanks.

using System;
using UnityEngine;
using Verse;
using Verse.Sound;

namespace RimWorld
{
    [StaticConstructorOnStartup]
    public class HellfireBattleArmor : Apparel
    {
        private float energy;

        private int ticksToReset = -1;

        private int lastKeepDisplayTick = -9999;

        private Vector3 impactAngleVect;

        private int lastAbsorbDamageTick = -9999;

        private const float MinDrawSize = 1.2f;

        private const float MaxDrawSize = 1.55f;

        private const float MaxDamagedJitterDist = 0.05f;

        private const int JitterDurationTicks = 8;

        private int StartingTicksToReset = 3200;

        private float EnergyOnReset = 0.2f;

        private float EnergyLossPerDamage = 0.033f;

        private int KeepDisplayingTicks = 1000;

        private float ApparelScorePerEnergyMax = 0.25f;

        private static readonly Material BubbleMat = MaterialPool.MatFrom("Other/ShieldBubble", ShaderDatabase.Transparent);

        private float EnergyMax
        {
            get
            {
                return this.GetStatValue(StatDefOf.EnergyShieldEnergyMax, true);
            }
        }

        private float EnergyGainPerTick
        {
            get
            {
                return this.GetStatValue(StatDefOf.EnergyShieldRechargeRate, true) / 60f;
            }
        }

        public float Energy
        {
            get
            {
                return this.energy;
            }
        }

        public ShieldState ShieldState
        {
            get
            {
                bool flag = this.ticksToReset > 0;
                ShieldState result;
                if (flag)
                {
                    result = ShieldState.Resetting;
                }
                else
                {
                    result = ShieldState.Active;
                }
                return result;
            }
        }

        private bool ShouldDisplay
        {
            get
            {
                Pawn wearer = base.Wearer;
                return wearer.Spawned && !wearer.Dead && !wearer.Downed && (wearer.InAggroMentalState || wearer.Drafted || (wearer.Faction.HostileTo(Faction.OfPlayer) && !wearer.IsPrisoner) || Find.TickManager.TicksGame < this.lastKeepDisplayTick + this.KeepDisplayingTicks);
            }
        }

        public override void ExposeData()
        {
            base.ExposeData();
            Scribe_Values.Look<float>(ref this.energy, "energy", 0f, false);
            Scribe_Values.Look<int>(ref this.ticksToReset, "ticksToReset", -1, false);
            Scribe_Values.Look<int>(ref this.lastKeepDisplayTick, "lastKeepDisplayTick", 0, false);
        }

        [IteratorStateMachine(typeof(ShieldBelt.< GetWornGizmos > d__26))]
        public override IEnumerable<Gizmo> GetWornGizmos()
        {
            while (true)
            {
                int num;
                IEnumerator<Gizmo> enumerator;
                switch (num)
                {
                    case 0:
                        enumerator = this.<> n__0().GetEnumerator();
                        goto Block_2;
                    case 1:
                        goto IL_67;
                    case 2:
                        goto IL_BD;
                }
                break;
                Block_2:
                try
                {
                    IL_6F:
                    if (!enumerator.MoveNext())
                    {
                        goto JumpOutOfTryFinally-3;
                    }
                    Gizmo current = enumerator.Current;
                    yield return current;
                    continue;
                    IL_67:
                    goto IL_6F;
                }
                finally
                {
                    if (enumerator != null)
                    {
                        enumerator.Dispose();
                    }
                }
                JumpOutOfTryFinally - 3:
enumerator = null;
                if (Find.Selector.SingleSelectedThing != base.Wearer)
                {
                    goto IL_C4;
                }
                yield return new Gizmo_EnergyShieldStatus
                {
                    shield = this
                };
            }
            yield break;
            IL_BD:
            IL_C4:
            yield break;
        }

        public override float GetSpecialApparelScoreOffset()
        {
            return this.EnergyMax * this.ApparelScorePerEnergyMax;
        }

        public override void Tick()
        {
            base.Tick();
            bool flag = base.Wearer == null;
            if (flag)
            {
                this.energy = 0f;
            }
            else
            {
                bool flag2 = this.ShieldState == ShieldState.Resetting;
                if (flag2)
                {
                    this.ticksToReset--;
                    bool flag3 = this.ticksToReset <= 0;
                    if (flag3)
                    {
                        this.Reset();
                    }
                }
                else
                {
                    bool flag4 = this.ShieldState == ShieldState.Active;
                    if (flag4)
                    {
                        this.energy += this.EnergyGainPerTick;
                        bool flag5 = this.energy > this.EnergyMax;
                        if (flag5)
                        {
                            this.energy = this.EnergyMax;
                        }
                    }
                }
            }
        }

        public override bool CheckPreAbsorbDamage(DamageInfo dinfo)
        {
            bool flag = this.ShieldState > ShieldState.Active;
            bool result;
            if (flag)
            {
                result = false;
            }
            else
            {
                bool flag2 = dinfo.Def == DamageDefOf.EMP;
                if (flag2)
                {
                    this.energy = 0f;
                    this.Break();
                    result = false;
                }
                else
                {
                    bool flag3 = dinfo.Def.isRanged || dinfo.Def.isExplosive;
                    if (flag3)
                    {
                        this.energy -= dinfo.Amount * this.EnergyLossPerDamage;
                        bool flag4 = this.energy < 0f;
                        if (flag4)
                        {
                            this.Break();
                        }
                        else
                        {
                            this.AbsorbedDamage(dinfo);
                        }
                        result = true;
                    }
                    else
                    {
                        result = false;
                    }
                }
            }
            return result;
        }

        public void KeepDisplaying()
        {
            this.lastKeepDisplayTick = Find.TickManager.TicksGame;
        }

        private void AbsorbedDamage(DamageInfo dinfo)
        {
            SoundDefOf.EnergyShield_AbsorbDamage.PlayOneShot(new TargetInfo(base.Wearer.Position, base.Wearer.Map, false));
            this.impactAngleVect = Vector3Utility.HorizontalVectorFromAngle(dinfo.Angle);
            Vector3 loc = base.Wearer.TrueCenter() + this.impactAngleVect.RotatedBy(180f) * 0.5f;
            float num = Mathf.Min(10f, 2f + dinfo.Amount / 10f);
            FleckMaker.Static(loc, base.Wearer.Map, FleckDefOf.ExplosionFlash, num);
            int num2 = (int)num;
            for (int i = 0; i < num2; i++)
            {
                FleckMaker.ThrowDustPuff(loc, base.Wearer.Map, Rand.Range(0.8f, 1.2f));
            }
            this.lastAbsorbDamageTick = Find.TickManager.TicksGame;
            this.KeepDisplaying();
        }

        private void Break()
        {
            SoundDefOf.EnergyShield_Broken.PlayOneShot(new TargetInfo(base.Wearer.Position, base.Wearer.Map, false));
            FleckMaker.Static(base.Wearer.TrueCenter(), base.Wearer.Map, FleckDefOf.ExplosionFlash, 12f);
            for (int i = 0; i < 6; i++)
            {
                FleckMaker.ThrowDustPuff(base.Wearer.TrueCenter() + Vector3Utility.HorizontalVectorFromAngle((float)Rand.Range(0, 360)) * Rand.Range(0.3f, 0.6f), base.Wearer.Map, Rand.Range(0.8f, 1.2f));
            }
            this.energy = 0f;
            this.ticksToReset = this.StartingTicksToReset;
        }

        private void Reset()
        {
            bool spawned = base.Wearer.Spawned;
            if (spawned)
            {
                SoundDefOf.EnergyShield_Reset.PlayOneShot(new TargetInfo(base.Wearer.Position, base.Wearer.Map, false));
                FleckMaker.ThrowLightningGlow(base.Wearer.TrueCenter(), base.Wearer.Map, 3f);
            }
            this.ticksToReset = -1;
            this.energy = this.EnergyOnReset;
        }

        public override void DrawWornExtras()
        {
            bool flag = this.ShieldState == ShieldState.Active && this.ShouldDisplay;
            if (flag)
            {
                float num = Mathf.Lerp(1.2f, 1.55f, this.energy);
                Vector3 vector = base.Wearer.Drawer.DrawPos;
                vector.y = AltitudeLayer.MoteOverhead.AltitudeFor();
                int num2 = Find.TickManager.TicksGame - this.lastAbsorbDamageTick;
                bool flag2 = num2 < 8;
                if (flag2)
                {
                    float num3 = (float)(8 - num2) / 8f * 0.05f;
                    vector += this.impactAngleVect * num3;
                    num -= num3;
                }
                float angle = (float)Rand.Range(0, 360);
                Vector3 s = new Vector3(num, 1f, num);
                Matrix4x4 matrix = default(Matrix4x4);
                matrix.SetTRS(vector, Quaternion.AngleAxis(angle, Vector3.up), s);
                Graphics.DrawMesh(MeshPool.plane10, matrix, HellfireBattleArmor.BubbleMat, 0);
            }
        }

        public bool AllowVerbCast(IntVec3 root, Map map, LocalTargetInfo targ, Verb verb)
        {
            return !(verb is Verb_LaunchProjectile);
        }
    }
}


#2
Rah's Vanilla Turrets Expansion [Rimworld 1.3 / Royalty / Ideology DLC]

A small vanilla friendly mod that adds 9 unique turret variations, ready to defend your colony from merciless raids and attacks. Raids in Rimworld 1.3 have become quite difficult to deal with due to increased breaching and sapper tools/tactics. This mod tackles that problem head on with strong new turrets for the mid and late game.

RVTE is a direct rebalance project and 'successor' to the old classic 'More Vanilla Turrets' mod. This version has been rebalanced to make the gameplay experience more in tune with the vanilla game. Major changes include build materials and rearming costs, more realistic rearming materials, tweaking of stats, an all new powerful armor-piercing cannon for difficult mech raids, and more.

Main features:

- Features 8 turrets and 1 special mortar weapon. Some turrets have both automatic and manned versions, giving a total turret number of 14.
- Significant rebalancing of material and rearming costs for better gameplay value. Players can no longer spam turrets with endless ammo, thus making the game more challenging and fun.
- No more 5 steel to rearm a powerful sniper turret, or infinite ammo super mortars.
- Turrets are strong and capable, but they need to be managed wisely due to vanilla-like rearming costs.
- Charge cannon added with v2.1. High precision, and deadly armor piercing turret. Expensive to build and maintain. (New RVTE turret !)
- Many of the standard gun turrets take approx 100 steel to rearm, or more.
- Rocket complex takes high-explosive shells; 5 for 10 rockets.
- Precision turret accuracy fixed. It's now a lethal sniper platform in the right hands.
- Blast turrets take frag grenades instead of steel. 4 frags for 40 rounds.
- Devastator mortar takes plasma power cells for rearming the plasma reactor. 1 cell for 20 rounds. Made at the Fabrication bench.
- Manned turrets cost the same as automatic turrets. They still have more range and accuracy, but the operator is more exposed with around 40% cover on most turrets.
- Research nodes sorted.
- Better descriptions.
- Removed moat floor due to balance.
- Continued tweaking and balance work.
- To get you in the mood ! https://www.youtube.com/watch?v=DRAlWtadQRc

Rah's Vanilla Turrets Expansion (WORKSHOP LINK)



Gun complex

A perimeter mounted gun designed to work without power. Simple and reliable as long as someone is manning it. Gives good cover, and it never explodes.

Stats:
Style: Continuous fire
Barrel: 150 rounds
Range: 32
Rearm: Steel

Rocket complex

An older class of rocket weapon that requires manual control and reload. Fortunately, with the help of decent optics and deadly blast radius its presence is still dreaded on the front lines. Makes efficient use of high-explosive shells. Gives good cover.

Stats:
Style: Slow continuous fire
Barrel: 10 rockets
Range: 55
Rearm: High-explosive shells (5)

Sentry gun

A more powerful variant of an automated turret. Longer dual barrels provide increased accuracy, and greater burst. A staple weapons platform in any large colony.

Stats:
Style: Burst fire (3)
Barrel: 150 rounds
Range: 30 auto, 38 manned
Rearm: Steel

Shredder turret

Shredder turret is designed for close range. It doesn't explode when destroyed, thus making it a perfect choice for indoor defense. The only downside is its rather large size.

Stats:
Style: Burst fire (5)
Barrel: 80 rounds
Range: 20 auto, 25 manned
Rearm: Steel

Precision turret

A highly calibrated gun turret with high armor penetration. Advanced optics allows it to deliver precise single shots at long distances.

Stats:
Style: Slow continuous fire
Barrel: 40 rounds
Range: 50 auto, 55 manned
Rearm: Steel

Blast turret

Blast turret is designed for close range area damage, and it does so by launching a burst of 3 frag grenades at a time. Beware of friendly fire.

Stats:
Style: Burst fire (3)
Barrel: 40 grenades
Range: 20 auto, 25 manned
Rearm: Frag grenades (4)

Vulcan cannon

Fortified minigun tower that fires hundreds of rounds continuously until ammo depletion. A rare sight to behold, the vulcan cannon can usually only be found in wealthy urbworld settlements.

Stats:
Style: Continuous fire
Barrel: 800 rounds
Range: 46 auto, 48 manned
Rearm: Steel

Charge cannon

A heavy pulse charged rail-assisted weapon turret. It fires high precision armor-piercing projectiles every second continuously until the barrel breaks down. Meant for heavily armored targets. It requires a large amount of plasteel to restore.

Stats:
Style: Continuous fire
Barrel: 40 rounds
Range: 50
Rearm: Plasteel (80)

Devastator mortar

A magnetic mortar weapon that launches plasma projectiles with great velocity and accuracy. It also has a large blast radius thanks to its burst of five shells. Comes with an integrated plasma reactor that fuses EMP and explosive shells into reactive plasma projectiles. -- Requires the plasma power cell to function.

Stats:
Style: Mortar burst fire (5)
Barrel: 20 plasma rounds
Range: 500
Rearm: Plasma power cell (1)

Extras:

- Rah's Bionics and Surgery Expansion: My bionics and surgery mod.

If you have any suggestions or find something wrong, feel free to let me know !

Credit goes to Marn for his original mod and turrets, and legodude17 for the 1.1 update.

Steam locks all mods in the workshop to 4 stars until around 200 ratings have been accumulated. So if you like this mod, don't hesitate to give it a thumbs up !

Enjoy <3
#3
Help / Adding custom bionic eye graphics?
July 30, 2021, 03:47:41 PM
Hi, so it's currently possible to add your own textures to the vanilla bionic eye and archotech eye in Textures/Things/Pawn/Wounds. You can add your own png as BionicEye_south.png. BUT, if you want to add something like an advanced bionic eye file, or anything else than the vanilla eyes, it doesn't appear in-game. Is it possible to add without a bunch of assembly nonsense? Thanks !
#4
Help / PatchOperationFindMod failed
May 27, 2020, 03:45:11 PM
edit: Just found out that it was apparently just the Psychic Silencer that had been removed, so it threw an error in the file. Feel free to remove this thread. Thanks

Hi, after the latest update this patching no longer works:

<Operation Class="PatchOperationFindMod">
    <mods>
        <li>Royalty</li>
    </mods>
    <match Class="PatchOperationAdd">
        <xpath>*/HediffDef[defName = "StoneskinGland"]</xpath>
        <value>
<defaultLabelColor>(188,39,242)</defaultLabelColor>
    </value>
    </match>
</Operation>


Anyone know how to fix that? Is Royalty now set to something else?

Thanks
#5
Help / [Solved] Patch operation for Base Def
March 01, 2020, 05:30:41 PM
Hi,

I'm trying to add graphicData with a texPath to BodyPartProstheticImperialBase. Does anyone know how to do this? For some reason there's no texPath in the new Royalty bionic stuff. I want to add some custom textures.

<Operation Class="PatchOperationFindMod">
    <mods>
        <li>Royalty</li>
    </mods>
    <match Class="PatchOperationSequence">
    <operations>
    <li Class="PatchOperationAdd">
        <xpath>*/ThingDef[defName = "BodyPartProstheticImperialBase"]</xpath>
        <value>
<graphicData>
<texPath>Things/Item/BodyPart/Bionic</texPath>
<drawSize>0.90</drawSize>
</graphicData>
    </value>
    </li>
    </operations>
    </match>
</Operation>
#6
Help / [Solved] Patch operations only for Royalty DLC
February 29, 2020, 08:26:59 AM
Is there a way to make patch operations and changes to values only for Royalty, so players without the DLC won't get tons of errors when entering the game?

Thanks !
#7
Help / [Solved] get_Part()
February 28, 2020, 10:04:58 AM
using RimWorld;
using System.Collections.Generic;
using Verse;

namespace ScarRemoving
{
    public class Recipe_RemoveHediff_noBrain : Recipe_RemoveHediff
    {
        public override IEnumerable<BodyPartRecord> GetPartsToApplyOn(Pawn pawn, RecipeDef recipe)
        {
            List<Hediff> hediffs = pawn.health.hediffSet.hediffs;
            int num;
            for (int i = 0; i < hediffs.Count; i = num + 1)
            {
                bool flag = hediffs[i].get_Part() != null;
                if (flag)
                {
                    bool flag2 = hediffs[i].def == recipe.removesHediff && hediffs[i].get_Part().def.defName != "Brain";
                    if (flag2)
                    {
                        yield return hediffs[i].get_Part();
                    }
                }
                num = i;
            }
            yield break;
        }
    }
}


So basically I get an error at get_Part(). "Hediff.Part.get': cannot explicitly call operator or accessor". Anyone know which reference must be included to make that part work?

Thanks.
#8
Help / any C# coders able to help out?
August 16, 2019, 08:04:15 AM
Hi, how would you go about making a mod setting button that makes you use a different file in your mod, instead of another one? Like, activate this file while simultaneously deactivating another file, so that it will not be used in the mod.

Or, if that doesn't work, make a mod setting button that deactivates a certain section of xml coding in a file. on/off

thanks !
#9
Bugs / [A17] Custom Mod Sounds only play once
May 29, 2017, 11:13:34 PM
I've been scratching my head trying to get a sound file to play every time a pawn operates a certain workbench. But the sound only plays once, and when you cancel the project or let the pawn finish, and then start a new job on that same workbench, the sound is gone. It will not return unless you reload the save. All the other vanilla tables have their own sound which repeats every time you start working on them.

I've tried to tinker around with the XML code, but to no avail. This is how the code looks like now:

<?xml version="1.0" encoding="utf-8"?>
<DefPackage-SoundDef>

  <SoundDef>
    <defName>RBSESound</defName> 
    <sustain>True</sustain> 
    <context>MapOnly</context>
    <eventNames/> 
    <priorityMode>PrioritizeNearest</priorityMode> 
    <subSounds>
      <li>
        <muteWhenPaused>True</muteWhenPaused>     
        <grains>
          <li Class="AudioGrain_Folder">
            <clipFolderPath>RBSESound</clipFolderPath>
          </li>
        </grains>     
        <volumeRange>
          <min>10</min>       
          <max>10</max>
        </volumeRange>     
        <pitchRange>
          <min>0.9541177</min>       
          <max>1.091765</max>
        </pitchRange>     
        <sustainLoop>False</sustainLoop>
      </li>
    </subSounds>
  </SoundDef>
 
</DefPackage-SoundDef>


Steps to reproduce:
1: Put the mod into the mod folder. LINK
2: Start up a game, enter god mod and place a "Bionic Workbench" down, with electricity connection.
3: Get a pawn to make any of the simple prosthetic parts. (sound file is linked to them, and should play once)
4: Let the pawn finish or just cancel the job and bill.
5: Start a new job on the same workbench. No sound, until the save is reloaded.
#10
Bugs / [0.17.1541] Regular medicine too powerful?
May 17, 2017, 01:53:49 PM
Regular medicine now has a potency of 1. I've tried to install bionic parts 15-20 times with regular medicine in a very dirty hospital room full of vomit, blood and dirty things. I can't seem to get a failure. Is this intended? The doctor was lvl 10.

100% vanilla, no mods.

edit: finally got a failure, but as I've reported on in another bug thread, the failure resulted in death ( decapitation ).
https://ludeon.com/forums/index.php?topic=32527.0
#11
When you create a XML file with a surgery recipe and set the "deathOnFailedSurgeryChance" to something very small like 0.01%, the patient will die like 80% of the time, IF the surgery fails. The doctor used is rested, healthy and lvl 15. The room is sterile and when you click on the bed it says 110% surgery success chance. Regular medicine is used. Surgery success is coded to 90%. The code will look something like this:

<surgerySuccessChanceFactor>0.9</surgerySuccessChanceFactor>
      <deathOnFailedSurgeryChance>0.1</deathOnFailedSurgeryChance>
      <recipeUsers>
         <li>Human</li>
      </recipeUsers>
   </RecipeDef>

This is a code snippet from my mod which seems to work fine in A16. If the surgery fails, isn't death supposed to be 1% here? And finally, decapitations seem to be very common in A17 with surgeries, traps and other things.

edit: this seems to be a thing in vanilla too, so it would be great if you could check that out.
#12
- When drafting and pressing B on a target outside the gun range the colonist will just freeze until you manually move him.

Moderator's edit (Calahan) - This was originally posted in the A17 feedback thread. I split the post off, gave it an appropriate title, and moved it to bugs because it is a bug report and not feedback.
#13
Bugs / [A16] Soil Walk Speed bug?
March 26, 2017, 03:53:33 AM
Soil walk speed is 87% and stone walk speed like granite and marble is 93%. The difference seems small on paper, but in reality it's night and day. This is made very apparent with bionic pawns. One of my colonists has 195% Moving stat, yet he moves almost as slow as regular pawns on the grass / soil, but starts flying past everyone else on a stone surface, like he should be doing everywhere. Why do they slow down to a crawl on soil surfaces when movement speed is reduced just by 6%?

1: Increase Moving stat by as much as possible to make it easier to see the difference. (bionic mods make it easier, like epoe, rbse etc)
2: Test the colonist speed on soil and stone surfaces and see for yourself.

Edit: I didn't know the tall grass slowed them down this much, but it looks like it does. It's a bit confusing since it says walk speed 87% with and without the grass, but it's not really a bug I guess.
#14
Hi guys. Pick your storyteller and difficulty. And try to be honest ! Feel free to state below why you play with that specific storyteller / difficulty.
#15
Rah's Hardcore Armors - v2.3 [Rimworld 1.3 / Royalty / Ideology DLC]


Ever wish you had access to something stronger and cooler looking than the default power armor? Late game raids on higher difficulties can get quite massive, and sometimes the regular old vanilla armor just doesn't cut it. This small mod adds two advanced power armor sets with integrated forcefields. It can be used by both melee and ranged. Protect your colony with this very powerful glitterworld power armor.





Hellfire / Goliath battlearmor:

Advanced glitterworld battlearmor capable of absorbing tremendous punishment. Usually worn by hardened veterans and ex-convicts on urbworld frontlines. Comes with an integrated forcefield and exoskeleton which provide additional defense and agility.

Stats (normal quality):
- 600 hp
- 110% Sharp armor rating.
- 50% Blunt armor rating.
- 60% Heat armor rating.
- 80 Force field power.
- -20% Movement speed.
- High resistance to heat and cold.
- Moderate reduction to work speed.
- Costs 120 plasteel, 50 Uranium and 8 advanced components.
- Can be used by both ranged and melee !

Hellfire / Goliath power helmet:

Advanced power armor helmet used in conjunction with the hellfire / goliath battlearmor. Mainly used by heavy frontline troops, usually on urbworlds.

Stats (normal quality):
- 280 hp
- 110% Sharp armor rating.
- 50% Blunt armor rating.
- 60% Heat armor rating.
- Costs 80 plasteel, 2 advanced components and 5 Uranium.


DOWNLOADS:

Rah's Hardcore Armors - 2.3 (STEAM WORKSHOP)


Additional info:
- You should only make this armor with a high level crafter/smith to maximize chances of getting a high quality result !
- Check out my other mod: RBSE, a vanilla friendly bionics and surgery mod !
- Rah's Vanilla Turrets Expansion: New rebalanced turret mod for Rimworld 1.3 with 9 strong turrets for the mid and late game !

Hope you like it, and feel free to comment and give feedback !
#16
Bugs / [0.16.1393] Colonist Head Type Texture Bug
January 24, 2017, 06:38:58 AM
Hi guys, I've been working on some new helmet and armor textures and I've noticed a weird bug in-game. Some colonists will get bad helmet texture quality and some will not, with the same helmet file.

Steps to reproduce:
1: Add helmet Def file and helmet textures into the mod folder. (will attach these if needed)
2: Launch RimWorld version: "0.16.1393" and create new colony.
3: Spawn several pawns and put helmets on everyone.

Actual Result: Some colonists will have the proper textures on their helmets, and some will have pixelated and bad texture quality on theirs. I've tested some head types several times and it appears to just be random who gets the pixelated helmets. The bad quality appears on all sides; front, back and sides. It could have something to do with the combination of body type and head type, but I'm not sure.

Expected Result: All head types should get the same helmet texture quality. I'm not sure why this is happening.

Additional Information: I can attach the def and texture folder if you want to see for yourself. To start with, here's a screenshot (not the best quality, but it's visible). Right side colonists look good, left does not. Any idea what causes this?

[attachment deleted by admin due to age]
#17
Rah's Bionics and Surgery Expansion - v3.3 [Rimworld 1.5 / Royalty / Ideology DLC]


Hello fellow rimworlders ! This mod aims to enrich the bionics and surgery gameplay as much as possible, without being intrusive to the vanilla experience. While originally intended to be a streamlined and 'improved' version of Expanded Prosthetics and Organ Engineering, which it still is to some degree, it is now also a standalone and complete medical mod. This mod features all kinds of prostheses and bionic parts, bone repairs and scar healing surgeries, for your needs.

Your colonists will, however, struggle for a while if they lose limbs or become severely crippled in the early game, until you manage to craft the rare and expensive bionic parts. You can still make simple prostheses and repair shattered bones relatively fast after researching it, but the resource cost is quite high for most things. Peg legs, wooden feet and dentures are of course always available for free. ;-) Early colony life was never easy !

- Rah's Bionics and Surgery Expansion: The normal version is a bit more 'fair', in terms of resource costs, compared to the Hardcore Edition. Great for medium difficulties, especially on Randy and Phoebe. Link below.
- RBSE Hardcore Edition: This version has higher resource costs, and is therefore best suited for players who are looking for a bigger challenge. Works great on the harder difficulties, especially with Cassandra. Link below.

-- RBSE is a standalone bionics and surgery mod. Do not install RBSE with EPOE --

Main features:

- Bionic Workbench: craft an array of bionic prostheses. (simple parts available at a machining table)
- Advanced Medical Station: craft advanced bionic prostheses, synthetic organs and brain implants.
- Bone repairs for femurs, tibias etc. (spinal fusion included)
- Old scars and gunshot wounds can be cured with Glitterworld medicine after research. (brain scars must be cured in other ways)
- Cures for Frailty, Sleeping sickness, Muscle parasites, Mechanites, Gut worms and other infections. (Late game tech)
- All bionic parts cost quite a bit of resources, mainly in plasteel and components. (ex: 1 bionic arm costs 80 plasteel and 6 components..)
- Most simple prosthetic parts cost steel and components. (ex: 1 simple prosthetic arm costs 120 steel and 4 components.)
- Balanced bionic parts: Decked out bionic pawns are powerful, but not game breakingly overpowered.
- Organ rejection system for natural organ transplants. (vanilla friendly) (can be toggled on/off in mod settings)
- Organs need refrigeration to avoid rot and decay.
- 3 new chronic diseases: Chronic kidney disease, congenital heart defect, chronic stomach disorder.
- 3 new brain implants for the late game. Enhancing effects and brain disease / damage cures.
- Bionics and surgery research tree with its own research tab.
- 3 implant colors: Light blue for simple parts, blue for bionics and purple for advanced parts.
- Medicine and Glitterworld Medicine have original red colors from A16.
- White textures for Royalty parts to better fit the medical theme.
- Death Acidifiers can be removed after researching Advanced Bionics.
- More subtle graphics for Bionic and Archotech eye.
- Redundancy kept to a minimum.
- Bug fixes and balance work.

EXTRAS:
- RBSE parts spreadsheet: All RBSE part values.
- Rah's Vanilla Turrets Expansion: New rebalanced turret mod for Rimworld 1.3 with 9 strong turrets for the mid and late game !
- A Dog Said Link: 100% compatible with RBSE, no patch needed.
- Alien race patches available on the forum or steam.
- Hardcore Armors: Advanced power armor mod for 1.3.

DOWNLOADS:

Rah's Bionics and Surgery Expansion - 2.9 (STEAM WORKSHOP)

RBSE Hardcore Edition - 2.9 (STEAM WORKSHOP)







Big thanks to Ykara for his EPOE mod, Minus for his Extended Surgery mod, and kaptain_kavern and Aristocat for some of the coding / inspiration. Also thanks to all the people who have offered feedback and suggestions. And a big thanks to Haplo and K for their dll files.

Translations:

- Special thanks to Ghrull for the SPANISH translation
- Special thanks to Well for the RUSSIAN translation
- Special thanks to AmUnRA for the GERMAN translation
- Special thanks to Duduluu for the CHINESE translation
- Special thanks to MilSu-UpZa for the KOREAN translation
- Special thanks to Jozay for the FRENCH translation
- Special thanks to Cpl.Hicks for the POLISH translation



If you like this mod, don't hesitate to give it a thumbs up ! And if you're feeling generous, feel free to donate a coffee in the link above ! Enjoy <3

Changelog:

3.3 - Rah's Bionics and Surgery Expansion

* Updated for Rimworld 1.5

3.2 - Rah's Bionics and Surgery Expansion

* Luciferium now also cures RBSE chronics.
* Joywire and panstopper require neuroscience research.

3.1 - Rah's Bionics and Surgery Expansion

* Updated for Rimworld 1.4

3.0 - Rah's Bionics and Surgery Expansion

* New research node; Nanomedicine. Can cure Frailty, Sleeping sickness, Muscle parasites, Mechanites, Gut worms and other infections.
* Neurostimulator has no negative side effects. Cures dementia, alzheimer's and brain damage.

2.9 - Rah's Bionics and Surgery Expansion

* Royalty research nodes now match better with RBSE research.
* Death acidifiers can now be removed after researching Advanced bionics.

2.8 - Rah's Bionics and Surgery Expansion

* Updated for 1.3 and Ideology.

2.7 - Rah's Bionics and Surgery Expansion

* Changed synthetic liver to part efficiency instead of an offset
* Made patch file for new chronic illnesses to eliminate potential mod conflict. (thanks to Kopp)

2.6 - Rah's Bionics and Surgery Expansion

* Updated for 1.2

2.5 - Rah's Bionics and Surgery Expansion

* Now possible to install bought / found bionics with less research.
* Minor stat tweaks.

2.4 - Rah's Bionics and Surgery Expansion

* Updated for 1.1. Compatible with Royalty DLC.
* Balance changes and minor tweaks.
* New bionic parts textures to match their vanilla counterparts.
* New white textures for Royalty parts to better fit the medical theme.

2.3 - Rah's Bionics and Surgery Expansion

* Neurostimulator buff; now no longer gives mental breaks.
* Joywire and Painstopper are now cheaper to make.

2.2 - Rah's Bionics and Surgery Expansion

* New market values.
* Balance work and fixes.
* Removed synthetic organ adaption. (conflicted with rez. serum)
* Fixed bug where smithing recipes would be set to crafting.
* Bionic tables now glow.

2.1 - Rah's Bionics and Surgery Expansion

* Included mod settings button for RBSE.
* Can now toggle on/off active organ rejection.

2.0 - Rah's Bionics and Surgery Expansion

* Updated for Rimworld 1.0 !
* Simple prosthetic parts can now be made at the Machining table after researching Anatomy and physiology.
* Anatomy and physiology research now requires only Machining research.
* Power claw can now be made after Bionics research.
* Balance work and fixes.

1.91 - Rah's Bionics and Surgery Expansion

* New workbench textures !
* 2 new brain implants: Hyporegulator and Cortexaugmentor.
* Bionic parts no longer require simple prosthetics parts.
* Balance tweaks to market prices and recipes.
* RBSE Lite Edition is now the normal version.

1.9 - Rah's Bionics and Surgery Expansion
* Updated for B19.
* 3 new chronic diseases added: Chronic kidney disease, congenital heart defect, chronic stomach disorder.
* Vanilla prosthetics and bionics implemented into mod.
* Advanced and synthetic parts now require advanced components.
* Adaption system added for synthetic organs.
* Added ribcage repair.
* Added hook hand. Available through Smithing research.
* Vanilla prosthetic heart disabled.
* Archotech parts cannot be crafted, just like in vanilla.
* Spanish translation added. (thanks to Ghrull !)
* Balance tweaks.

1.83 - Rah's Bionics and Surgery Expansion
* Advanced bionic eyes added back in. Read forum post for more info.
* Advanced bionic item boxes are now dark purple.
* Russian translation added !

1.82 - Rah's Bionics and Surgery Expansion
* Tweaks to power arms; now more viable with better dps.
* Removed advanced bionic eye due to shooting accuracy nerf in vanilla.

1.81 - Rah's Bionics and Surgery Expansion
* Added more bone repair options(spinal fusion, humerus, radius, tibia, femur)
* Artificial bones can be used to repair most bones.
* Slight buff to the neurostimulator.
* Tweaks to organ rejection.

1.8 - Rah's Bionics and Surgery Expansion
* Updated for B18.

1.72 - Rah's Bionics and Surgery Expansion
* Pawns will now keep working at the workbenches if forced to.
* Frostbite cure now available after researching Regenerative medicine.
* Scar healing cost reduced to 3 glitterworld medicine in the hardcore version.
* Corrected some values for the synthetic stomach, lungs and bionic jaw.
* Corrected some values for the synthetic stomach, lungs and bionic jaw.
* Slight tweak to surgery success chance.

1.71 - Rah's Bionics and Surgery Expansion
* Small nerfs to advanced bionic spines and exoskeleton.
* Updated Korean translation and fixed other language issues.

1.7 - Rah's Bionics and Surgery Expansion
* Updated for A17 !
* New organ rejection system ! (natural organs)
* New research: Organ transplantation. (natural organs)
* Natural Organs will now rot away if not refrigerated.
* Synthetic Organs, although more durable, will eventually decay unless refrigerated.
* Hyperweave frequency increased to very rare, from almost non-existent in A17.
* Medicine and Glitterworld Medicine have original red colors.
* New item box colors for bionic parts and synthetic organs.
* All RBSE research moved to new tab: Bionics and Surgery.
* All parts will now deteriorate normally if outside/unroofed.
* Tweaks to balance/costs and textures.

1.62 - Rah's Bionics and Surgery Expansion
* Balance work; resource costs, market values, surgery time.

1.61 - Rah's Bionics and Surgery Expansion
* Curing scars and old wounds now has its own research; Regenerative medicine.
* Made some research texts a bit clearer.

1.60 - Rah's Bionics and Surgery Expansion
* NEW MOD NAME !
* New workbench textures !

1.59 - EPOE Hardcore Version
* Added back in: Old scars and gunshot wounds can now be cured with glitterworld medicine again, except for brain scars.
(Huge thanks to Haplo for his help.)

1.58 - EPOE Hardcore Version
* Removed glitterworld cures for old scars. Temporary at the moment, as I try to find a solution to a big balance issue.
* Corrected problem with neurostimulator. Now properly restores consciousness to brain damaged colonists.

1.57 - EPOE Hardcore Version
* Added Neurostimulator implant after a lot of requests. Restores/enhances consciousness. Also comes with negative side effects.
* Added Wooden foot, mainly for tribal players. Requires no research.
* Curing old scars now costs 2 glitterworld medicine. (still 1 in the LITE version)

1.56 - EPOE Hardcore Version
* Corrected research placement paths (thanks to Mehni for pointing it out)
* Corrected small visual duplicate glitch with vanilla parts.
* Peg legs and dentures are now in light blue, same as simple parts.
* Slight increase to component cost for some advanced parts.

1.55 - EPOE Hardcore Version
* Cleaned up files and version numbers.
* New Preview image for the mod.
* Mod added to Steam workshop.
* Slightly lowered bionic research costs to vanilla numbers.
* Corrected market values, and increased resource cost on synthetic organs.
* Workbenches now take more time to build

1.54 - EPOE Hardcore Version
* Rebalanced surgery success chance factors. Explained further on page 10 in the forum thread. (red writing)

1.53 - EPOE Hardcore Version
* Can now repair shattered clavicles (10 plasteel), ribs (30 steel) and sternums (40 steel) naturally.
* Fixed bug where pawns could install available bionic parts without research.
* Artificial pelvis cost slightly reduced.

1.52 - EPOE Hardcore Version
* Will continue updates without luciferium suppression from now on. not 100% happy with it after a lot of testing.

1.51 - EPOE Hardcore Version
* Slight cost reduction on artificial nose and bionic ear.
* Removed natural eye, ear, nose and jaw harvest to enhance the importance of the bionic parts, and because of redundancy. (page 8 for explanation)
* Synthetic stomach now gives bonus to metabolism.

1.5 - EPOE Hardcore Version
* Workbenches can now be moved/reinstalled.
* Added back rebalanced Luciferium suppression drug. Can only be obtained by crafting late game. Lasts over 30 days, with
reduced luciferium bonuses. Costs approx. half the price compared to luci dosages, and gives a small mood bonus.
* Bionic jaw now gives a bonus to eating.
* Natural limbs can be harvested and installed. Can break balance and be buggy, but included as an addon file.

1.41 - EPOE Hardcore Version
* Removed Luciferium suppression until further balancing/testing can be done.

1.4 - EPOE Hardcore Version
* Several balance tweaks and fixes
* Luciferium suppression drug now available;can be crafted after research. Gives users long term relief. (not a cure)

1.3 - EPOE Hardcore Version
* Small nerf to some bionic part bonuses. ex. advanced bionic arm manipulation down to 30% from 35%.

1.21 - EPOE Hardcore Version
* Hotfix; corrected bionic hand surgery error where you needed 3 bionic hands to start surgery.
* Fixed small issue with surgery success

1.2 - EPOE Hardcore Version
* Rebalanced market values on bionic parts
* Increased work time for bionic parts
* Reduced cost (mainly plasteel) for bionic parts. ex: 1 bionic arm is now 180 plasteel, 6 comp, 1 simple arm

1.1 - EPOE Hardcore Version
* Balance work and minor fixes
* Bionic surgeries require slightly more medicine
* Some bionic parts require slightly more components. ex: 1 bionic arm req 300 plasteel, 8 components, 1 simple prosthetic arm