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

Messages - Jaxxa

#136
I was working on somthing like this a while ago, around A15 or A16 I think.
One of the main issues now is that you can have multiple maps so figuring out what one needs a screenshot taken of, also how does it work if you are on a different map.

So maybe it would have to be just a reminder for the player to goto the right map and take the screenshot themselves.

I might get around to looking at updating it at some stage, but probably not for a while.
#137
Mods / Re: [Mod Request] Firesuit
May 13, 2018, 07:14:06 PM
You could probably adapt the Shield Belt code to protect from Fire. Although I dont know about stopping panic, that might happen after they stop taking damage or you might need a Harmony patch.
#138
No problem, glad you got it working.

The .dll files are compiled from the C# source code.
#139
I have Good News and Bad News.

The Bad news is that ED-SafeTraps has been Depreciated, so I wont be updating it and don't advise anyone to start using it, that is why it has been removed from being linked in the first post.

The Good news is that the the functionality that it had is now available in ED-EnhancedOptions, including as you requested the ability to cover all friendlies (visitors and guests).
#140
I suspect that with 1.0 being a major release milestone it might take a bit longer than usual.

With 1.0 being the official release that is when people who don't like the bugs and half finished features of early access games will give it another look, not to mention reviews. So it is logical that this will want to be as bug free and polished as possible, so it could take longer than usual.
#141
It looks like it is an issue with the .dll files.
Can you try downloading them again from GitHub, making certain that you dont get the source code only versions.

They probably wont stop the game, but I doubt that any of the features added by those mods will work until the errors get fixed.
#142
Quote from: PerrytPL on May 01, 2018, 09:20:05 AM
I have a question about ED-Embrasure mod. Is it normal that while shooting through embrasure it takes damage? Because it's kind of annoying when my colonist are shooting through embrasure, and after 100 shots it completely brokes down :/  btw. i'm playing on zombieland mod too, so broken embrasure means certain death to my colonists)

It should only take damage when the Embrasure is hit, either by a Melee or Ranged Attack.
If you are shooting through it and the bullet is passing through the Embrasure there should be no damage.
If it is getting hit by a bullet it will take damage, but as far as I know that does not happen when colonist are right next to it and firing out.
#143
Help / Re: Harmony Patching Help
April 28, 2018, 02:00:59 AM
Cool, let me know if you want me to explain something.
#144
Help / Re: Harmony Patching Help
April 26, 2018, 11:19:51 PM
I cant help you with transpilers as I have not used them yet (and ideally would like to keep avoiding them), but are you certain that you cant use Prefixes / Postfixes to do what you want?
They are quite powerful and can be used to prevent the original method from running, although I have not looked at the specific code you want to change.

If you like I have a bunch of examples in one of my mods:
https://github.com/jaxxa/ED-EnhancedOptions
#145
Did you watch the trailer or just read the description and look at the screenshots?

I does not really come out well in the Description but from the trailer you are directly controlling a single character, so the game play does not look very similar to Rimworld.
#146
Glad you like the mods.

My current intention at this stage is to leave Cheat Reactor, Enhanced Options, Reverse Cycle Coolers and Embrasures as there own separate mods.

Most of the other ones deal with what I consider higher technology levels than the base game and will be merged into a single mod. The advantage of these ones is that they are adding new features and building that you can use rather than changing existing systems, so if you dont like Shields, OmniGell or LaserDrills it is easy to just not build anything related to that, leaving the rest of your game as it would be.
#147
Help / Re: How do I make a drop pod?
April 17, 2018, 09:02:56 PM
What .cs files?

I found some very old code that I had working with Droppods, its a few Alphas old at this point but it might help.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Verse;
using UnityEngine;
using RimWorld;

namespace Enhanced_Development.DropPod
{
    class Building_OrbitalRelay : Building
    {
        CompPowerTrader power;

        private static Texture2D UI_ADD_RESOURCES;
        private static Texture2D UI_ADD_COLONIST;
        private static Texture2D UI_DROPPOD;

        public bool DropPodDeepStrike;
        public bool DropPodAddUnits;
        public bool DropPodAddResources;

        public int DropPodAddUnitRadius;

        //private static List<List<Thing>> listOfThingLists = new List<List<Thing>>();
        private static List<Thing> listOfThings = new List<Thing>();

        //Dummy override
        public override void PostMake()
        {

            base.PostMake();
        }

        public override void SpawnSetup()
        {
            base.SpawnSetup();

            UI_ADD_RESOURCES = ContentFinder<Texture2D>.Get("UI/ADD_RESOURCES", true);
            UI_ADD_COLONIST = ContentFinder<Texture2D>.Get("UI/ADD_COLONIST", true);
            UI_DROPPOD = ContentFinder<Texture2D>.Get("UI/DEEP_STRIKE", true);

            this.power = base.GetComp<CompPowerTrader>();
            if (def is OrbitalRelayThingDef)
            {
                //Read in variables from the custom MyThingDef
                DropPodDeepStrike = ((Enhanced_Development.DropPod.OrbitalRelayThingDef)def).DropPodDeepStrike;
                DropPodAddUnits = ((Enhanced_Development.DropPod.OrbitalRelayThingDef)def).DropPodAddUnits;
                DropPodAddResources = ((Enhanced_Development.DropPod.OrbitalRelayThingDef)def).DropPodAddResources;
                DropPodAddUnitRadius = ((Enhanced_Development.DropPod.OrbitalRelayThingDef)def).DropPodAddUnitRadius;
            }
            else
            {
                Log.Error("OrbitalRelay definition not of type \"OrbitalRelayThingDef\"");
            }

        }
       
        public override IEnumerable<Gizmo> GetGizmos()
        {
            //Add the stock Gizmoes
            foreach (var g in base.GetGizmos())
            {
                yield return g;
            }

            if (this.DropPodAddResources)
            {
                Command_Action act = new Command_Action();
                //act.action = () => Designator_Deconstruct.DesignateDeconstruct(this);
                act.action = () => this.AddResources();
                act.icon = UI_ADD_RESOURCES;
                act.defaultLabel = "Add Resources";
                act.defaultDesc = "Add Resources";
                act.activateSound = SoundDef.Named("Click");
                //act.hotKey = KeyBindingDefOf.DesignatorDeconstruct;
                //act.groupKey = 689736;
                yield return act;
            }

            if (this.DropPodAddUnits)
            {
                Command_Action act = new Command_Action();
                //act.action = () => Designator_Deconstruct.DesignateDeconstruct(this);
                act.action = () => this.AddColonist();
                act.icon = UI_ADD_COLONIST;
                act.defaultLabel = "Add Colonist";
                act.defaultDesc = "Add Colonist";
                act.activateSound = SoundDef.Named("Click");
                //act.hotKey = KeyBindingDefOf.DesignatorDeconstruct;
                //act.groupKey = 689736;
                yield return act;
            }

            if (this.DropPodDeepStrike)
            {
                Command_Action act = new Command_Action();
                //act.action = () => Designator_Deconstruct.DesignateDeconstruct(this);
                act.action = () => this.DeepStrike();
                act.icon = UI_DROPPOD;
                act.defaultLabel = "DeepStrike";
                act.defaultDesc = "DeepStrike";
                act.activateSound = SoundDef.Named("Click");
                //act.hotKey = KeyBindingDefOf.DesignatorDeconstruct;
                //act.groupKey = 689736;
                yield return act;
            }
        }

        /*
        public override IEnumerable<Command> GetCommands()
        {
            IList<Command> CommandList = new List<Command>();
            IEnumerable<Command> baseCommands = base.GetCommands();
            if (baseCommands != null)
            {
                CommandList = baseCommands.ToList();
            }
            if (this.DropPodAddResources)
            {
                //Upgrading
                Command_Action command_Action_InstallShield = new Command_Action();
                command_Action_InstallShield.defaultLabel = "Add Resources";
                command_Action_InstallShield.icon = UI_ADD_RESOURCES;
                command_Action_InstallShield.defaultDesc = "Add Resources";
                command_Action_InstallShield.activateSound = SoundDef.Named("Click");
                command_Action_InstallShield.action = new Action(this.AddResources);
                CommandList.Add(command_Action_InstallShield);
            }
            if (this.DropPodAddUnits)
            {
                //Upgrading
                Command_Action command_Action_InstallShield = new Command_Action();
                command_Action_InstallShield.defaultLabel = "Add Colonist";
                command_Action_InstallShield.icon = UI_ADD_COLONIST;
                command_Action_InstallShield.defaultDesc = "Add Colonist";
                command_Action_InstallShield.activateSound = SoundDef.Named("Click");
                command_Action_InstallShield.action = new Action(this.AddColonist);
                CommandList.Add(command_Action_InstallShield);
            }
            if (this.DropPodDeepStrike)
            {
                //Upgrading
                Command_Action command_Action_InstallShield = new Command_Action();
                command_Action_InstallShield.defaultLabel = "DeepStrike";
                command_Action_InstallShield.icon = UI_DROPPOD;
                command_Action_InstallShield.defaultDesc = "DeepStrike";
                command_Action_InstallShield.activateSound = SoundDef.Named("Click");
                command_Action_InstallShield.action = new Action(this.DeepStrike);
                CommandList.Add(command_Action_InstallShield);
            }
            return CommandList.AsEnumerable<Command>();
        }
        */
        public void DeepStrike()
        {
            //List<Thing> thingList = new List<Thing>();
            //thingList.Add( ThingMaker.MakeThing(ThingDef.Named("MealNutrientPaste"),(ThingDef) null));
            //Building_OrbitalRelay.listOfThingLists.Add(thingList);

            //DropPodUtility.DropThingGroupsNear(this.Position, Building_OrbitalRelay.listOfThingLists);
            //Building_OrbitalRelay.listOfThingLists.Clear();

            if (Find.RoofGrid.Roofed(this.Position))
            {
                Messages.Message("Do you really think it is a good idea to use DropPods indoors?", MessageSound.RejectInput);
            }
            else
            {

                List<List<Thing>> listOfListOfThings = new List<List<Thing>>();

                foreach (Thing currentThing in Building_OrbitalRelay.listOfThings)
                {
                    List<Thing> newList = new List<Thing>();
                    newList.Add(currentThing);

                    listOfListOfThings.Add(newList);
                }

                DropPodUtility.DropThingGroupsNear(this.Position, listOfListOfThings);

                Building_OrbitalRelay.listOfThings.Clear();
            }
        }

        public void AddResources()
        {
            if (power.PowerOn)
            {
                Thing foundThing = Enhanced_Development.Utilities.Utilities.FindItemThingsInAutoLoader(this);

                if (foundThing != null)
                {
                    if (foundThing.SpawnedInWorld)
                    {
                        List<Thing> thingList = new List<Thing>();
                        //thingList.Add(foundThing);
                        Building_OrbitalRelay.listOfThings.Add(foundThing);
                        foundThing.DeSpawn();

                        //Building_OrbitalRelay.listOfThingLists.Add(thingList);


                        //Recursively Call to get Everything
                        this.AddResources();
                    }
                }
            }
            else
            {
                Messages.Message("Insufficient Power to add Resources",MessageSound.RejectInput);
            }
        }

        public void AddColonist()
        {
            if (power.PowerOn)
            {
                //Log.Message("CLick AddColonist");
                IEnumerable<Pawn> closePawns = Enhanced_Development.Utilities.Utilities.findPawnsInColony(this.Position, this.DropPodAddUnitRadius);

                if (closePawns != null)
                {
                    foreach (Pawn currentPawn in closePawns)
                    {
                        if (currentPawn.SpawnedInWorld)
                        {
                            Building_OrbitalRelay.listOfThings.Add(currentPawn);
                            currentPawn.DeSpawn();


                            /*
                            List<Thing> thingList = new List<Thing>();
                            thingList.Add(currentPawn);
                            Building_OrbitalRelay.listOfThingLists.Add(thingList);
                            currentPawn.DeSpawn();*/
                        }
                    }
                }
            }
            else
            {
                Messages.Message("Insufficient Power to add Colonist", MessageSound.RejectInput);
            }
        }

        //Saving game
        public override void ExposeData()
        {
            base.ExposeData();


            //Scribe_Deep.LookDeep(ref listOfThingLists, "listOfThingLists");

            Scribe_Values.LookValue<int>(ref DropPodAddUnitRadius, "DropPodAddUnitRadius");
            Scribe_Values.LookValue<bool>(ref DropPodDeepStrike, "DropPodDeepStrike");
            Scribe_Values.LookValue<bool>(ref DropPodAddUnits, "DropPodAddUnits");
            Scribe_Values.LookValue<bool>(ref DropPodAddResources, "DropPodAddResources");
               
            //Scribe_Collections.LookList<Thing>(ref listOfThingLists, "listOfThingLists", LookMode.Deep, (object)null);
            Scribe_Collections.LookList<Thing>(ref listOfThings, "listOfThings", LookMode.Deep, (object)null);

        }
    }
}
#148
Help / Re: How do I make a drop pod?
April 17, 2018, 07:48:36 PM
It does not really have any specific documentation.
Mostly it is decompiling the .dll file using ILSpy and figuring out how things work.
#149
Quote from: Canute on April 16, 2018, 03:34:52 AM
That is something i allways liked from the SIF, the repair function.
But i notice only a few buildings get covered, and repaired at this way. It should be expand to protect all structures.

Sure a repair ability from shield's are pretty stupid, maybe change the technology behind it.
Instead if an energy shield, it becomes Nanite shield layer, and the nanites can fill up scratches and repair at this way the structure.
So instead of a protection it is a repair building.


In the new combined mod I will probably be removing Repair from Shields, maybe i will add it back as a separate building.

Quote from: SunSeeker on April 17, 2018, 07:01:25 AM
Supreme Commander nostalgia with nanite shields repairing structures lol.

I personally love the idea of merging the mods. while there are some I dont use, I see no problem having them in the middle.

about the research, maybe you can change the level of any "level-up" tech, like mk replicator. I always find it strange to be a spacer tech while a neolitic tribe can plant the omnigel. maybe put the mk1 replicator as a medieval, mk2 as a industrial and finally mk3 as spacer.

Progression is one of the main things that I am looking at adding with the combined mod.