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 - Wivex

#1
Ideas / Fire spread mechanic
June 14, 2016, 08:49:31 AM
The ideal solution to the whole fire spread mechanic problem would be "fire potency parameter". Each type of igniter would have it's own initial fire potency (firebomb could have 100, boomrat explosion - 10). Each spawned fire seed gets fire potency from predecessor, but decreased by some balancing constant and the flammability of the material it lands on. This would make realistic fire spread mechanic, use flammability stat the way it should, and will prevent map burn outs. No need for any form of magic rain at all. Also, not really hard to implement.
#2




Introduction:

   This is an announcement topic of an overhaul/modpack mod called Rimworld Ascension (mentioned as RA further down). It has been in development for quite a while, but requires even more to work on. So, the purpose of this topic is to introduce it to the community as a raw concept, rather than present a playable build (although you can still download it and play, but it's content is very limited at the moment, and the mod itself has not been properly debugged and balanced yet. Furthermore, some not-yet-finished features has been cut off for this test build).


Description:

   The concept of RA is similar to other big overhaul mods, like Rimworld Revamped, Rimworld Forever, Project EONS and so on: long, slower paced gameplay of Rimworld, devided into technological stages, with unique gameplay and features for each tech stage. The difference is that i actually managed to implement most of the required game mechanics and features for such game concept to work. And many more...


Notable Implemented Features:

   Fully automatic containers, which work like stockpile, but allow to stack items. (A final form of Containers For Stuff)



   Improved version of ground caravans. Now with actual hauling jobs to bring colony goods to the trader and reworked trade system to make it work (no more magic distant trading with disappearing items). New caravan AI, carrier texture and trading post as a bonus.



   All not-bench-based jobs performed with tools (currently implemented for plant cutting, building/repair and mining). Pawns automatically pick up proper tools for their jobs, use them, return back to the stockpile or swap with previously hauled primary weapon, if they have backpack to store it. (A final form of Tools For Jobs)



   Improved version of fuel based benches. (I've finished it just before A13 release, so introduction of burners there was a funny coincidence. I've merged my initial burners functionality with A13 ones to get the final result)



   Igridient based research system. You study materials to aquire knowledge how to use them (performed at research table, as usual). Instant blueprint/book based researches as a bonus.



   Tons of other big and small changes/features/jobs/UI and things you can see for yourself. Almost all vanilla stuff removed. Here are some examples of content added so far:









Installation and Compatibility:

  •    It is meant to be played with Core only. Some other mods could work, but considering how many changes to Core this mod does, it's very unlikely. This mod already incorporated some other mods with various changes to them and that's how it intend to grow in the future. (All content from other mods is and will be added after permission from mod owners, of course)
  •    After you enabled the mod, you should create new world for it too.
  •    If you want to disable the mod or try to enable some other mods above it, reload the game after doing that.


F.A.Q.:

   RA lacks proper tips, tutor, alerts and messages atm, but they will be added soon. Here is a small guide for what you should do:

  •    Loot the ship wreck your crashed in to find the survival guide, which unlocks starting build options and researches.
  •    Check nearby crashed drop pods for tools, medicine and survival meals.
  •    In order to aquire more tools, you need to craft them (handaxe and hammer). That would require researching masonry and carpentry. You have no access to picks for mining yet, because mining is not meant to be available in Neolithic period. It's a feature that becomes available after researching smithing in Medieval.
  •    Explore various implementations to the game, but keep in mind that there is almost no content there so far. And you can't progress past neolithic period yet.


Contributors:


Used or Integrated Side Resources:


Changelog:

(23.05.16) 1.0.1: - fixed game breaking bug with crafting.

(22.05.16) 1.0: - announcement release.



Download:
#3
Guys, a word of advice please. Suppose, i want to reassemble the whole ThingFilter tree with my own ThingCategories. How can i do that, without detouring the TreeNode_ThingCategory and so on? I want it to be xml based, not purely defined in od assembly.
#4
Help / Casting faded shadows on stuff based objects
January 16, 2016, 10:30:22 AM
I've stumbled upon a problem with making my stuff based statues casting the same faded shadow as pawns and plants do. It works ok, unless my statues are made from stuff. Vanilla game having the same issue with plant pot made from stuff too, casting no shadow until the plant is growing there, meaning that plant is actually casting shadow, not pot. Any tips about it and is it solveable issue?
#5
Outdated / [A12d] [GUI] Work Presets (v1.1)
September 07, 2015, 05:13:52 PM
Description:

This mod adds new main UI tab with work presets which allows you to assign multiple job priorities to pawns with two clicks. Make micromanaging of your 20+ pawns' colony an easier routine.



Features and Behaviour:

       
  • Changes in already designated presets for pawns are made when you re-save those presets with the same name.
  • It should be compabile with any other mod which adds new jobs.

Changelog:

Version 1.1:
- Fixed a bug: compatibility issues with other mods due to unappropriate preset saving.


Downloads:

Credits:

       
  • Thanks to modding community for tips and advice.

[attachment deleted due to age]
#6
Help / Exposing and Scribing
August 29, 2015, 02:20:33 AM
I tried to deal with saving my data to the save file, but haven't made it work. I wanted to have my own databate (like OutfitDatabase) which could be carried through save\loads. The variables to be saved are:


public class PresetDatabase : IExposable
    {
        public static List<Preset> presetsList;
        public static Dictionary<Pawn, Preset> assignedPresets;

        public void ExposeData()
        {
            Scribe_Collections.LookList<Preset>(ref presetsList, "presetsList", LookMode.Deep, new object[0]);
            Scribe_Collections.LookDictionary<Pawn, Preset>(ref assignedPresets, "assignedPresets", LookMode.Deep, LookMode.Deep);
        }
    }


Where Preset is:


public class Preset : IExposable
    {
        public string name;
        public Dictionary<WorkTypeDef, int> priority;

        public Preset()
        {
            this.name = string.Empty;
            this.priority = new Dictionary<WorkTypeDef, int>();
        }

        public string Name
        {
            get
            {
                return name ?? string.Empty;
            }
            set
            {
                name = value;
            }
        }

        public void ExposeData()
        {
            Scribe_Values.LookValue<string>(ref name, "name", "unassigned", false);
            Scribe_Collections.LookDictionary<WorkTypeDef, int>(ref priority, "priority", LookMode.DefReference, LookMode.Value);
        }
    }


In result, i haven't got any errors, but neither any data saved (i checked the save file itself too). I've beed adviced to use MapComponents with it's own ExposeData method, but i want to get the understanding why i can't make my own class being exposeable. Could you help me here?
#7
Outdated / [A12] Containers For Stuff (v1.1.1)
August 12, 2015, 02:45:22 PM
Description:

This mod adds automated container prototypes to the game, which behave as multislotted stockpiles and require no micromanagement to operate.



Features and Behaviour:

       
  • Container is fully automatic. Build it, set storage properties and your pawns will know what to do.
  • It is compatible with trade beacons. You can sell items from inside.
  • It is compatible with any other mod that checks global items lists.
  • If you need a specific item from container storage, you can get it via container's items UI tab.

Known Issues:

       
  • From my knowledge, it's impossible to remove or cover individual stored item's labels.
  • Stored items textures are piled beneath the storage texture. It might be possible to remove them, but it's not in my priority for now.
  • Currently, it doesn't show stored items in colony's stock list. (Can't change vanilla UI)
  • Items freezed in the Fridge still show their state as not refrigerated, although they are kept preserved.
  • Simaltenious destruction of multiple fully stacked containers may cause game to stagger for a while on low grade PCs. Lots of calculations for item's scattering required.

Information for Modders and Enthusiasts:

       
  • This mod is a prototype and provide basic behaviour for the containers as a new class of furniture. If you want to contribute to expand this concept, i'll be glad to cooperate.
  • This mod expands the vanilla hauling system. If your mod do the same it could be not compatibile.
  • Containers use CompContainer component which can be added to any building of Building_Storage class. It has xml configured itemsCap property. (Values between 2 and 15 are adviced)
  • Any kind of feedback is welcome.

Changelog:

Hotfix 1.1.1:
- Fixed a bug: pawns unable to haul corpses.

Version 1.1:
- Fixed a bug: stored items being created anew and loose their properties.
- Fixed a bug: reshuffling items between different stockpiles and containers when storage priorities are changed now working properly.

- Container functionality is now granted by CompContainer, which can be added to any building of Building_Storage class. It has xml configured itemsCap property. (Values between 2 and 15 are adviced)
- Made container's items UI tab automatically resizeble, depending on ItemsCap property.
- Added new container type - Fridge. Restricted to store food and keeps it from spoiling. Requires power to operate.
- Freezing functionality is granted by CompRefrigerated which can be added to any building of Building_Storage class, with CompPowerTrader attached to it too.
- Some xml changes and optimization.


Downloads:
Credits:

       
  • Thanks to mrofa for textures from Clutter mod.
  • Thanks to Community Core Library for the source base for CompRefrigerated.
  • Thanks to Latta for adding the Korean language support.
  • Thanks to modding community for tips and advice.

[attachment deleted due to age]
#8
Outdated / [A11d] Tools For Jobs (v1.2)
August 04, 2015, 04:26:41 AM
Description:

This mod makes pawns to use tools to perform some of the jobs. No more tree punching.



Tested Compability:
Features and Behaviour:

       
  • Tools can be crafted on Tool Bench.
  • You start with 1 tool of each type by default.
  • Currently modded jobs are building/repairing (using hammers), plant cutting/harvesting (using handaxes), mining (using pickaxes).
  • Pawns cannot perform these jobs without tool.
  • Tools count as melee weapons, but substantially weak.
  • Pawns will automatically pick up tools, perform the corresponding jobs and haul tools on weapon stockpile, otherwise keep them.
  • If non tool weapon was equipped before starting a job, pawn will drop it, but keep reserved to pick up later automatically.
Changelog:

Version 1.2:
- Fixed a bug: colonists trying to repair graves and other non-intended buildings.
- Fixed a bug: made changes to the tool's def names so they don't cause any problems with any other similar def names (like "BuildingRubble" and "Building_Hammer").
- Made tools an exception for hunting job, so pawns won't go hunting with them.
- Replaced sparks animation for contructing and repairing of metal buildings to dust puffs, to be more realistic when building with hammer.
- Some xml optimizations and rebalancing.

Version 1.1:
- added drop pods on embark with 1 tool of each type (Edb Prepare Carefully compabile).
- fixed a bug: pawns not changing tools when no tool stockpile exist.


Downloads:
Credits:

[attachment deleted due to age]
#9
Help / Troubles with Job_Drivers
July 22, 2015, 07:17:00 AM
So, I'm making mod for auto using tools from RTFTJ for the corresponding jobs (auto picking them up, using and getting hauled to storage by pawns automatically). And stuck with writing my own Job_driver to do that.
To ease the coding i decided to call for vanilla jobs in my Job_Driver instead or writing my own toils from scratch. The scheme (not full code) for wood cutting with axes:

namespace ToolsForJobs
{
    public class JobDriver_PlantCut_WithTool : JobDriver
    {
        public JobDriver_PlantCut_WithTool() : base() { }

        protected override IEnumerable<Toil> MakeNewToils()
        {
            //Pick up Tool
            {
                Toil toilPickupTool = new Toil();
                toilPickupTool.initAction = () =>
                {
                    ...
                    pawn.jobs.jobQueue.EnqueueLast(new Job(JobDefOf.Equip, closestAvailableTool))
                }
                yield return toilPickupTool;
            }

            //Cut Tree
            {
                Toil toilCutTree = new Toil();
                toilCutTree.initAction = () =>
                {
                    ...
                    pawn.jobs.jobQueue.EnqueueLast(new Job(JobDefOf.CutPlant, closestAvailableTree))
                }
                yield return toilCutTree;
            }

            //Return Tool
            {
                Toil toilReturnTool = new Toil();
                toilReturnTool.initAction = () =>
                {
                    ...
                    pawn.jobs.jobQueue.EnqueueLast(HaulAIUtility.HaulToStorageJob(pawn, pawn.equipment.Primary as Thing))
                }
                yield return toilCutTree;
            }
      }
}


The problem here is that all toils initialize at the same time and checking acting pawn hands (to pick up an axe if pawn doesn't have it equipped and then check hands again to drop it) doesn't work because i can't trace pawn's status and equpment change while toils are executed. Meaning i will get the same pawn.equipment.Primary status in toilPickupTool and toilReturnTool even if it's really changed while Job_driver executes. How can i do that?