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

#1
Bugs / [0.18.1700] Recuring error message.
October 24, 2017, 12:57:24 PM
So I am playing pure vanilla game and suddenly this error message began to appear repeatedly.
This does not seem to have impact on the game however.

Here is the save.
https://www.dropbox.com/s/ou657qciqv6y8ga/vanilla%2018.1700%20nullreferenceexception%20savegame.zip?dl=0


System.NullReferenceException: Object reference not set to an instance of an object
  at Verse.RulePackDef.get_RulesImmediate () [0x00007] in C:\Dev\RimWorld\Assets\Scripts\Verse\Defs\DefTypes\RulePackDef.cs:53
  at Verse.Grammar.GrammarResolver.Resolve (System.String rootKeyword, GrammarRequest request, System.String debugLabel) [0x000f7] in C:\Dev\RimWorld\Assets\Scripts\Verse\Grammar\GrammarResolver.cs:212
  at RimWorld.NameGenerator.GenerateName (Verse.RulePackDef rootPack, System.Predicate`1 validator, Boolean appendNumberIfNameUsed, System.String rootKeyword) [0x000ff] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\Utility\NameGenerator.cs:50
  at RimWorld.Dialog_NamePlayerFactionAndBase..ctor (RimWorld.Planet.FactionBase factionBase) [0x0005c] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\UI\Dialogs\Dialog_NamePlayerFactionAndBase.cs:24
  at RimWorld.Faction.FactionTick () [0x00185] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\Planet\Faction\Faction.cs:164
  at RimWorld.FactionManager.FactionManagerTick () [0x00015] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\Planet\Faction\FactionManager.cs:65
  at RimWorld.Planet.World.WorldTick () [0x0002b] in C:\Dev\RimWorld\Assets\Scripts\RimWorld\Planet\World.cs:199
  at Verse.TickManager.DoSingleTick () [0x0015d] in C:\Dev\RimWorld\Assets\Scripts\Verse\Game\Ticking\TickManager.cs:303
Verse.Log:Error(String) (at C:\Dev\RimWorld\Assets\Scripts\Verse\Utility\Debug\Log\Log.cs:48)
Verse.TickManager:DoSingleTick() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Game\Ticking\TickManager.cs:304)
Verse.TickManager:TickManagerUpdate() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Game\Ticking\TickManager.cs:248)
Verse.Game:UpdatePlay() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Game\Game.cs:503)
Verse.Root_Play:Update() (at C:\Dev\RimWorld\Assets\Scripts\Verse\Global\Root\Root_Play.cs:74)
#2
Help / World view labels (Unity expert needed ?)
October 22, 2017, 12:13:19 PM
Hello.

I want to draw labels next to faction bases to show how much of a given good is sold at every locations. (unrelated to the upcoming A18 update).

I thought the easiest way is to use the existing method used to draw faction bases icons.
WorldRendererUtility.DrawQuadTangentialToPlanet()Problem is that this needs a Material object. and making Material from text makes the game stuttering horribly using this this workaround:
http://answers.unity3d.com/questions/513338/text-to-textureimage.html

Another is to use Widgets.Label()

However with this I cannot figure out how to make text draw at the correction position. (while DrawQuadTangentialToPlanet does all the math I really don't understand to do this. Involves matrix and stuff like that).I need to know how to find t he correction draw position based on WorldObject.DrawPos and camera position.

Hopefully someone can help !
#3
Manhunters animals will attack mechanoid, mechanoid will fight back ( maybe related, this once was not the case https://ludeon.com/forums/index.php?topic=29747.msg302067#msg302067).

But is this supposed to happen ?
I once had a crashed ship part that emited a pulse so all animals around become manhunters. And if mechanoids are deployed already, they will attack them ! wth..
I could not reproduce the ship pulse in dev mode but any manhunting animal will indeed seek for mechanoids and attack them.

#4
========= edit: Mod released =========

http://steamcommunity.com/sharedfiles/filedetails/?id=1169411104
soon on forum
https://ludeon.com/forums/index.php?topic=30708#msg313430

========= ========= ========= =========


I am working on a new mod that adds a new pod.
The MK1 Transport Pod.

The main point of this topic is to discuss the balance of this.

MK1 Poddoes not need a pod launcher and will not vanish when landing.

It can land anywhere on the world, and be used from the world map (no local map generated unless you land to one).
It has its own fuel tank and cargo.

You can land to a friendly outpost and trade with them. (this feature could be very OP...)

You can send the pods without anyone on board, but you will need to use your comm console to trade. Only possible with factions of tech level >= industrial .

Has enough fuel to go as far as a vanilla pod one way. (tbd).
It should use a little bit more fuel (3 per tile instead of 2.25) and perhaps an extra 10 for every trip (tbd).
The cargo size should be a little higher than the vanilla pod (180 instead of 150).
Building the pod costs 50 steel, 30 plasteel and 2 components (tbd).

The research required is the same as the vanilla pod.

Let me know what you think of this balance.
suggestions welcome !

https://github.com/Wishmaster01/Self.Launching.Pods
#5
This error is spammed as I have an important infestation going on.

Could not reserve Thing_Hive1299697/ for Spelopede1300176 doing job Maintain A=Thing_Hive1299697(curToil=0) for maxPawns 1 and stackCount -1. Existing reserver: Megaspider1300175 doing job Maintain A=Thing_Hive1299697(curToil=2)
Verse.Log:Error(String)
Verse.AI.ReservationManager:LogCouldNotReserveError(Pawn, LocalTargetInfo, Int32, Int32, ReservationLayerDef)
Verse.AI.ReservationManager:Reserve(Pawn, LocalTargetInfo, Int32, Int32, ReservationLayerDef)
Verse.AI.ReservationUtility:Reserve(Pawn, LocalTargetInfo, Int32, Int32, ReservationLayerDef)
Verse.AI.<Reserve>c__AnonStorey4F8:<>m__7E2()
Verse.AI.JobDriver:TryActuallyStartNextToil()
Verse.AI.JobDriver:ReadyForNextToil()
Verse.AI.Pawn_JobTracker:StartJob(Job, JobCondition, ThinkNode, Boolean, Boolean, ThinkTreeDef, Nullable`1)
Verse.AI.Pawn_JobTracker:TryFindAndStartJob()
Verse.AI.Pawn_JobTracker:EndCurrentJob(JobCondition, Boolean)
Verse.AI.Pawn_JobTracker:JobTrackerTick()
Verse.Pawn:Tick()
Verse.TickList:Tick()
Verse.TickManager:DoSingleTick()
Verse.TickManager:TickManagerUpdate()
Verse.Game:UpdatePlay()
Verse.Root_Play:Update()


I have about 20+ mods. I don't think any of them is responsible.
#6
Ideas / Survival meals: too expensive ?
May 28, 2017, 12:17:12 PM
So I play my first game in A17, I want to plan a long travel and research survival meals.

Then I discover it is twice more expensive than pemmican... No thanks. I'll just make pemmican instead.

All you gain making survival meals is an infinite lifetime (vs 1+ year with pemmican which very often sufficient) and fine meal though.

I suggest that packaged meals cost sharply does down or change recipe.

For example 3 fine meals + 1 neutroamine = 3 survival meals.
#7
Help / Changing the Def of a Thing
May 07, 2017, 05:17:46 PM
I have a mod that changes the defs of certains things in the world.
So far I was doing it by just assigning a new Def to the thing. Thing.Def = newDef;

This worked for me however some people reported errors that I was never able to reproduce but they probably come from this. They are related to the modified things.

So I've been looking for a safer method for doing this. One of them is to Despawn then spawn every items with a different Def.
But I need to have a method for every of this situations:

* Thing is spawned on the map.
* Thing is a someone's inventory.
* Thing is carried by someone.
* Thing is in a caravan.
* Thing is a material for apparel.

Is there a both generic and safe way to modify all things ever from the savegame ?

I would like some defs not to be generated anymore, without removing them from the DefDatabase in order for my mod not to require a new savegame.

I hope my issue is well explained !
#8
Bugs / [A16-A17] Unexpected death.
May 05, 2017, 07:13:49 PM
"Ark has died of blood loss"...

Poor Ark actually had to hediffs at severe stages: blood loss and malnutrition. (as well as some injuries).

This already happen to me with any other global hediffs: It kills the pawn when their are both on the severe stage but NOT on the extreme stage. So guess it's not intended.

Perhaps because those hediffs at severe stage have a delta of conciousness (stacking brings it bellow 10%) while they set a maximum of 10% at extreme stage.
#9
Help / Adding floating menu options
April 08, 2017, 11:16:08 AM
Hello.

So I want to create a new job for pawns which is always forced and the number of options is dynamic.
The job is "dress [apparel] to... [pawn]" and thus the number of subsequent options depends of the available apparels.

So I cannot just create a WorkGiver or JobGiver class.

I would only get one single option.

I want to avoid detours

I know I can do it by detouring FloatMenuMakerMap.ChoicesAtFor but I really want to avoid this.

I found that Pawn.GetExtraFloatMenuOptionsFor() too but I really can't find how to use it and I don't think it fulfills what I want"

#10
Ideas / How infestations could actually happen
April 05, 2017, 11:09:14 AM
A lot of players complain that infestations are too op, that's right, they screw you entire game especially at the start.

But everyone knows that infestations are here to balance that very well protected mountain base play style.

Here is my idea:

Instead of infestation randomly popping once you are digged under mountain roof, how about they pop can while you diggingin the mountain instead ?

That would still make settling in a mountain difficult and requires to defeat insects at first but will avoid you to get screwed after you settle.

How would this may happen (technically):

When breaking a rock, it has a certain chance to pop a set of hives. The chance would depend on some of the current infestation chance factors: distance from the nearest unroofed location, perhaps light ? I would discard the temperature factor however.
#11
Help / Job drivers
March 30, 2017, 09:07:37 PM
I just tried to make an alternative job driver for tending.

So first, why does decompiled vanilla job drivers look like this.
Guess it has something to do with the attribute.

[DebuggerHidden]
protected override IEnumerable<Toil> MakeNewToils()
{
JobDriver_LayEgg.<MakeNewToils>c__Iterator0 <MakeNewToils>c__Iterator = new JobDriver_LayEgg.<MakeNewToils>c__Iterator0();
<MakeNewToils>c__Iterator.<>f__this = this;
JobDriver_LayEgg.<MakeNewToils>c__Iterator0 expr_0E = <MakeNewToils>c__Iterator;
expr_0E.$PC = -2;
return expr_0E;
}


I am not sure if I'm not using the decompiler well (Ilspy) or of it is obfuscated on purpose.

I am not sure because some mods such as Dubs Rimkit for tending reproduce this driver behavior very well.
Did the author had to rewrite the entire code ? Or is there a way to clear something clear out of those MakeNewToils() methods ? That would really help.
#12
Help / Override inspect tabs limits
March 28, 2017, 04:06:01 PM
I want to add a new tab inspect tabs to rimworld.
The problem is that the vanilla limit is 5 and that will be 6 tabs for prisoners and guests.

So I want to detour RimWorld.InspectPaneUtility.DoTabs() to be able to draw more tabs however I'm afraid of potential compatibility issues.The detoured method will still display all the listed tabs but I that still sound insane for me.

Does anyone/the community of modders have an objection for not doing this ?
#13
Help / PostMake in comps
March 27, 2017, 01:14:18 PM
Hello.

I want to create a "Comp_DefaultPlantSetter" comp, injected to all plant growers (hydroponics, plant pot and non vanilla ones) and that allows to have a default plant to grow for every thingdef that's a plant growers.
When its parent thing is created, I want the comp to set the plant to grow.

So far I could do it using the inappropriate method :
This works when the building is made but also everytime the game is loaded ! it will reset the plant to grow on every load, obviously.

 
         public override void PostSpawnSetup()
         {
             ParentPlantGrower.SetPlantDefToGrow(Core.GetDefaultPonicsPlant(ParentPlantGrower.def));
         }


For things, there are PostSpawn() aswell as PostMake(), but no PostMake() for comps !
I want to avoid modifying the PlantGrower class so the mod will be less likely to have compatibility issues.

Any solution ?

EDIT: Solution: I edit the def of the plantgrower.
def.building.defaultPlantToGrow = ...

however I must restaure defs after game unload

that lack of PostMake() in comps is still quite annoying !
#14
So a group of pirates just arrive to bomb my base. Too bad for them, the "toxic fallout" map condition is active...

I may not even have to fight and in the end I get some get some resources.

Also when you live under a mountain, they will keep targeting your pawns even if they have to chance to hit them.
I think they should have buildings as their secondary targets.

Finally, if your sniper guy shot but not killed one of them, he will never rest except for sleeping but none of his mates will heal him.

I think siege you should have their best healers heal injured pirates and perhaps sleep in some kind of tent or have gas mask for toxic fallout.

edit:

"Friendlies" just arrived, they spawned at the edge of the map, right new the siegers ! As siegers are sleeping, friendlies just carry their way to my base, both sides ignoring each other... Surrealistic.

#15
Ideas / Hit in the liver... dies instantly
March 18, 2017, 06:11:44 PM
Sometime pawns got shot straight in their liver, and dies instantly because that reduces their blood filtration to 0%.

That's kind of frustrating. I think you should have a delay to get him another one, harvested from one of your prisoner.

I suggest that low blood filtration values grows a specific hediff "full of toxins" that would become lethal of a matter of days or even hours, so you have time to operate him.

Perhaps the same thing could be applied to the heart and blood pumping but you have to act in a matter of minutes instead.
#16
Help / Debugging, errors and line number
March 16, 2017, 11:38:33 AM
The most painful thing ever when programming is not being able to debug.

Atm we can't debug a rimworld mod like any program.

For example, when doing Jave with Eclipse, you can debug, use breakpoints and even edit code during runtime, not to mention plenty of other useful stuff. This is holygrail but I'm not even asking for so much.

ASAIK there is no way to debug at all a mod in RM (beside using Log.Message() ).
I have asked to this topic but did no manage to make it work https://ludeon.com/forums/index.php?topic=25603.0

But let me know if this works fine for you (in that case I did something wrong somewhere).

Using .pdb files.

If such a thing is not possible anyway, is there a way to know at which line and what files something went wrong when an error is printed ?

For example in

Error at Name.Class.method() [0x00000] in <filename unknown>:0

How to get rid of that "filename unknown" ? I guess I have to generate .pdb files with my assembly. But having a .pdb file with my assembly makes the game crash on startup.


I hope someone knows a solution, that would be really useful to a lot of modders.
#17
Ideas / Caravans and unlimited food for muffalos.
March 13, 2017, 02:13:40 PM
Does it make sense that plant eating animals can fill their food bars in caravans even when traveling on a -30°C (-22°F) place ? Even when traveling on sea ice ?
#18
Help / Key binding display related (solved)
March 12, 2017, 07:21:09 AM

I would like to assign a key that toggles on and off an developer setting ("draw food search from mouse").

I would like not do detour a method like ShortcutKeys.ShortcutKeysOnGUI() to avoid conflicts.
I would like not do use ModBase.Tick() by HugsLibs. Obviously not the most appropriate way to do it.
#19
Ideas / Mental breaks based on bad mood reasons.
March 04, 2017, 01:06:59 PM

RimWorld Pawns be like:
I am in bad mood because I'm starving ? I better go daze for 20 hours.
I am in bad mood because I'm injured ? Berserk.

I think bad mood reasons should be a factor of the nature of the mental break (sad wander, daze, berserk...).

For example :


ReasonMakes to likely to
Starving / hungry    Food binge
Tired / in painRush for a bed (new mental break) or stay in bedroom
Drug withdrawalRelated drug binge
Other reasonsRandom mental break
#20




All mods require HugsLib.
Get HugsLib here

















Stable 1.0
Smarter food selectionSteam     Homepage / Download
Hydroponics with lampsSteamHomepage / Download
Beta 19
Self launching podsSteamHomepage / Download
Too Many LeathersSteamHomepage / Download
Alpha 16
Smarter food selectionDownload   2017.03.20Allows you to assign food policies to your pawns (colonists, prisoners, pets). Sharply improves the food selection. Comes along with many cool other features.
MedivacSteamDownload2017.01.22Allows you to put downed pawns into pods. Also optimizes medical beds selection.
Sync GrowthSteamDownload2017.02.20Helps your crops to become mature at the same time.
Reuse podsSteamDownload2016.12.30Allows you to reuse your transport pods.
Too Many LeathersDownload2017.03.02Merges all identical leathers from different animals. Works with any mod.
Alpha 15
No thoughts for hostile prisoners      Download2016.11.24   Negates all thoughts related to prisoners from a hostile faction (death, sold, executed, organ harvested).







Have a better control over your food for all your pawns. (prisoners, colonists, pets, visitors).

* Feed prisoners with simple meals instead of lavish meals.
* Protect your crops. Prevents your pets from ingesting crops, meals instead of their kibble.
* Allow visitors to use the paste dispenser.
* Force the dispenser to output meals.
* Tons of other improvements.

More information bellow

Github (source only)
Do not install from github






Requesting medivac !

Allows you to put downed pawns into transport pods.

Smarter medical bed selection.

Colonists will now go to the best medical beds (eg: Hospital bed with vital monitor) if they need tending, immunity or surgery.
They will leave FREE the best beds if they are tended already but need recovering.

If they need urgent tending however (for severe blood loss for example), they will just reach the closest medical bed.

This works for rescue as well.


Download latest

Github (source only)







Helps your crops to be mature at the same time, avoiding your farmers to lose time when only few or your crops are fully mature.

This works by magically redistributing the growth between your adjacent crops.
Crops grown above the average of the group will grow slower and those bellow the average will grow faster. The average growth remains the same.

This does NOT work if your plants have more than 8% of growth difference.

You can see what effects the magic has by clicking on your crops.


Download latest

Github (source only)







Are you sick of building pods again and again to communicate with your trading outpost ?
This mod allows you to reuse your pods under certain conditions.


Q: How do I reuse a pod ?

When launching a pods group, target a location within the range (max 20 tiles) of a Landing controler and one Pod launcher for every pods you want to reuse.

Q: What happens then ?

If conditions are fulfied upon arrival, pods will land next to pod launchers, at fueling ports where you can launch them again.

Q: What's if I have more pods than pod launchers at destination ?

Pods that can't land at a fueling port will act like vanilla: they land at a random location and vanish.

Q: Is it balanced ? What is the drawback of that ?

All you need is to have Pod launchers at the destination and the new Landing controler building (looks like a trade beacon). ONLY ONE IS REQUIRED.
It costs 15 gold, 120 steel and 3 components and has 300 hitpoints.

Q: I have an error message when starting the game.
If you are talking about the warning (yellow!) message of HugsLib, it's an HARMLESS message. Otherwise please report it bellow. Compatibility
It should be compatible with Mid-Range Drop Pods by Thundercraft and LongRangePodLauncher by xhatti.
However you should load this mod before and you will loose the place helper (lines to the landing controller) when placing the Pod Launcher blueprint. (to be tested).





Groups all identical leathers into tiered leathers item.

Their names become "tier X leather" where "X" is the tier of the leather. The tier is a ranking based on the stats of the leather.
In vanilla, thrumbo leathers should be tier 1.

Identical means: Same stats, same market value, same commonality.

Does not requires a new save and will ask you for updating all world items when using an already existing one.

Does not make your save game dependent on the mod either.

Should be compatible with anything.

On game start, a report should be available in the log. Here is what it is without other mods.

[WM_Too_Many_Leathers] Merged 49 leather types into 18 tiers. 12 unique types left untouched.
Created [Tier 1 leather (thrumbo)] (defname: Thrumbo_Leather) with leathers from species: thrumbo
Created [Tier 2 leather (arctic wolf)] (defname: WolfArctic_Leather) with leathers from species: arctic wolf
Created [Tier 3 leather (lynx)] (defname: Lynx_Leather) with leathers from species: lynx
Created [Tier 4 leather (pig)] (defname: Pig_Leather) with leathers from species: pig
Created [Tier 5 leather] (defname: Alpaca_Leather) with leathers from species: alpaca ; snowhare ; yorkshire terrier ; wild boar ; warg
Created [Tier 6 leather (chinchilla)] (defname: Chinchilla_Leather) with leathers from species: chinchilla
Created [Tier 7 leather] (defname: Muffalo_Leather) with leathers from species: muffalo ; dromedary ; grizzly bear ; polar bear ; Megasloth ; husky ; elk ; caribou ; timber wolf ; fennec fox ; red fox ; arctic fox
Created [Tier 8 leather (hare)] (defname: Hare_Leather) with leathers from species: hare
Created [Tier 9 leather] (defname: Cougar_Leather) with leathers from species: cougar ; panther ; labrador retriever ; cat ; deer ; ibex ; boomalope
Created [Tier 10 leather (squirrel)] (defname: Squirrel_Leather) with leathers from species: squirrel
Created [Tier 11 leather (cow)] (defname: Cow_Leather) with leathers from species: cow
Created [Tier 12 leather (alphabeaver)] (defname: Alphabeaver_Leather) with leathers from species: alphabeaver
Created [Tier 13 leather] (defname: Gazelle_Leather) with leathers from species: gazelle ; capybara ; monkey
Created [Tier 14 leather] (defname: Boomrat_Leather) with leathers from species: boomrat ; Raccoon ; rat
Created [Tier 15 leather (human)] (defname: Human_Leather) with leathers from species: human
Created [Tier 16 leather (rhinoceros)] (defname: Rhinoceros_Leather) with leathers from species: rhinoceros
Created [Tier 17 leather (elephant)] (defname: Elephant_Leather) with leathers from species: elephant
Created [Tier 18 leather] (defname: Iguana_Leather) with leathers from species: iguana ; cassowary ; emu ; ostrich ; turkey ; tortoise ; cobra




[A15] No thoughts for hostile prisoners.

No more bad thought for prisoners you captured from an hostile faction.

Download latest








[A15] No thoughts for hostile prisoners
The mod

You may now treat prisoners from an hostile faction as you wish without getting bad thoughts.
This means : execute / kill, sell or harvest organs.

Executing, selling or treating badly a pawn from a non-hostile faction (such as your own colony) will still get you bad thoughts.
Other prisoners will still get bad thoughts if the badly treated pawn is from a non-hostile faction or their own faction.

Unlike the "no organs thoughts" or "no thoughts on prisoners died or sold", this mod won't overwrite the vanilla thoughts but it's all about faction relations
instead.

Known issues

Please report any issues you may have.



You may include my mod in your mods, but give credits.