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

#41
Releases / [1.4] Ryder's Stuff
February 12, 2017, 07:35:10 AM
1.4 Status

Currently maintaining Sometimes Raids Go Wrong and Ugh You Got Me, both available and working.

Downloads

Download source
Includes license and guide for future maintainers, mod folders, and XCF thumbnail files - 85MB

Steam Workshop

1.3+ Manual install links

1.0 Manual install links

Beta 19 Manual install links

Beta 18 Manual install links

Alpha 17 Manual install links

Alpha 16 Manual install links
#42
General Discussion / Caravan ambushes
January 26, 2017, 09:27:07 PM
So I haven't had many opportunities to experience caravan ambushes until recently.

The difficulty on these seems a bit off. On the one hand you have two tribal colonists proficient with ranged weapons (one shortbow, one LMG) and two which are proficient with melee weapons. On the other hand you have a bunch of raiders (say half a dozen) armed with grenades, a sniper rifle, and of course the goold old knife and personal shield combo.

This is on the second notch of difficulty.

I finally ended up just cheating in a bunch of town guards and having them duke it out with the raiders. Which they did far better than I could have. :P
#43
I was testing a mod called Please Haul Perishables, and I came across this unlikely but possible scenario.

If a pawn is restricted so that they cannot stand in a particular cell, they might be able to attempt to haul to that cell if they can touch it.

The routine which checks to see if it is possible for a pawn to store something in a cell is StoreUtility.IsGoodStoreCell, and this routine (as far as I can see from disassembled source) does the CanReach check with the parameter PathEndMode.ClosestTouch instead of PathEndMode.OnCell which means that it can return a cell which a restricted pawn cannot actually haul to, which means that 0 of that item can be hauled, which means Error Time.

Thing to bear in mind is, the vanilla hauling routines will somehow figure out that the pawn should not be allowed to haul to that area, but there's nothing stopping you from accidentally bypassing those checks when you're writing your own hauling routine.

The thing to do then, obviously, is make sure that you check that a pawn can actually access the place where things are going to be stored.

Hope this helps someone. :)
#44
When animals are assigned a master and either the 'Follow Master when Master drafted' or 'Follow Master when Master is doing hunting or taming' checks are on, display which master is being followed instead of a generic 'Moving' on the selected animal's information window.

If it's possible. :)

Also, FYI, animals which do follow their master don't seem to get food breaks. Maybe pawns which are animal masters should carry a little bit of food on them so that they can top up their animal buddy's food bar.
#45
Worked example: More conditions for a custom WorkGiver


Today I worked on a custom workgiver which is like the original WorkGiver_CleanFilth but specialised to clear only rubble.

Additionally, work settings are checked. If the pawn has mining at a higher priority than cleaning or don't have the mining job, they do not use this workgiver.

Finally, a distance check is used so that only nearby rubble is cleared.

Most of the changes are contained within HasJobOnThing:

public override bool HasJobOnThing(Pawn pawn, Thing t)
{
if (pawn.Faction != Faction.OfPlayer)
{
return false;
}

// If mining is not a job the pawn has, then don't prioritise cleaning nearby rubble
if (pawn.workSettings.GetPriority(WorkTypeDefOf.Mining) == 0)
{
return false;
}

// If mining has a higher priority (lower value but not zero, already eliminated above)
// than cleaning, then don't prioritise cleaning nearby rubble.
if (pawn.workSettings.GetPriority(WorkTypeDefOf.Mining) < pawn.workSettings.GetPriority(WorkTypeDefOf.Cleaning))
{
return false;
}

Filth filth = t as Filth;

if (filth == null)
{
return false;
}

IntVec3 dist = pawn.Position - filth.Position;
// If the distance between the filth position and the pawn's current position is more than 10 tiles
// don't prioritise.
if (dist.LengthManhattan > 10)
{
return false;
}


return Find.AreaHome[filth.Position] && pawn.CanReserveAndReach(t, PathEndMode.ClosestTouch, pawn.NormalMaxDanger(), 1) && filth.TicksSinceThickened >= this.MinTicksSinceThickened;
}

      
Rather than looking at all the filth like in the original, I narrow it down to just a single ThingDef:
      
public override ThingRequest PotentialWorkThingRequest
{
get
{
return ThingRequest.ForDef(ThingDef.Named("RockRubble"));
}
}

      
The last touch is to decrease the time that needs to pass before the rubble will be cleaned (default 600 ticks):

private int MinTicksSinceThickened = 300;


This means that if a rock rubble is generated at the same time as a hunter tracks in dirt, the rubble will be spotted first and a colonist who matches the conditions above (must be a miner and cleaner with cleaning at higher priority) will clean the rubble first.

The new WorkGiver needs to have a higher <PriorityInClass> than the original in XML e.g. 20.
#46
Not sure if I suggested this already or if it's been suggested before.

Hunting at night!

The main problem is not the darkness, but that the animals are sleeping, which means the hunters miss the mark a lot when they could just move straight to execution range and be guaranteed a hit.
#47
Ideas / More autonomous butchering for tribals
October 14, 2016, 03:45:03 AM
As things stand, I don't especially mind setting up some custom bills so that my tribals cook only meals that they're likely to eat right away, and make the rest of it into pemmican because it lasts longer.

However. This means that I need to send them to hunt fairly regularly, but not butcher everything right away. Now, the hunting, I don't mind doing, but every time they bring back a kill I have to look at the stockpile of meat and decide whether I need to jump into the bills on the butcher table and +1 or +2 my limited butchering bill.

This is because corpses keep fresh for days, but meat spoils much faster.

Maybe a 'When meat reserves are low' precondition can be added to the bill configuration on the butcher table?
#48
Help / [Resolved] Bit stuck with MakeIntervalIncidents()
September 22, 2016, 06:03:24 PM
Update 2: Still having problems. :(

Update: I had a look using Zhentar's modded ILSpy tool and things are looking a lot clearer. Can't do anything more tonight but yeah, looking promising!


So I'm looking to have alternate versions of StorytellerComp_RandomMain and StorytellerComp_ThreatCycle which point at a modded StorytellerUtility. That part is fine.

However when I get into the game and actually use the modded storytellers which run those, because my modded classes are (I assume) inheriting MakeIntervalIncidents() from the original classes, an error is thrown.

System.InvalidCastException: Cannot cast from source type to destination type.
  at RimWorld.StorytellerComp_ThreatCycle+<MakeIntervalIncidents>c__IteratorA1.MoveNext () [0x00000] in <filename unknown>:0
  at RimWorld.Storyteller+<MakeIncidentsForInterval>c__Iterator99.MoveNext () [0x00000] in <filename unknown>:0
  at RimWorld.Storyteller.StorytellerTick () [0x00000] in <filename unknown>:0
  at Verse.TickManager.DoSingleTick () [0x00000] in <filename unknown>:0


StoryTellerTick of course tries to MakeIncidentIntervals but fails because I haven't implemented it properly.

This is what I see in the decompiled assembly:

public override IEnumerable<FiringIncident> MakeIntervalIncidents ()
{
StorytellerComp_ThreatCycle.<MakeIntervalIncidents>c__IteratorA1 <MakeIntervalIncidents>c__IteratorA = new StorytellerComp_ThreatCycle.<MakeIntervalIncidents>c__IteratorA1 ();
<MakeIntervalIncidents>c__IteratorA.<>f__this = this;
StorytellerComp_ThreatCycle.<MakeIntervalIncidents>c__IteratorA1 expr_0E = <MakeIntervalIncidents>c__IteratorA;
expr_0E.$PC = -2;
return expr_0E;
}


public override IEnumerable<FiringIncident> MakeIntervalIncidents ()
{
StorytellerComp_RandomMain.<MakeIntervalIncidents>c__Iterator9E <MakeIntervalIncidents>c__Iterator9E = new StorytellerComp_RandomMain.<MakeIntervalIncidents>c__Iterator9E ();
<MakeIntervalIncidents>c__Iterator9E.<>f__this = this;
StorytellerComp_RandomMain.<MakeIntervalIncidents>c__Iterator9E expr_0E = <MakeIntervalIncidents>c__Iterator9E;
expr_0E.$PC = -2;
return expr_0E;
}


I can sort of guess what these are doing from context and from reading through <MakeIntervalIncidents>c__Iterator9E and <MakeIntervalIncidents>c__IteratorA1 but, I still don't know how to implement them.

This is for the Combat Readiness Check mod, by the way.
#49
Mods / [Suggestion/Request] Playable canine faction
September 20, 2016, 07:44:51 AM
Because sentient wargs who eat raiders for breakfast with a cup of earl grey tea was too funny not to suggest. XD
#50
Scenario: Isolation -Dropbox -Workshop

QuoteYour colony ship suffered a navigation malfunction and steered into the gravity well of the wrong planet. Instead of touching down on a sunny paradise world, you find yourselves forced to abandon ship and land on the volcanic world below. It is uninhabited by humans, so you cannot count on any assistance here.

Doesn't require any mods. This scenario disables any incidents which would bring the usual human factions onto the map, except for spacers (cryptosleepers or escape pod crashers). This means that your likely foes will be manhunter packs, the occasional mad animal, crashed ships, and insects (via infestation). Note that you could still contact the human factions, but it's a waste of money if you try to improve relations or ask for caravans.

You start with Microelectronics Basics, Smithing and Machining researched.

There is permanent volcanic winter, which could make it difficult to grow crops outside.

This scenario emphasises protecting your colonists from harm as much as possible, because it is more difficult to get new recruits.
#51
I had a thought about colonists who do jobs like Construction which sometimes involve cutting down trees, but have plant cutting disabled in their backstory.

Instead of doing the clearance themselves, they could (or should) persuade someone else to do it for them. It makes sense, really, if you have a job that you really hate doing and there's someone who's happy to do it for you, why not?
#52
Help / Recording statistics on raider deaths?
August 19, 2016, 09:20:55 PM
Someone suggested an immersion mod over on Steam discussion board and I need a little bit of guidance if I want to tackle it.

The basic premise is this - when raiders send a raid and it fails, the number of raiders that died can decrease the chance for that faction to be chosen when the storyteller decides it's raid time. That makes sense, right? They want to recruit some more drifters and train them up before they send in another squad, or something.

I've had a look and I can see where the faction list is checked, and I'd probably have no problem detouring to a modded version of that. What I'd need to do first is set up some recording of stats on number of raider deaths, assuming that isn't already done somewhere. Also assuming it can be done with an economical amount of detouring, which when I look at doing something, is usually 'Nope.'
#53
So there I was, watching another colonist have a mental break and wander around sighing and huffing about the old gunshot injury to her arm which keeps giving her pain.

I thought to myself, Iko, why can't you go to your happy place? Even if it doesn't snap you out of your funk, at least you're surrounded by things that once made you happy.

So the mod suggestion is:

  • When colonists are happy give them a memory of that happy place.
  • When they're sad, they can either wander around aimlessly or they can go to the last place that they remember being happy.

Have at it! :)
#54
https://steamcommunity.com/app/294100/discussions/0/359543951727504577/

They describe how to do it on Mac. In Windows it's very similar, just go to your Steam installation folder and look in \userdata\XXXXXXXX\294100\remote where XXXXXXXX is your particular user number.
#55
Mods / [Mod suggestion] Mechanite hives
August 04, 2016, 02:40:06 AM
This came to me while I was hauling today's shopping back.

We have insect hives, and they're pretty bad news, but... what if there were mechanite hives too?

Tiny little robots, cheerfully nomming steel, what could possibly go wrong?

Well, for one thing, they might encounter an insect hive and decide to... um... improve it.

Cyborg insect hives, yo.
#56
Help / [Resolved] Regarding DoCellSteadyEffects
August 01, 2016, 09:50:45 PM
DoCellSteadyEffects is the part of the Toxic Fallout map condition which makes plants die randomly.

I haven't had any luck getting this to do anything else as part of a custom map condition. I even tried cloning the plant-killing but taking out the random part and getting it to kill all plants, but no dice. Is this functionality maybe broken for custom map conditions?
#57
Video / RimWorld Alpha 14: Isolation
July 19, 2016, 09:19:03 PM
This game follows a group of six colonists who end up on the wrong planet. Whoops!

It uses several mods and the Isolation scenario which you can find on my Workshop page. This means that there will be no raids, no visitors, no caravan traders, but there are definitely other hardships which the new colony will have to endure.

The map for this game is a flat Boreal Forest.

Part 1
#58
Unfinished / [WIP] Hot and Cold Minification
May 13, 2016, 07:00:11 PM
Hey guys,

Here's a preview version of Hot and Cold Minification for Alpha 13. It has been tested but not extensively and it may not be balanced, let me know if there are any problems!

Download -Dropbox

What's not done:

  • Production tables
  • Minified turrets don't have their own production bench yet
  • Minified turrets are missing the 'Zap' style explosion when badly damaged
What is done:

  • Minified turrets are available - research Smithing to get the crossbow turret, Machining to unlock the gun turrets
  • Lanterns, oil and wood burning - you can convert between these at the basic crafting spot
  • Sesame plant - used to make oil by pressing seeds
  • Seed press - bench for pressing seeds
  • Winter apparel can be made at the basic crafting spot (fleece only) and the tailoring benches

Further updates:

  • Increased the yield of sesame seeds to 15 from 5.
#59
Mods / [Mod request] More traps
May 06, 2016, 04:41:08 PM
I like deadfall traps and they're not too expensive, but I wish that there were more traps in the same vein. Like maybe something fiery which doesn't explode like the incendiary mine, so much as just burn the pawns which trigger it.
#60
Mods / I made a lantern but...
May 06, 2016, 03:00:02 PM
...I have a question for you.

I'm working on a lantern which needs fuel to become lit and stay lit. So far, it's looking good, but at the moment what it uses for fuel is a wood log.

Understandably, it's kind of immersion breaking to just throw a log into a lantern and refuel it. However, it's also a bit better than the alternative, which is to make a different fuel resource and have you guys go through an entire production chain to make the fuel just so that you can have an early light source which can be moved around and doesn't require power.

What do you think? Should I leave it as it is, or do the fuel distillery thingamajig?