v50 Steam/Premium information for editors
  • v50 information can now be added to pages in the main namespace. v0.47 information can still be found in the DF2014 namespace. See here for more details on the new versioning policy.
  • Use this page to report any issues related to the migration.
This notice may be cached—the current version can be found here.

Difference between revisions of "40d:Cat cancels Store Item in Stockpile: Too injured"

From Dwarf Fortress Wiki
Jump to navigation Jump to search
m (moved "D for Dwarf" to top, before the "D-rated" content.)
Line 1: Line 1:
{{D for Dwarf}}
 
 
 
Your cat kills a [[vermin]].  
 
Your cat kills a [[vermin]].  
  

Revision as of 20:55, 24 August 2009

Your cat kills a vermin.

It reaches down to pick it up.

It realizes it has no hands, cries out "My hands! My beautiful hands! Someone has chopped off my beautiful han... wait, I'm a cat. I don't have hands. Right," and then continues on with its business.

This error message is actually caused by an old bug in the system which was reintroduced in 40d. When a pet cat kills a vermin it will attempt to pick it up and carry it to their owner, to bask in the display of gratitude that every cat owner shows upon being gifted small dead animals.

However the cat's mouth does not possess the [GRASP] tag, so it registers as unable to pick up the item and so generates this error message. Frustratingly, secondary programming picks up the task and lets the cat carry the vermin anyway.

Fixing the bug

As your cat and vermin population expands this message becomes more and more common, but it is easy enough to fix by modding (the exact steps are explained below). You don't even have to generate a new world.

Step One

Open raw/objects/body_default.txt and add a new entry:

[BODY:CAT_MOUTH]
[BP:CAT_MOUTH:mouth][CONTYPE:HEAD][MOUTH][SMALL][EMBEDDED][APERTURE][GRASP]

This creates a new body part in your dwarf universe. Specifically, a mouth which can pick things up. Now we need to attach this body part to the cat!

Step Two

So open raw/objects/creature_domestic.txt and edit the cat to:

[CREATURE:CAT]
       [NAME:cat:cats:cat]
       [TILE:'c'][COLOR:0:0:1]
       [VERMINHUNTER]
       [PETVALUE:20]
       [CARNIVORE][NATURAL][PET]
       [LARGE_ROAMING]
       [COMMON_DOMESTIC][BENIGN]
       [PREFSTRING:aloofness]
       [BODY:QUADRUPED:TAIL:2EYES:2EARS:NOSE:2LUNGS:HEART:GUTS:ORGANS:THROAT:NECK:SPINE:BRAIN:CAT_MOUTH]
       [BODYGLOSS:PAW]
       [SIZE:3]
       [MAXAGE:10:20]
       [ATTACK:MAIN:BYTYPE:MOUTH:bite:bites:1:6:GORE][ATTACKFLAG_CANLATCH]
       [CHILD:1][CHILDNAME:kitten:kittens]
       [FAT:1]
       [DIURNAL]
       [STANDARD_FLESH]
       [HOMEOTHERM:10070]
       [LAYERING:100]
       [SWIMS_INNATE][SWIM_SPEED:2500]
       [MUNDANE]

And you're done.


Note that you don't have to edit the [ATTACK] line, even though it contains a MOUTH too. This is because the "mouth" in this case is referring to a Tag, not a Body-part (you'll note that our CAT_MOUTH has a mouth tag, too).