Firefighting should include putting out colonists on fire.

Started by nife552, February 19, 2014, 10:16:33 AM

Previous topic - Next topic

nife552

Title pretty much sums it up. Colonists can put out fires on items, they should also be able to put out colonists who have caught themselves on fire, instead of them just running in circles until they're dead or the fire burns itself out.

Evul

I think that is already the case. ^^
If a colonist is inside of the home zone they will put him out. But not when they are outside the zone.

But yeah they should put out the fire on a colonist always :)

nife552

Quote from: Evul on February 19, 2014, 10:18:32 AM
I think that is already the case. ^^
If a colonist is inside of the home zone they will put him out. But not when they are outside the zone.

But yeah they should put out the fire on a colonist always :)
Are you sure? I've had more than a few colonists ablaze, and not once have they been put out. And I always have my whole base set to a home zone.

ShadowDragon8685

Colonists are always firefighting targets.

The problem is that colonist AI sucks at prioritizing jobs within the same field, and is even worse at prioritizing jobs based on colonist distance.

So you've got a bunch of guys fighting a fire, and one of them catches on fire. A job to put him out is created, and is immediately "claimed" by a colonist half-way across the map. That means that nobody else will attempt to put him out, even if he's right there.

This is why I advocate fighting fire with hand grenades and manually-controlled drafted colonists, instead of using the firefighting job at all.
Raiders must die!

Luckless

Quote from: ShadowDragon8685 on February 19, 2014, 07:16:18 PM
This is why I advocate fighting fire with hand grenades and manually-controlled drafted colonists, instead of using the firefighting job at all.

Fighting fire with fire eh? Works in the real world with oil wells. (Except they use something a 'little' bit bigger than grenades...)

How I've tackled similar problems in past projects is to create a 'job zone' which calls out that it has work. Similar jobs within a set distance to an existing job zone would attach themselves to it.

Job Zones would track who is working them, and send out a request ping if a 'finish efficiency' function returns too low of a value. (This can account for things like distance from heart of colony, a job priority value that the player can set, number of workers and their estimated completed work, etc)

Workers would then pick up on the ping and evaluated whether or not they are a viable option for the job. That function would consider what they are currently assigned to, how far away they are, and how many work actions they expect they can complete before they need a break.

The 'best' worker for the job then picks up that Job Zone, and the zone re-evaluates itself. If it detects it is still below an acceptable point it can ping again and ask all other workers.

The goal of the system is to limit excessive walking of the agents so they aren't hopping back and forth between different parts of the map. Ideally you will never get two people spending 10 time units to walk across the map to handle two different 'jobs', which each take 1 time unit to complete. The first worker will make the trip, complete both jobs, and then head home.

In the case of a large number of jobs, or high risk jobs such as fire fighting (where the fire can spread and spawn even more jobs), workers merely lock on for a job zone and make their way toward it. Only once within a job zone will they actually pick their target job and start on it.

It could also help if things like mining or fire fighting could be hastened by having more than one colonist on each 'job'.

Not to mention that as new jobs within the zone spawn they will trigger a check. Colonist on fire become the highest priority, followed by burning structures, then everything else on fire. (or some variant of that) Then when someone catches fire they can interrupt the current jobs of other colonists (who are already right there) so someone puts them out quickly and they can rejoin the fight.

theSovietConnection

I don't know if it's already in place (I've never actually had a colonist catch fire before), but I'd like it if a colonist on fire slowly put themselves out over time, like stop, drop, and roll. That way if your other colonists decide that hauling rocks are more important then putting out the other colonist, they're not necessarily lost because the AI was acting up, but there is still a risk of losing the colonist if their health was already compromised.

Coenmcj

Quote from: theSovietConnection on February 20, 2014, 08:45:25 PM
I don't know if it's already in place (I've never actually had a colonist catch fire before), but I'd like it if a colonist on fire slowly put themselves out over time, like stop, drop, and roll. That way if your other colonists decide that hauling rocks are more important then putting out the other colonist, they're not necessarily lost because the AI was acting up, but there is still a risk of losing the colonist if their health was already compromised.

They already do, however it's so ineffective they usually wait about 4 seconds of franctic pathing just to start, and then it takes another few seconds dependant on the size of the fire before it is finally extinquished.
Moderator on discord.gg/rimworld come join us! We don't bite


Architect

Speaking of fire, does anyone here have issues with burning solar panels? If the panel catches fire and it's one of the center four tiles, the workers will outright refuse to put it out, even when commanded to?
Check out BetterPower+ and all its derivatives by clicking the picture below.

It adds many new methods of power generation and uses for it, as well as other things such as incidents.


DeMatt

Quote from: Architect on February 21, 2014, 09:37:11 AM
Speaking of fire, does anyone here have issues with burning solar panels? If the panel catches fire and it's one of the center four tiles, the workers will outright refuse to put it out, even when commanded to?
The problem here is not that the workers don't want to fight the fire, it's that they can't get to the fire.  If you suddenly decided you wanted to put e.g. carpets under your solar panels, you'd have to take the solar panel down in order to finish those inner four squares, too.