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

#1
I just had my level 20 doctor and constructor get up from bed after a malaria outbreak, and their skills seem to have dropped to 19 in the meantime. I was under the impression that lvl 20 skills are supposed to stay that way forever once you achieved. Has that changed recently?
#2
ILSpy and Dotpeek are fine decompilers, but they fail horribly at one thing: decompiling functions where yield return is used. One example:

This:
protected override IEnumerable<Toil> MakeNewToils()
{
this.EndOnDespawned( VictimInd, JobCondition.Succeeded );

yield return Toils_Reserve.Reserve(VictimInd );
yield return Toils_Combat.TrySetJobToUseAttackVerb();

Toil gotoCastPos = Toils_Combat.GotoCastPosition( VictimInd );

yield return gotoCastPos;

Toil jumpIfCannotHit =  Toils_Jump.JumpIfTargetNotHittable( VictimInd, gotoCastPos );

yield return jumpIfCannotHit;
yield return Toils_Combat.CastVerb( VictimInd );
yield return Toils_Jump.Jump( jumpIfCannotHit );
}


Gets turned by ILSpy and Dotpeek into this:
[DebuggerHidden]
protected override IEnumerable<Toil> MakeNewToils()
{
JobDriver_Kill.<MakeNewToils>c__IteratorDD <MakeNewToils>c__IteratorDD = new JobDriver_Kill.<MakeNewToils>c__IteratorDD();
<MakeNewToils>c__IteratorDD.<>f__this = this;
JobDriver_Kill.<MakeNewToils>c__IteratorDD expr_0E = <MakeNewToils>c__IteratorDD;
expr_0E.$PC = -2;
return expr_0E;
}


Now of course that's rather useless for modding. Tynan has been gracious to give us quite a few source files using this, but if I want to look at how, say, the kidnapping JobDriver works, there's not much I can do. So I want to ask, is there any decompiler able to handle this case correctly?
#3
Tonight, I saw UrbanBourbon's post in the "Your Best Screenshots" with an idea for raider killbox with wooden supports to bring down the roof on the enemy when shot. Naturally, my first thought was "How can I make that automatic?"

Here is a first prototype of such an automatic drop-trap.

The way the trap works is simple: Raiders run in and once they are in about the middle of the chamber, they notice the turret and take positions behind the generously prepared sandbags. (the hydroponic tables are there because they block movement but don't hold roof) Eventually the hostiles explode the turret and bring the overhead mountain on their own heads. Raiders die without colonists having to shoot a single shot and for much cheaper cost than an equivalent turret farm would cost.

It has its disadvantages, of course. Everything is crushed, there are no clothes to strip and no guns to sell. It is inefficient against smaller raids and even larger raids can become clustered when you have things built outside. Joggers and scythers are also a problem as they outrace the rest of the raiders and can set off the trap prematurely.

This is only a 30-minute prototype design I came with a few moments ago, though. I'm sure that somebody smarter with more time would be able to come with something much better :)
#4
General Discussion / Cassandra gone crazy?
August 02, 2014, 05:35:55 AM
It seems Cassandra has given up on trying to keep down the population of my colony. Despite being three years into the game with 27 colonists, I have gotten 2 slave traders, 2 crashing escape pods and a villager joining voluntarily, boosting my population to 35 colonists (and 5 prisoners), all in just four months. Before that, I barely had one slave trader each 6 months. It seems that Cassandra has gone crazy... or perhaps she is trying to raise my population so that she can send greater enemy raids at me.

Did anyone else had a similar thing happen? I thought that it was impossible to get any more colonists past a certain treshold without incapacitating some raiders.
#5
Stories / Mercy of the tribesmen
July 20, 2014, 05:08:20 PM
A pirate raid lands. At first, I was alarmed because there were 74 drop pods falling from the sky, but then I notice it is a siege raid. Excellent, those are much easier to deal with! Unfortunately, the raid landed south of the town, right next to an intact mortar battery that was abandoned in one of the earlier raids, and naturally the pirates decided to make use of it.

I knew I can't simply let the pirates do their thing and bombard the colony. Much like the name Treevile suggested, almost everything in the town was made out of wood and a single volley from the mortar battery could easily set half of it on fire. I have to act quickly, so I gather my five snipers and send them to a guarded position near the raiders where they could wait for the right time to strike without being seen.

...which took surprisingly long as most of the pirates had very low construction skills. One of them was clever enough to man a mortar left by their predecessors, but the majority of the shots either went wide or hit a mountain, with the rest causing minor fires that were quickly taken care of. Soon, the right time comes and I tell my snipers to shoot one of the old damaged mortars. It explodes after a single salvo and sets everything around it on fire - perfect diversion for my snipers, who use it to move closer and shoot the mortars in the centre of the enemy camp. The resulting chain reaction of explosions sets the entire area on fire and kills about a dozen of the hostiles. Mission successful, time to return home, sniper team! Let insanity do the rest.

"A group of friendly outlanders from The Comedian's Tree have arrived nearby. They are moving in to help you immediately."

What? Wait stop nooo, I don't need help, all has been taken care of already! You are just two villagers with pistols, stay away from this or you'll get yourselves killed! Of course, they don't listen to my warnings and rush straight in. Surprisingly enough, they manage to dispatch three of the pirates on their own thanks to their teamwork, but eventually Red walks a bit too close to the pirate camp and gets herself under heavy fire. She receives a sniper shot to the face and decides it's high time to run for it, but it seems her fate is sealed already... no wait, it isn't! James heroically rushes past her and takes some potshots at the pirates, drawing all attention to himself. He does not last long, but he refused to move until his last moment and managed to buy Red just enough time to run away. I make a mental note to give James a hero's burial and to send some silver to The Comedian's Tree community for his relatives, but that had to wait until the pirates finish their job of murdering each other.

The colonists treat themselves to a lavish dinner and go to sleep, but as soon as they fall asleep, a mortar shell crashes through the roof of commissar Dweeb's house and sets everything inside on fire. Dweeb's habit of sleeping in her power armour finally paid off and she was mostly unharmed, although it still did not save her from being on fire. Everyone in the town is woken up by the explosion, but before they get two and two together and begin helping beating out the fire, half of Dweeb's house is already gone. 'I destroyed all the mortars, how could that have happened?' I ask myself and check the pirates. Apparently, they haven't quite given up yet. Half of them is wandering around dazed, but the other half has set up several mortars and began bombarding the colony again. I scramble my sniper team and send them south again. Most of the enemy snipers were already obliberated in the infighting, so the task of my snipers is easy enough - run in, destroy the rest of the mortars, leave. Everything went without a hitch, and as soon as the last mortars were gone, the rest of the pirates finally broke and drowned out their camp with sounds of gunfire and explosions.

"A group of tribespeople from The Nightingale's Trosma have arrived nearby. They are attacking immediately."

Whaaat? We have just finished the previous raid, and now there are... 91 tribesmen!? Welp, the colony is as good as dead. I position everyone behind corners and in doorways, hoping for the best, but I prepare to run away and leave the town to its fate if the new raiders prove to be too powerful. Wait, what's happening down there? Ah, the tribals encountered the rest of the pirates and stopped in their tracks to deal with them! Well, the gives me some time to send my colonists to better positions and-

"Tribespeople from The Nightingale's Trosma have decided to kidnap who they can and leave."

Oh my goodness, is this true? It indeed is! The tribals are collecting the incapacitated pirates and leaving! Ladies and gentlemen, I present to you, the shortest raid in the history of Rimworld! It couldn't have been more than ten seconds until the tribesmen turned around and left. Did their leader see the carnage my snipers caused in the pirate camp? Did he remember how many of his people have been slaughtered in the last raid? Either way, the colony has been saved from almost certain death and I cannot thank the random number god enough for that.


P.S.: In case you are wondering, this all really happened. Minor details may be made up (people weren't woken up by explosion but by me drafting them; Red's name wasn't Red, I just dpn't remember her real name; etc.) but the story in itself is as it happened.