Difference between revisions of "Module:Test/data"

From RimWorld Wiki
Jump to navigation Jump to search
m
m
Line 600: Line 600:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
       {
 
       {
Line 608: Line 609:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
     },
 
     },
Line 8,032: Line 8,034:
 
     defName = "Bullet_MiniTurret",
 
     defName = "Bullet_MiniTurret",
 
     label = "mini-turret bullet",
 
     label = "mini-turret bullet",
 +
    projectile = {
 +
      damageDef = "Bullet",
 +
      damageAmountBase = 11,
 +
      speed = 70,
 +
    },
 
   },
 
   },
  
Line 8,057: Line 8,064:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Shoot",
 
         defaultProjectile = "Bullet_MiniTurret",
 
         defaultProjectile = "Bullet_MiniTurret",
 
         warmupTime = 0,
 
         warmupTime = 0,
Line 8,186: Line 8,194:
 
     defName = "Bullet_AutocannonTurret",
 
     defName = "Bullet_AutocannonTurret",
 
     label = "autocannon shell",
 
     label = "autocannon shell",
 +
    projectile = {
 +
      damageDef = "Bullet",
 +
      damageAmountBase = 25,
 +
      speed = 88,
 +
    },
 
   },
 
   },
  
Line 8,211: Line 8,224:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Shoot",
 
         defaultProjectile = "Bullet_AutocannonTurret",
 
         defaultProjectile = "Bullet_AutocannonTurret",
 
         warmupTime = 0,
 
         warmupTime = 0,
Line 8,316: Line 8,330:
 
     defName = "Bullet_TurretSniper",
 
     defName = "Bullet_TurretSniper",
 
     label = "uranium slug",
 
     label = "uranium slug",
 +
    projectile = {
 +
      damageDef = "Bullet",
 +
      damageAmountBase = 50,
 +
      speed = 120,
 +
    },
 
   },
 
   },
  
Line 8,341: Line 8,360:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Shoot",
 
         defaultProjectile = "Bullet_TurretSniper",
 
         defaultProjectile = "Bullet_TurretSniper",
 
         warmupTime = 0,
 
         warmupTime = 0,
Line 8,398: Line 8,418:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Shoot",
 
         warmupTime = 4.0,
 
         warmupTime = 4.0,
 
         forcedMissRadius = 13,
 
         forcedMissRadius = 13,
Line 9,797: Line 9,818:
 
         power = 28,
 
         power = 28,
 
         cooldownTime = 2.6,
 
         cooldownTime = 2.6,
 +
        DPS = 10.769,
 
       },
 
       },
 
       {
 
       {
Line 9,805: Line 9,827:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
     },
 
     },
Line 9,843: Line 9,866:
 
         power = 18.2,
 
         power = 18.2,
 
         cooldownTime = 2.6,
 
         cooldownTime = 2.6,
 +
        DPS = 7.0,
 
       },
 
       },
 
       {
 
       {
Line 9,852: Line 9,876:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         chanceFactor = 0.5,
 
         chanceFactor = 0.5,
 +
        DPS = 4.5,
 
       },
 
       },
 
     },
 
     },
Line 11,352: Line 11,377:
 
     label = "high-explosive shell",
 
     label = "high-explosive shell",
 
     thingClass = "Projectile_Explosive",
 
     thingClass = "Projectile_Explosive",
 +
    projectile = {
 +
      damageDef = "Bomb",
 +
      speed = 41,
 +
      explosionRadius = 2.9,
 +
      flyOverhead = true,
 +
      soundHitThickRoof = "Artillery_HitThickRoof",
 +
      soundExplode = "MortarBomb_Explode",
 +
      soundImpactAnticipate = "MortarRound_PreImpact",
 +
      soundAmbient = "MortarRound_Ambient",
 +
    },
 
   },
 
   },
  
Line 11,397: Line 11,432:
 
     label = "incendiary shell",
 
     label = "incendiary shell",
 
     thingClass = "Projectile_Explosive",
 
     thingClass = "Projectile_Explosive",
 +
    projectile = {
 +
      damageDef = "Flame",
 +
      speed = 41,
 +
      explosionRadius = 2.9,
 +
      preExplosionSpawnThingDef = "Filth_Fuel",
 +
      preExplosionSpawnChance = 0.25,
 +
      flyOverhead = true,
 +
      soundHitThickRoof = "Artillery_HitThickRoof",
 +
      soundExplode = "MortarIncendiary_Explode",
 +
      soundImpactAnticipate = "MortarRound_PreImpact",
 +
      soundAmbient = "MortarRound_Ambient",
 +
      ai_IsIncendiary = true,
 +
    },
 
   },
 
   },
  
Line 11,442: Line 11,490:
 
     label = "EMP shell",
 
     label = "EMP shell",
 
     thingClass = "Projectile_Explosive",
 
     thingClass = "Projectile_Explosive",
 +
    projectile = {
 +
      damageDef = "EMP",
 +
      speed = 41,
 +
      explosionRadius = 8.9,
 +
      flyOverhead = true,
 +
      soundHitThickRoof = "Artillery_HitThickRoof",
 +
      soundExplode = "Explosion_EMP",
 +
      soundImpactAnticipate = "MortarRound_PreImpact",
 +
      soundAmbient = "MortarRound_Ambient",
 +
    },
 
   },
 
   },
  
Line 11,487: Line 11,545:
 
     label = "Smoke shell",
 
     label = "Smoke shell",
 
     thingClass = "Projectile_Explosive",
 
     thingClass = "Projectile_Explosive",
 +
    projectile = {
 +
      damageDef = "Smoke",
 +
      speed = 41,
 +
      explosionRadius = 7.2,
 +
      flyOverhead = true,
 +
      soundHitThickRoof = "Artillery_HitThickRoof",
 +
      soundExplode = "Explosion_Smoke",
 +
      soundImpactAnticipate = "MortarRound_PreImpact",
 +
      soundAmbient = "MortarRound_Ambient",
 +
      postExplosionSpawnThingDef = "Gas_Smoke",
 +
      postExplosionSpawnChance = 1,
 +
    },
 
   },
 
   },
  
Line 11,536: Line 11,606:
 
     label = "firefoam shell",
 
     label = "firefoam shell",
 
     thingClass = "Projectile_Explosive",
 
     thingClass = "Projectile_Explosive",
 +
    projectile = {
 +
      damageDef = "Extinguish",
 +
      speed = 41,
 +
      explosionRadius = 5,
 +
      flyOverhead = true,
 +
      soundHitThickRoof = "Artillery_HitThickRoof",
 +
      soundExplode = "Explosion_EMP",
 +
      soundImpactAnticipate = "MortarRound_PreImpact",
 +
      soundAmbient = "MortarRound_Ambient",
 +
      postExplosionSpawnThingDef = "Filth_FireFoam",
 +
      postExplosionSpawnChance = 1,
 +
      postExplosionSpawnThingCount = 3,
 +
      applyDamageToExplosionCellsNeighbors = true,
 +
      explosionEffect = "ExtinguisherExplosion",
 +
    },
 
   },
 
   },
  
Line 11,582: Line 11,667:
 
     label = "antigrain warhead",
 
     label = "antigrain warhead",
 
     thingClass = "Projectile_Explosive",
 
     thingClass = "Projectile_Explosive",
 +
    projectile = {
 +
      damageDef = "BombSuper",
 +
      speed = 41,
 +
      explosionRadius = 14.9,
 +
      explosionChanceToStartFire = 0.22,
 +
      explosionDamageFalloff = true,
 +
      explosionEffect = "GiantExplosion",
 +
      flyOverhead = true,
 +
      soundHitThickRoof = "Artillery_HitThickRoof",
 +
      soundExplode = "Explosion_GiantBomb",
 +
      soundImpactAnticipate = "MortarRound_PreImpact",
 +
      soundAmbient = "MortarRound_Ambient",
 +
    },
 
   },
 
   },
  
Line 11,808: Line 11,906:
 
         power = 10,
 
         power = 10,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 5.0,
 
       },
 
       },
 
     },
 
     },
Line 13,588: Line 13,687:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Smokepop",
 
         label = "pop smoke",
 
         label = "pop smoke",
 
         violent = false,
 
         violent = false,
Line 13,672: Line 13,772:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_CastTargetEffect",
 
         label = "psychic shock lance",
 
         label = "psychic shock lance",
 
         targetable = true,
 
         targetable = true,
Line 13,759: Line 13,860:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_CastTargetEffect",
 
         label = "psychic insanity lance",
 
         label = "psychic insanity lance",
 
         targetable = true,
 
         targetable = true,
Line 15,347: Line 15,449:
 
     altitudeLayer = "Projectile",
 
     altitudeLayer = "Projectile",
 
     useHitPoints = false,
 
     useHitPoints = false,
 +
    projectile = {
 +
      alwaysFreeIntercept = true,
 +
      speed = 1.5,
 +
    },
 
   },
 
   },
  
Line 16,167: Line 16,273:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
       {
 
       {
Line 16,175: Line 16,282:
 
         power = 15.7,
 
         power = 15.7,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 7.85,
 
       },
 
       },
 
     },
 
     },
Line 16,205: Line 16,313:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
       {
 
       {
Line 16,213: Line 16,322:
 
         power = 16,
 
         power = 16,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 8.0,
 
       },
 
       },
 
       {
 
       {
Line 16,221: Line 16,331:
 
         power = 16,
 
         power = 16,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 8.0,
 
       },
 
       },
 
     },
 
     },
Line 16,257: Line 16,368:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
       {
 
       {
Line 16,265: Line 16,377:
 
         power = 23,
 
         power = 23,
 
         cooldownTime = 2.6,
 
         cooldownTime = 2.6,
 +
        DPS = 8.846,
 
       },
 
       },
 
       {
 
       {
Line 16,273: Line 16,386:
 
         power = 23,
 
         power = 23,
 
         cooldownTime = 2.6,
 
         cooldownTime = 2.6,
 +
        DPS = 8.846,
 
       },
 
       },
 
     },
 
     },
Line 16,314: Line 16,428:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
       {
 
       {
Line 16,322: Line 16,437:
 
         power = 14,
 
         power = 14,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 7.0,
 
       },
 
       },
 
     },
 
     },
Line 16,353: Line 16,469:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
       {
 
       {
Line 16,361: Line 16,478:
 
         power = 12,
 
         power = 12,
 
         cooldownTime = 1.5,
 
         cooldownTime = 1.5,
 +
        DPS = 8.0,
 
       },
 
       },
 
       {
 
       {
Line 16,369: Line 16,487:
 
         power = 13,
 
         power = 13,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 6.5,
 
       },
 
       },
 
     },
 
     },
Line 16,405: Line 16,524:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
       {
 
       {
Line 16,413: Line 16,533:
 
         power = 15,
 
         power = 15,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 7.5,
 
       },
 
       },
 
       {
 
       {
Line 16,421: Line 16,542:
 
         power = 15,
 
         power = 15,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 7.5,
 
       },
 
       },
 
     },
 
     },
Line 16,459: Line 16,581:
 
         power = 13,
 
         power = 13,
 
         cooldownTime = 2.6,
 
         cooldownTime = 2.6,
 +
        DPS = 5.0,
 
       },
 
       },
 
       {
 
       {
Line 16,467: Line 16,590:
 
         power = 23,
 
         power = 23,
 
         cooldownTime = 2.6,
 
         cooldownTime = 2.6,
 +
        DPS = 8.846,
 
       },
 
       },
 
     },
 
     },
Line 16,487: Line 16,611:
 
     defName = "Bullet_Revolver",
 
     defName = "Bullet_Revolver",
 
     label = "revolver bullet",
 
     label = "revolver bullet",
 +
    projectile = {
 +
      damageDef = "Bullet",
 +
      damageAmountBase = 12,
 +
      stoppingPower = 1,
 +
      speed = 55,
 +
    },
 
   },
 
   },
  
Line 16,524: Line 16,654:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Shoot",
 
         defaultProjectile = "Bullet_Revolver",
 
         defaultProjectile = "Bullet_Revolver",
 
         warmupTime = 0.3,
 
         warmupTime = 0.3,
Line 16,537: Line 16,668:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
       {
 
       {
Line 16,546: Line 16,678:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
     },
 
     },
Line 16,585: Line 16,718:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Shoot",
 
         defaultProjectile = "Bullet_Autopistol",
 
         defaultProjectile = "Bullet_Autopistol",
 
         warmupTime = 0.3,
 
         warmupTime = 0.3,
Line 16,598: Line 16,732:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
       {
 
       {
Line 16,607: Line 16,742:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
     },
 
     },
Line 16,621: Line 16,757:
 
     defName = "Bullet_Autopistol",
 
     defName = "Bullet_Autopistol",
 
     label = "autopistol bullet",
 
     label = "autopistol bullet",
 +
    projectile = {
 +
      damageDef = "Bullet",
 +
      damageAmountBase = 10,
 +
      speed = 55,
 +
    },
 
   },
 
   },
  
Line 16,655: Line 16,796:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Shoot",
 
         defaultProjectile = "Bullet_MachinePistol",
 
         defaultProjectile = "Bullet_MachinePistol",
 
         warmupTime = 0.5,
 
         warmupTime = 0.5,
Line 16,670: Line 16,812:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
       {
 
       {
Line 16,679: Line 16,822:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
     },
 
     },
Line 16,693: Line 16,837:
 
     defName = "Bullet_MachinePistol",
 
     defName = "Bullet_MachinePistol",
 
     label = "machine pistol bullet",
 
     label = "machine pistol bullet",
 +
    projectile = {
 +
      damageDef = "Bullet",
 +
      damageAmountBase = 6,
 +
      speed = 55,
 +
    },
 
   },
 
   },
  
Line 16,722: Line 16,871:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Shoot",
 
         defaultProjectile = "Bullet_IncendiaryLauncher",
 
         defaultProjectile = "Bullet_IncendiaryLauncher",
 
         warmupTime = 3.5,
 
         warmupTime = 3.5,
Line 16,740: Line 16,890:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
       {
 
       {
Line 16,749: Line 16,900:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
     },
 
     },
Line 16,764: Line 16,916:
 
     label = "incendiary bolt",
 
     label = "incendiary bolt",
 
     thingClass = "Projectile_Explosive",
 
     thingClass = "Projectile_Explosive",
 +
    projectile = {
 +
      speed = 40,
 +
      damageDef = "Flame",
 +
      explosionRadius = 1.1,
 +
      preExplosionSpawnThingDef = "Filth_Fuel",
 +
      preExplosionSpawnChance = 0.6,
 +
      ai_IsIncendiary = true,
 +
      arcHeightFactor = 0.2,
 +
      shadowSize = 0.6,
 +
    },
 
   },
 
   },
  
Line 16,799: Line 16,961:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Shoot",
 
         defaultProjectile = "Bullet_SmokeLauncher",
 
         defaultProjectile = "Bullet_SmokeLauncher",
 
         warmupTime = 3.5,
 
         warmupTime = 3.5,
Line 16,817: Line 16,980:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
       {
 
       {
Line 16,826: Line 16,990:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
     },
 
     },
Line 16,841: Line 17,006:
 
     label = "smoke launcher shell",
 
     label = "smoke launcher shell",
 
     thingClass = "Projectile_Explosive",
 
     thingClass = "Projectile_Explosive",
 +
    projectile = {
 +
      speed = 40,
 +
      damageDef = "Smoke",
 +
      explosionRadius = 2.4,
 +
      postExplosionSpawnThingDef = "Gas_Smoke",
 +
      postExplosionSpawnChance = 1,
 +
      ai_IsIncendiary = true,
 +
      arcHeightFactor = 0.2,
 +
      shadowSize = 0.6,
 +
    },
 
   },
 
   },
  
Line 16,874: Line 17,049:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Shoot",
 
         defaultProjectile = "Bullet_EMPLauncher",
 
         defaultProjectile = "Bullet_EMPLauncher",
 
         warmupTime = 3.5,
 
         warmupTime = 3.5,
Line 16,892: Line 17,068:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
       {
 
       {
Line 16,901: Line 17,078:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
     },
 
     },
Line 16,916: Line 17,094:
 
     label = "EMP launcher shell",
 
     label = "EMP launcher shell",
 
     thingClass = "Projectile_Explosive",
 
     thingClass = "Projectile_Explosive",
 +
    projectile = {
 +
      speed = 40,
 +
      damageDef = "EMP",
 +
      explosionRadius = 1.1,
 +
      ai_IsIncendiary = true,
 +
      arcHeightFactor = 0.2,
 +
      shadowSize = 0.6,
 +
    },
 
   },
 
   },
  
Line 16,949: Line 17,135:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Shoot",
 
         defaultProjectile = "Bullet_BoltActionRifle",
 
         defaultProjectile = "Bullet_BoltActionRifle",
 
         warmupTime = 1.7,
 
         warmupTime = 1.7,
Line 16,962: Line 17,149:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
       {
 
       {
Line 16,971: Line 17,159:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
     },
 
     },
Line 16,985: Line 17,174:
 
     defName = "Bullet_BoltActionRifle",
 
     defName = "Bullet_BoltActionRifle",
 
     label = "bolt-action rifle bullet",
 
     label = "bolt-action rifle bullet",
 +
    projectile = {
 +
      damageDef = "Bullet",
 +
      damageAmountBase = 18,
 +
      stoppingPower = 1.5,
 +
      speed = 70,
 +
    },
 
   },
 
   },
  
Line 17,018: Line 17,213:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Shoot",
 
         defaultProjectile = "Bullet_Shotgun",
 
         defaultProjectile = "Bullet_Shotgun",
 
         warmupTime = 0.9,
 
         warmupTime = 0.9,
Line 17,031: Line 17,227:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
       {
 
       {
Line 17,040: Line 17,237:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
     },
 
     },
Line 17,054: Line 17,252:
 
     defName = "Bullet_Shotgun",
 
     defName = "Bullet_Shotgun",
 
     label = "shotgun blast",
 
     label = "shotgun blast",
 +
    projectile = {
 +
      damageDef = "Bullet",
 +
      damageAmountBase = 18,
 +
      stoppingPower = 3,
 +
      armorPenetrationBase = 0.14,
 +
      speed = 55,
 +
    },
 
   },
 
   },
  
Line 17,088: Line 17,293:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Shoot",
 
         defaultProjectile = "Bullet_Shotgun",
 
         defaultProjectile = "Bullet_Shotgun",
 
         warmupTime = 1.2,
 
         warmupTime = 1.2,
Line 17,106: Line 17,312:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
       {
 
       {
Line 17,115: Line 17,322:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
     },
 
     },
Line 17,151: Line 17,359:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Shoot",
 
         defaultProjectile = "Bullet_HeavySMG",
 
         defaultProjectile = "Bullet_HeavySMG",
 
         warmupTime = 0.9,
 
         warmupTime = 0.9,
Line 17,169: Line 17,378:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
       {
 
       {
Line 17,178: Line 17,388:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
     },
 
     },
Line 17,192: Line 17,403:
 
     defName = "Bullet_HeavySMG",
 
     defName = "Bullet_HeavySMG",
 
     label = "heavy SMG bullet",
 
     label = "heavy SMG bullet",
 +
    projectile = {
 +
      damageDef = "Bullet",
 +
      damageAmountBase = 12,
 +
      speed = 48,
 +
    },
 
   },
 
   },
  
Line 17,226: Line 17,442:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Shoot",
 
         defaultProjectile = "Bullet_LMG",
 
         defaultProjectile = "Bullet_LMG",
 
         warmupTime = 1.8,
 
         warmupTime = 1.8,
Line 17,244: Line 17,461:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
       {
 
       {
Line 17,253: Line 17,471:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
     },
 
     },
Line 17,267: Line 17,486:
 
     defName = "Bullet_LMG",
 
     defName = "Bullet_LMG",
 
     label = "LMG bullet",
 
     label = "LMG bullet",
 +
    projectile = {
 +
      damageDef = "Bullet",
 +
      damageAmountBase = 11,
 +
      stoppingPower = 1,
 +
      speed = 46,
 +
    },
 
   },
 
   },
  
Line 17,301: Line 17,526:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Shoot",
 
         defaultProjectile = "Bullet_AssaultRifle",
 
         defaultProjectile = "Bullet_AssaultRifle",
 
         warmupTime = 1.0,
 
         warmupTime = 1.0,
Line 17,319: Line 17,545:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
       {
 
       {
Line 17,328: Line 17,555:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
     },
 
     },
Line 17,342: Line 17,570:
 
     defName = "Bullet_AssaultRifle",
 
     defName = "Bullet_AssaultRifle",
 
     label = "assault rifle bullet",
 
     label = "assault rifle bullet",
 +
    projectile = {
 +
      damageDef = "Bullet",
 +
      damageAmountBase = 11,
 +
      speed = 70,
 +
    },
 
   },
 
   },
  
Line 17,376: Line 17,609:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Shoot",
 
         defaultProjectile = "Bullet_SniperRifle",
 
         defaultProjectile = "Bullet_SniperRifle",
 
         warmupTime = 3.5,
 
         warmupTime = 3.5,
Line 17,389: Line 17,623:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
       {
 
       {
Line 17,398: Line 17,633:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
     },
 
     },
Line 17,418: Line 17,654:
 
     defName = "Bullet_SniperRifle",
 
     defName = "Bullet_SniperRifle",
 
     label = "sniper rifle bullet",
 
     label = "sniper rifle bullet",
 +
    projectile = {
 +
      damageDef = "Bullet",
 +
      damageAmountBase = 25,
 +
      stoppingPower = 1.5,
 +
      speed = 100,
 +
    },
 
   },
 
   },
  
Line 17,455: Line 17,697:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Shoot",
 
         defaultProjectile = "Bullet_Minigun",
 
         defaultProjectile = "Bullet_Minigun",
 
         warmupTime = 2.5,
 
         warmupTime = 2.5,
Line 17,470: Line 17,713:
 
         power = 11.7,
 
         power = 11.7,
 
         cooldownTime = 2.6,
 
         cooldownTime = 2.6,
 +
        DPS = 4.5,
 
       },
 
       },
 
     },
 
     },
Line 17,484: Line 17,728:
 
     defName = "Bullet_Minigun",
 
     defName = "Bullet_Minigun",
 
     label = "minigun bullet",
 
     label = "minigun bullet",
 +
    projectile = {
 +
      damageDef = "Bullet",
 +
      damageAmountBase = 10,
 +
      speed = 70,
 +
    },
 
   },
 
   },
  
Line 17,511: Line 17,760:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_ShootOneUse",
 
         defaultProjectile = "Bullet_Rocket",
 
         defaultProjectile = "Bullet_Rocket",
 
         forcedMissRadius = 2.9,
 
         forcedMissRadius = 2.9,
Line 17,532: Line 17,782:
 
         power = 11.7,
 
         power = 11.7,
 
         cooldownTime = 2.6,
 
         cooldownTime = 2.6,
 +
        DPS = 4.5,
 
       },
 
       },
 
     },
 
     },
Line 17,562: Line 17,813:
 
     label = "rocket",
 
     label = "rocket",
 
     thingClass = "Projectile_Explosive",
 
     thingClass = "Projectile_Explosive",
 +
    projectile = {
 +
      damageDef = "Bomb",
 +
      explosionRadius = 3.9,
 +
      speed = 50,
 +
    },
 
   },
 
   },
  
Line 17,589: Line 17,845:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_ShootOneUse",
 
         defaultProjectile = "Bullet_DoomsdayRocket",
 
         defaultProjectile = "Bullet_DoomsdayRocket",
 
         forcedMissRadius = 1.9,
 
         forcedMissRadius = 1.9,
Line 17,608: Line 17,865:
 
         power = 11.7,
 
         power = 11.7,
 
         cooldownTime = 2.6,
 
         cooldownTime = 2.6,
 +
        DPS = 4.5,
 
       },
 
       },
 
     },
 
     },
Line 17,638: Line 17,896:
 
     label = "doomsday rocket",
 
     label = "doomsday rocket",
 
     thingClass = "Projectile_DoomsdayRocket",
 
     thingClass = "Projectile_DoomsdayRocket",
 +
    projectile = {
 +
      damageDef = "Bomb",
 +
      explosionRadius = 7.8,
 +
      speed = 50,
 +
    },
 
   },
 
   },
  
Line 17,654: Line 17,917:
 
     label = "projectile",
 
     label = "projectile",
 
     useHitPoints = false,
 
     useHitPoints = false,
 +
    projectile = {
 +
      speed = 12,
 +
      arcHeightFactor = 2,
 +
      shadowSize = 0.4,
 +
    },
 
   },
 
   },
  
Line 17,707: Line 17,975:
 
       {
 
       {
 
         label = "throw frag grenade",
 
         label = "throw frag grenade",
 +
        verbClass = "Verb_LaunchProjectile",
 
         range = 12.9,
 
         range = 12.9,
 
         forcedMissRadius = 1.9,
 
         forcedMissRadius = 1.9,
Line 17,740: Line 18,009:
 
     },
 
     },
 
     thingClass = "Projectile_Explosive",
 
     thingClass = "Projectile_Explosive",
 +
    projectile = {
 +
      explosionRadius = 1.9,
 +
      damageDef = "Bomb",
 +
      explosionDelay = 100,
 +
    },
 
   },
 
   },
  
Line 17,783: Line 18,057:
 
       {
 
       {
 
         label = "throw molotov",
 
         label = "throw molotov",
 +
        verbClass = "Verb_LaunchProjectile",
 
         range = 12.9,
 
         range = 12.9,
 
         forcedMissRadius = 1.9,
 
         forcedMissRadius = 1.9,
Line 17,802: Line 18,077:
 
         requiredDamageTypeToExplode = "Flame",
 
         requiredDamageTypeToExplode = "Flame",
 
       },
 
       },
 +
    },
 +
  },
 +
 +
  ["ThingDef:BaseIncendiaryProjectile"] = {
 +
    _ = {
 +
      Name = "BaseIncendiaryProjectile",
 +
      ParentName = "BaseGrenadeProjectile",
 +
      Abstract = true,
 +
      DefCategory = "ThingDef",
 +
      FileName = "RangedIndustrialGrenades.xml",
 +
      GameVersion = "1.2.2753",
 +
      DLC = "Core",
 +
    },
 +
    projectile = {
 +
      explosionRadius = 1.1,
 +
      damageDef = "Flame",
 +
      preExplosionSpawnThingDef = "Filth_Fuel",
 +
      ai_IsIncendiary = true,
 +
      shadowSize = 0.6,
 
     },
 
     },
 
   },
 
   },
Line 17,849: Line 18,143:
 
       {
 
       {
 
         label = "throw EMP grenade",
 
         label = "throw EMP grenade",
 +
        verbClass = "Verb_LaunchProjectile",
 
         range = 12.9,
 
         range = 12.9,
 
         forcedMissRadius = 1.9,
 
         forcedMissRadius = 1.9,
Line 17,885: Line 18,180:
 
     label = "EMP grenade",
 
     label = "EMP grenade",
 
     thingClass = "Projectile_Explosive",
 
     thingClass = "Projectile_Explosive",
 +
    projectile = {
 +
      explosionRadius = 3.5,
 +
      damageDef = "EMP",
 +
      explosionDelay = 100,
 +
    },
 
   },
 
   },
  
Line 17,897: Line 18,197:
 
     defName = "Bullet_ChargeBlasterHeavy",
 
     defName = "Bullet_ChargeBlasterHeavy",
 
     label = "charge blaster shot",
 
     label = "charge blaster shot",
 +
    projectile = {
 +
      damageDef = "Bullet",
 +
      damageAmountBase = 15,
 +
      speed = 90,
 +
    },
 
   },
 
   },
  
Line 17,929: Line 18,234:
 
         power = 11.7,
 
         power = 11.7,
 
         cooldownTime = 2.6,
 
         cooldownTime = 2.6,
 +
        DPS = 4.5,
 
       },
 
       },
 
     },
 
     },
Line 17,944: Line 18,250:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Shoot",
 
         defaultProjectile = "Bullet_ChargeBlasterHeavy",
 
         defaultProjectile = "Bullet_ChargeBlasterHeavy",
 
         warmupTime = 1.25,
 
         warmupTime = 1.25,
Line 17,967: Line 18,274:
 
     label = "inferno cannon shell",
 
     label = "inferno cannon shell",
 
     thingClass = "Projectile_Explosive",
 
     thingClass = "Projectile_Explosive",
 +
    projectile = {
 +
      damageDef = "Flame",
 +
      speed = 45,
 +
      explosionRadius = 2.4,
 +
      preExplosionSpawnThingDef = "Filth_Fuel",
 +
      preExplosionSpawnChance = 0.27,
 +
      ai_IsIncendiary = true,
 +
    },
 
   },
 
   },
  
Line 17,995: Line 18,310:
 
         power = 11.7,
 
         power = 11.7,
 
         cooldownTime = 2.6,
 
         cooldownTime = 2.6,
 +
        DPS = 4.5,
 
       },
 
       },
 
     },
 
     },
Line 18,013: Line 18,329:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Shoot",
 
         defaultProjectile = "Bullet_InfernoCannon",
 
         defaultProjectile = "Bullet_InfernoCannon",
 
         forcedMissRadius = 3.5,
 
         forcedMissRadius = 3.5,
Line 18,048: Line 18,365:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Shoot",
 
         defaultProjectile = "Bullet_NeedleGun",
 
         defaultProjectile = "Bullet_NeedleGun",
 
         warmupTime = 2.5,
 
         warmupTime = 2.5,
Line 18,062: Line 18,380:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2.6,
 
         cooldownTime = 2.6,
 +
        DPS = 3.462,
 
       },
 
       },
 
     },
 
     },
Line 18,076: Line 18,395:
 
     defName = "Bullet_NeedleGun",
 
     defName = "Bullet_NeedleGun",
 
     label = "needle shot",
 
     label = "needle shot",
 +
    projectile = {
 +
      damageDef = "Bullet",
 +
      damageAmountBase = 15,
 +
      armorPenetrationBase = 0.35,
 +
      stoppingPower = 1.5,
 +
      speed = 90,
 +
    },
 
   },
 
   },
  
Line 18,164: Line 18,490:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Shoot",
 
         defaultProjectile = "Arrow_Short",
 
         defaultProjectile = "Arrow_Short",
 
         warmupTime = 1.35,
 
         warmupTime = 1.35,
Line 18,178: Line 18,505:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
     },
 
     },
Line 18,192: Line 18,520:
 
     defName = "Arrow_Short",
 
     defName = "Arrow_Short",
 
     label = "shortbow arrow",
 
     label = "shortbow arrow",
 +
    projectile = {
 +
      damageDef = "Arrow",
 +
      damageAmountBase = 11,
 +
      speed = 44,
 +
    },
 
   },
 
   },
  
Line 18,227: Line 18,560:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Shoot",
 
         defaultProjectile = "Pilum_Thrown",
 
         defaultProjectile = "Pilum_Thrown",
 
         warmupTime = 4,
 
         warmupTime = 4,
Line 18,240: Line 18,574:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
       {
 
       {
Line 18,248: Line 18,583:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
     },
 
     },
Line 18,262: Line 18,598:
 
     defName = "Pilum_Thrown",
 
     defName = "Pilum_Thrown",
 
     label = "pilum",
 
     label = "pilum",
 +
    projectile = {
 +
      damageDef = "RangedStab",
 +
      damageAmountBase = 25,
 +
      stoppingPower = 2.5,
 +
      armorPenetrationBase = 0.10,
 +
      speed = 26,
 +
    },
 
   },
 
   },
  
Line 18,301: Line 18,644:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Shoot",
 
         defaultProjectile = "Arrow_Recurve",
 
         defaultProjectile = "Arrow_Recurve",
 
         warmupTime = 1.45,
 
         warmupTime = 1.45,
Line 18,315: Line 18,659:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
     },
 
     },
Line 18,329: Line 18,674:
 
     defName = "Arrow_Recurve",
 
     defName = "Arrow_Recurve",
 
     label = "recurve bow arrow",
 
     label = "recurve bow arrow",
 +
    projectile = {
 +
      damageDef = "ArrowHighVelocity",
 +
      damageAmountBase = 14,
 +
      stoppingPower = 1,
 +
      speed = 56,
 +
    },
 
   },
 
   },
  
Line 18,360: Line 18,711:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Shoot",
 
         defaultProjectile = "Arrow_Great",
 
         defaultProjectile = "Arrow_Great",
 
         warmupTime = 2.0,
 
         warmupTime = 2.0,
Line 18,374: Line 18,726:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
     },
 
     },
Line 18,397: Line 18,750:
 
     defName = "Arrow_Great",
 
     defName = "Arrow_Great",
 
     label = "greatbow arrow",
 
     label = "greatbow arrow",
 +
    projectile = {
 +
      damageDef = "Arrow",
 +
      damageAmountBase = 17,
 +
      stoppingPower = 1.5,
 +
      armorPenetrationBase = 0.15,
 +
      speed = 49,
 +
    },
 
   },
 
   },
  
Line 18,440: Line 18,800:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Shoot",
 
         defaultProjectile = "Bullet_ChargeRifle",
 
         defaultProjectile = "Bullet_ChargeRifle",
 
         warmupTime = 1.0,
 
         warmupTime = 1.0,
Line 18,455: Line 18,816:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
       {
 
       {
Line 18,464: Line 18,826:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
     },
 
     },
Line 18,478: Line 18,841:
 
     defName = "Bullet_ChargeRifle",
 
     defName = "Bullet_ChargeRifle",
 
     label = "charge shot",
 
     label = "charge shot",
 +
    projectile = {
 +
      damageDef = "Bullet",
 +
      damageAmountBase = 15,
 +
      armorPenetrationBase = 0.35,
 +
      speed = 70,
 +
    },
 
   },
 
   },
  
Line 18,522: Line 18,891:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Shoot",
 
         defaultProjectile = "Bullet_ChargeLance",
 
         defaultProjectile = "Bullet_ChargeLance",
 
         warmupTime = 1.7,
 
         warmupTime = 1.7,
Line 18,536: Line 18,906:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
     },
 
     },
Line 18,550: Line 18,921:
 
     defName = "Bullet_ChargeLance",
 
     defName = "Bullet_ChargeLance",
 
     label = "charge lance shot",
 
     label = "charge lance shot",
 +
    projectile = {
 +
      damageDef = "Bullet",
 +
      damageAmountBase = 30,
 +
      stoppingPower = 1.5,
 +
      speed = 120,
 +
    },
 
   },
 
   },
  
Line 18,623: Line 19,000:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Bombardment",
 
         warmupTime = 3,
 
         warmupTime = 3,
 
         range = 44.9,
 
         range = 44.9,
Line 18,659: Line 19,037:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_PowerBeam",
 
         warmupTime = 3,
 
         warmupTime = 3,
 
         range = 44.9,
 
         range = 44.9,
Line 18,698: Line 19,077:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Spawn",
 
         warmupTime = 3,
 
         warmupTime = 3,
 
         spawnDef = "Tornado",
 
         spawnDef = "Tornado",
Line 20,112: Line 20,492:
 
         cooldownTime = 2.6,
 
         cooldownTime = 2.6,
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 +
        DPS = 5.0,
 
       },
 
       },
 
       {
 
       {
Line 20,122: Line 20,503:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 +
        DPS = 5.0,
 
       },
 
       },
 
       {
 
       {
Line 20,132: Line 20,514:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontRightLeg",
 
         linkedBodyPartsGroup = "FrontRightLeg",
 +
        DPS = 5.0,
 
       },
 
       },
 
       {
 
       {
Line 20,141: Line 20,524:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.5,
 
         chanceFactor = 0.5,
 +
        DPS = 5.0,
 
       },
 
       },
 
     },
 
     },
Line 20,211: Line 20,595:
 
         cooldownTime = 1.5,
 
         cooldownTime = 1.5,
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 +
        DPS = 3.667,
 
       },
 
       },
 
       {
 
       {
Line 20,221: Line 20,606:
 
         cooldownTime = 1.5,
 
         cooldownTime = 1.5,
 
         linkedBodyPartsGroup = "FrontRightLeg",
 
         linkedBodyPartsGroup = "FrontRightLeg",
 +
        DPS = 3.667,
 
       },
 
       },
 
       {
 
       {
Line 20,230: Line 20,616:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.7,
 
         chanceFactor = 0.7,
 +
        DPS = 3.5,
 
       },
 
       },
 
       {
 
       {
Line 20,240: Line 20,627:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 3.5,
 
       },
 
       },
 
     },
 
     },
Line 20,300: Line 20,688:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontLeftClaws",
 
         linkedBodyPartsGroup = "FrontLeftClaws",
 +
        DPS = 4.0,
 
       },
 
       },
 
       {
 
       {
Line 20,309: Line 20,698:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontRightClaws",
 
         linkedBodyPartsGroup = "FrontRightClaws",
 +
        DPS = 4.0,
 
       },
 
       },
 
       {
 
       {
Line 20,318: Line 20,708:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.7,
 
         chanceFactor = 0.7,
 +
        DPS = 3.846,
 
       },
 
       },
 
       {
 
       {
Line 20,328: Line 20,719:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 2.5,
 
       },
 
       },
 
     },
 
     },
Line 20,409: Line 20,801:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 +
        DPS = 4.5,
 
       },
 
       },
 
       {
 
       {
Line 20,419: Line 20,812:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontRightLeg",
 
         linkedBodyPartsGroup = "FrontRightLeg",
 +
        DPS = 4.5,
 
       },
 
       },
 
       {
 
       {
Line 20,428: Line 20,822:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.7,
 
         chanceFactor = 0.7,
 +
        DPS = 5.0,
 
       },
 
       },
 
       {
 
       {
Line 20,438: Line 20,833:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 3.5,
 
       },
 
       },
 
     },
 
     },
Line 20,542: Line 20,938:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 +
        DPS = 8.5,
 
       },
 
       },
 
       {
 
       {
Line 20,551: Line 20,948:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontRightPaw",
 
         linkedBodyPartsGroup = "FrontRightPaw",
 +
        DPS = 8.5,
 
       },
 
       },
 
       {
 
       {
Line 20,560: Line 20,958:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.5,
 
         chanceFactor = 0.5,
 +
        DPS = 9.077,
 
       },
 
       },
 
       {
 
       {
Line 20,570: Line 20,969:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 5.5,
 
       },
 
       },
 
     },
 
     },
Line 20,665: Line 21,065:
 
         cooldownTime = 1.5,
 
         cooldownTime = 1.5,
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 +
        DPS = 7.333,
 
       },
 
       },
 
       {
 
       {
Line 20,674: Line 21,075:
 
         cooldownTime = 1.5,
 
         cooldownTime = 1.5,
 
         linkedBodyPartsGroup = "FrontRightPaw",
 
         linkedBodyPartsGroup = "FrontRightPaw",
 +
        DPS = 7.333,
 
       },
 
       },
 
       {
 
       {
Line 20,683: Line 21,085:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.7,
 
         chanceFactor = 0.7,
 +
        DPS = 8.0,
 
       },
 
       },
 
       {
 
       {
Line 20,693: Line 21,096:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 4.5,
 
       },
 
       },
 
     },
 
     },
Line 20,788: Line 21,192:
 
         cooldownTime = 1.5,
 
         cooldownTime = 1.5,
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 +
        DPS = 6.0,
 
       },
 
       },
 
       {
 
       {
Line 20,797: Line 21,202:
 
         cooldownTime = 1.5,
 
         cooldownTime = 1.5,
 
         linkedBodyPartsGroup = "FrontRightPaw",
 
         linkedBodyPartsGroup = "FrontRightPaw",
 +
        DPS = 6.0,
 
       },
 
       },
 
       {
 
       {
Line 20,806: Line 21,212:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.7,
 
         chanceFactor = 0.7,
 +
        DPS = 6.0,
 
       },
 
       },
 
       {
 
       {
Line 20,816: Line 21,223:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 3.0,
 
       },
 
       },
 
     },
 
     },
Line 20,931: Line 21,339:
 
         cooldownTime = 1.5,
 
         cooldownTime = 1.5,
 
         linkedBodyPartsGroup = "Feet",
 
         linkedBodyPartsGroup = "Feet",
 +
        DPS = 4.667,
 
       },
 
       },
 
       {
 
       {
Line 20,940: Line 21,349:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "Beak",
 
         linkedBodyPartsGroup = "Beak",
 +
        DPS = 4.0,
 
       },
 
       },
 
       {
 
       {
Line 20,950: Line 21,360:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 3.0,
 
       },
 
       },
 
     },
 
     },
Line 21,006: Line 21,417:
 
         cooldownTime = 1.5,
 
         cooldownTime = 1.5,
 
         linkedBodyPartsGroup = "Feet",
 
         linkedBodyPartsGroup = "Feet",
 +
        DPS = 5.333,
 
       },
 
       },
 
       {
 
       {
Line 21,015: Line 21,427:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "Beak",
 
         linkedBodyPartsGroup = "Beak",
 +
        DPS = 4.5,
 
       },
 
       },
 
       {
 
       {
Line 21,025: Line 21,438:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 3.0,
 
       },
 
       },
 
     },
 
     },
Line 21,081: Line 21,495:
 
         cooldownTime = 1.5,
 
         cooldownTime = 1.5,
 
         linkedBodyPartsGroup = "Feet",
 
         linkedBodyPartsGroup = "Feet",
 +
        DPS = 7.333,
 
       },
 
       },
 
       {
 
       {
Line 21,090: Line 21,505:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "Beak",
 
         linkedBodyPartsGroup = "Beak",
 +
        DPS = 5.5,
 
       },
 
       },
 
       {
 
       {
Line 21,100: Line 21,516:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 3.0,
 
       },
 
       },
 
     },
 
     },
Line 21,156: Line 21,573:
 
         cooldownTime = 1.5,
 
         cooldownTime = 1.5,
 
         linkedBodyPartsGroup = "Feet",
 
         linkedBodyPartsGroup = "Feet",
 +
        DPS = 3.333,
 
       },
 
       },
 
       {
 
       {
Line 21,165: Line 21,583:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "Beak",
 
         linkedBodyPartsGroup = "Beak",
 +
        DPS = 3.0,
 
       },
 
       },
 
       {
 
       {
Line 21,175: Line 21,594:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 2.0,
 
       },
 
       },
 
     },
 
     },
Line 21,209: Line 21,629:
 
         cooldownTime = 1.5,
 
         cooldownTime = 1.5,
 
         linkedBodyPartsGroup = "Feet",
 
         linkedBodyPartsGroup = "Feet",
 +
        DPS = 1.333,
 
       },
 
       },
 
       {
 
       {
Line 21,218: Line 21,639:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "Beak",
 
         linkedBodyPartsGroup = "Beak",
 +
        DPS = 1.5,
 
       },
 
       },
 
       {
 
       {
Line 21,228: Line 21,650:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 0.667,
 
       },
 
       },
 
     },
 
     },
Line 21,299: Line 21,722:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.7,
 
         chanceFactor = 0.7,
 +
        DPS = 3.65,
 
       },
 
       },
 
       {
 
       {
Line 21,309: Line 21,733:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 3.0,
 
       },
 
       },
 
     },
 
     },
Line 21,387: Line 21,812:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.7,
 
         chanceFactor = 0.7,
 +
        DPS = 3.385,
 
       },
 
       },
 
       {
 
       {
Line 21,397: Line 21,823:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 3.5,
 
       },
 
       },
 
       {
 
       {
Line 21,407: Line 21,834:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 +
        DPS = 4.0,
 
       },
 
       },
 
       {
 
       {
Line 21,417: Line 21,845:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontRightLeg",
 
         linkedBodyPartsGroup = "FrontRightLeg",
 +
        DPS = 4.0,
 
       },
 
       },
 
     },
 
     },
Line 21,480: Line 21,909:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 +
        DPS = 3.65,
 
       },
 
       },
 
       {
 
       {
Line 21,490: Line 21,920:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontRightLeg",
 
         linkedBodyPartsGroup = "FrontRightLeg",
 +
        DPS = 3.65,
 
       },
 
       },
 
       {
 
       {
Line 21,499: Line 21,930:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.7,
 
         chanceFactor = 0.7,
 +
        DPS = 4.0,
 
       },
 
       },
 
       {
 
       {
Line 21,509: Line 21,941:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 3.5,
 
       },
 
       },
 
     },
 
     },
Line 21,580: Line 22,013:
 
         cooldownTime = 1.5,
 
         cooldownTime = 1.5,
 
         linkedBodyPartsGroup = "Feet",
 
         linkedBodyPartsGroup = "Feet",
 +
        DPS = 2.0,
 
       },
 
       },
 
       {
 
       {
Line 21,589: Line 22,023:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "Beak",
 
         linkedBodyPartsGroup = "Beak",
 +
        DPS = 2.0,
 
       },
 
       },
 
       {
 
       {
Line 21,599: Line 22,034:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 1.333,
 
       },
 
       },
 
     },
 
     },
Line 21,671: Line 22,107:
 
         cooldownTime = 2.9,
 
         cooldownTime = 2.9,
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 +
        DPS = 5.172,
 
       },
 
       },
 
       {
 
       {
Line 21,681: Line 22,118:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 +
        DPS = 5.0,
 
       },
 
       },
 
       {
 
       {
Line 21,691: Line 22,129:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontRightLeg",
 
         linkedBodyPartsGroup = "FrontRightLeg",
 +
        DPS = 5.0,
 
       },
 
       },
 
       {
 
       {
Line 21,700: Line 22,139:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.5,
 
         chanceFactor = 0.5,
 +
        DPS = 5.0,
 
       },
 
       },
 
     },
 
     },
Line 21,780: Line 22,220:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.7,
 
         chanceFactor = 0.7,
 +
        DPS = 3.65,
 
       },
 
       },
 
       {
 
       {
Line 21,790: Line 22,231:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 3.0,
 
       },
 
       },
 
     },
 
     },
Line 21,859: Line 22,301:
 
         cooldownTime = 1.5,
 
         cooldownTime = 1.5,
 
         linkedBodyPartsGroup = "Feet",
 
         linkedBodyPartsGroup = "Feet",
 +
        DPS = 2.0,
 
       },
 
       },
 
       {
 
       {
Line 21,868: Line 22,311:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "Beak",
 
         linkedBodyPartsGroup = "Beak",
 +
        DPS = 2.8,
 
       },
 
       },
 
       {
 
       {
Line 21,878: Line 22,322:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 1.333,
 
       },
 
       },
 
     },
 
     },
Line 21,951: Line 22,396:
 
         cooldownTime = 2.9,
 
         cooldownTime = 2.9,
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 +
        DPS = 4.828,
 
       },
 
       },
 
       {
 
       {
Line 21,961: Line 22,407:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 +
        DPS = 3.0,
 
       },
 
       },
 
       {
 
       {
Line 21,971: Line 22,418:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontRightLeg",
 
         linkedBodyPartsGroup = "FrontRightLeg",
 +
        DPS = 3.0,
 
       },
 
       },
 
       {
 
       {
Line 21,980: Line 22,428:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.5,
 
         chanceFactor = 0.5,
 +
        DPS = 4.0,
 
       },
 
       },
 
     },
 
     },
Line 22,059: Line 22,508:
 
         cooldownTime = 2.9,
 
         cooldownTime = 2.9,
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 +
        DPS = 3.448,
 
       },
 
       },
 
       {
 
       {
Line 22,069: Line 22,519:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 +
        DPS = 3.5,
 
       },
 
       },
 
       {
 
       {
Line 22,079: Line 22,530:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontRightLeg",
 
         linkedBodyPartsGroup = "FrontRightLeg",
 +
        DPS = 3.5,
 
       },
 
       },
 
       {
 
       {
Line 22,088: Line 22,540:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.5,
 
         chanceFactor = 0.5,
 +
        DPS = 2.5,
 
       },
 
       },
 
     },
 
     },
Line 22,159: Line 22,612:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.7,
 
         chanceFactor = 0.7,
 +
        DPS = 3.385,
 
       },
 
       },
 
       {
 
       {
Line 22,169: Line 22,623:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 4.5,
 
       },
 
       },
 
       {
 
       {
Line 22,179: Line 22,634:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 +
        DPS = 4.0,
 
       },
 
       },
 
       {
 
       {
Line 22,189: Line 22,645:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontRightLeg",
 
         linkedBodyPartsGroup = "FrontRightLeg",
 +
        DPS = 4.0,
 
       },
 
       },
 
     },
 
     },
Line 22,252: Line 22,709:
 
         cooldownTime = 1.5,
 
         cooldownTime = 1.5,
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 +
        DPS = 2.4,
 
       },
 
       },
 
       {
 
       {
Line 22,261: Line 22,719:
 
         cooldownTime = 1.5,
 
         cooldownTime = 1.5,
 
         linkedBodyPartsGroup = "FrontRightPaw",
 
         linkedBodyPartsGroup = "FrontRightPaw",
 +
        DPS = 2.4,
 
       },
 
       },
 
       {
 
       {
Line 22,270: Line 22,729:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.7,
 
         chanceFactor = 0.7,
 +
        DPS = 2.9,
 
       },
 
       },
 
       {
 
       {
Line 22,280: Line 22,740:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 1.0,
 
       },
 
       },
 
     },
 
     },
Line 22,353: Line 22,814:
 
         cooldownTime = 2.9,
 
         cooldownTime = 2.9,
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 +
        DPS = 4.138,
 
       },
 
       },
 
       {
 
       {
Line 22,363: Line 22,825:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 +
        DPS = 4.0,
 
       },
 
       },
 
       {
 
       {
Line 22,373: Line 22,836:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontRightLeg",
 
         linkedBodyPartsGroup = "FrontRightLeg",
 +
        DPS = 4.0,
 
       },
 
       },
 
       {
 
       {
Line 22,382: Line 22,846:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.5,
 
         chanceFactor = 0.5,
 +
        DPS = 3.0,
 
       },
 
       },
 
     },
 
     },
Line 22,443: Line 22,908:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "HornAttackTool",
 
         linkedBodyPartsGroup = "HornAttackTool",
 +
        DPS = 9.5,
 
       },
 
       },
 
       {
 
       {
Line 22,452: Line 22,918:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "HornAttackTool",
 
         linkedBodyPartsGroup = "HornAttackTool",
 +
        DPS = 9.5,
 
       },
 
       },
 
       {
 
       {
Line 22,461: Line 22,928:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.7,
 
         chanceFactor = 0.7,
 +
        DPS = 7.308,
 
       },
 
       },
 
       {
 
       {
Line 22,471: Line 22,939:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 7.5,
 
       },
 
       },
 
     },
 
     },
Line 22,533: Line 23,002:
 
         cooldownTime = 2.6,
 
         cooldownTime = 2.6,
 
         linkedBodyPartsGroup = "TuskAttackTool",
 
         linkedBodyPartsGroup = "TuskAttackTool",
 +
        DPS = 9.615,
 
       },
 
       },
 
       {
 
       {
Line 22,542: Line 23,012:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 +
        DPS = 8.45,
 
       },
 
       },
 
       {
 
       {
Line 22,551: Line 23,022:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontRightLeg",
 
         linkedBodyPartsGroup = "FrontRightLeg",
 +
        DPS = 8.45,
 
       },
 
       },
 
       {
 
       {
Line 22,561: Line 23,033:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 7.0,
 
       },
 
       },
 
     },
 
     },
Line 22,622: Line 23,095:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 +
        DPS = 10.5,
 
       },
 
       },
 
       {
 
       {
Line 22,631: Line 23,105:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontRightPaw",
 
         linkedBodyPartsGroup = "FrontRightPaw",
 +
        DPS = 10.5,
 
       },
 
       },
 
       {
 
       {
Line 22,640: Line 23,115:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.7,
 
         chanceFactor = 0.7,
 +
        DPS = 8.462,
 
       },
 
       },
 
       {
 
       {
Line 22,650: Line 23,126:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 7.5,
 
       },
 
       },
 
     },
 
     },
Line 22,726: Line 23,203:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "HornAttackTool",
 
         linkedBodyPartsGroup = "HornAttackTool",
 +
        DPS = 11.5,
 
       },
 
       },
 
       {
 
       {
Line 22,735: Line 23,213:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.7,
 
         chanceFactor = 0.7,
 +
        DPS = 10.769,
 
       },
 
       },
 
       {
 
       {
Line 22,744: Line 23,223:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 +
        DPS = 9.5,
 
       },
 
       },
 
       {
 
       {
Line 22,753: Line 23,233:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontRightLeg",
 
         linkedBodyPartsGroup = "FrontRightLeg",
 +
        DPS = 9.5,
 
       },
 
       },
 
       {
 
       {
Line 22,763: Line 23,244:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 8.5,
 
       },
 
       },
 
     },
 
     },
Line 22,820: Line 23,302:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 +
        DPS = 1.7,
 
       },
 
       },
 
       {
 
       {
Line 22,830: Line 23,313:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 0.75,
 
       },
 
       },
 
     },
 
     },
Line 22,956: Line 23,440:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "Mouth",
 
         linkedBodyPartsGroup = "Mouth",
 +
        DPS = 2.5,
 
       },
 
       },
 
       {
 
       {
Line 22,966: Line 23,451:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.1,
 
         chanceFactor = 0.1,
 +
        DPS = 2.0,
 
       },
 
       },
 
     },
 
     },
Line 23,020: Line 23,506:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "HeadClaw",
 
         linkedBodyPartsGroup = "HeadClaw",
 +
        DPS = 3.5,
 
       },
 
       },
 
       {
 
       {
Line 23,030: Line 23,517:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 3.0,
 
       },
 
       },
 
     },
 
     },
Line 23,085: Line 23,573:
 
         cooldownTime = 2.6,
 
         cooldownTime = 2.6,
 
         linkedBodyPartsGroup = "HeadClaw",
 
         linkedBodyPartsGroup = "HeadClaw",
 +
        DPS = 4.615,
 
       },
 
       },
 
       {
 
       {
Line 23,095: Line 23,584:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 3.5,
 
       },
 
       },
 
     },
 
     },
Line 23,147: Line 23,637:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 +
        DPS = 1.8,
 
       },
 
       },
 
       {
 
       {
Line 23,156: Line 23,647:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontRightPaw",
 
         linkedBodyPartsGroup = "FrontRightPaw",
 +
        DPS = 1.8,
 
       },
 
       },
 
       {
 
       {
Line 23,166: Line 23,658:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.7,
 
         chanceFactor = 0.7,
 +
        DPS = 2.4,
 
       },
 
       },
 
       {
 
       {
Line 23,176: Line 23,669:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 1.0,
 
       },
 
       },
 
     },
 
     },
Line 23,246: Line 23,740:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 +
        DPS = 4.85,
 
       },
 
       },
 
       {
 
       {
Line 23,255: Line 23,750:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontRightPaw",
 
         linkedBodyPartsGroup = "FrontRightPaw",
 +
        DPS = 4.85,
 
       },
 
       },
 
       {
 
       {
Line 23,264: Line 23,760:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.7,
 
         chanceFactor = 0.7,
 +
        DPS = 5.462,
 
       },
 
       },
 
       {
 
       {
Line 23,274: Line 23,771:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 3.0,
 
       },
 
       },
 
     },
 
     },
Line 23,344: Line 23,842:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 +
        DPS = 4.25,
 
       },
 
       },
 
       {
 
       {
Line 23,353: Line 23,852:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontRightPaw",
 
         linkedBodyPartsGroup = "FrontRightPaw",
 +
        DPS = 4.25,
 
       },
 
       },
 
       {
 
       {
Line 23,362: Line 23,862:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.7,
 
         chanceFactor = 0.7,
 +
        DPS = 5.462,
 
       },
 
       },
 
       {
 
       {
Line 23,372: Line 23,873:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 2.5,
 
       },
 
       },
 
     },
 
     },
Line 23,444: Line 23,946:
 
         cooldownTime = 1.5,
 
         cooldownTime = 1.5,
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 +
        DPS = 4.0,
 
       },
 
       },
 
       {
 
       {
Line 23,453: Line 23,956:
 
         cooldownTime = 1.5,
 
         cooldownTime = 1.5,
 
         linkedBodyPartsGroup = "FrontRightPaw",
 
         linkedBodyPartsGroup = "FrontRightPaw",
 +
        DPS = 4.0,
 
       },
 
       },
 
       {
 
       {
Line 23,462: Line 23,966:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.7,
 
         chanceFactor = 0.7,
 +
        DPS = 3.5,
 
       },
 
       },
 
       {
 
       {
Line 23,472: Line 23,977:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 1.5,
 
       },
 
       },
 
     },
 
     },
Line 23,542: Line 24,048:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 +
        DPS = 2.0,
 
       },
 
       },
 
       {
 
       {
Line 23,551: Line 24,058:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontRightPaw",
 
         linkedBodyPartsGroup = "FrontRightPaw",
 +
        DPS = 2.0,
 
       },
 
       },
 
       {
 
       {
Line 23,560: Line 24,068:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.7,
 
         chanceFactor = 0.7,
 +
        DPS = 2.5,
 
       },
 
       },
 
       {
 
       {
Line 23,570: Line 24,079:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 1.0,
 
       },
 
       },
 
     },
 
     },
Line 23,635: Line 24,145:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 +
        DPS = 3.6,
 
       },
 
       },
 
       {
 
       {
Line 23,644: Line 24,155:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontRightPaw",
 
         linkedBodyPartsGroup = "FrontRightPaw",
 +
        DPS = 3.6,
 
       },
 
       },
 
       {
 
       {
Line 23,653: Line 24,165:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.7,
 
         chanceFactor = 0.7,
 +
        DPS = 4.25,
 
       },
 
       },
 
       {
 
       {
Line 23,663: Line 24,176:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 1.5,
 
       },
 
       },
 
     },
 
     },
Line 23,731: Line 24,245:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 +
        DPS = 4.2,
 
       },
 
       },
 
       {
 
       {
Line 23,740: Line 24,255:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontRightPaw",
 
         linkedBodyPartsGroup = "FrontRightPaw",
 +
        DPS = 4.2,
 
       },
 
       },
 
       {
 
       {
Line 23,749: Line 24,265:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.7,
 
         chanceFactor = 0.7,
 +
        DPS = 4.25,
 
       },
 
       },
 
       {
 
       {
Line 23,759: Line 24,276:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 2.0,
 
       },
 
       },
 
     },
 
     },
Line 23,827: Line 24,345:
 
         cooldownTime = 1.5,
 
         cooldownTime = 1.5,
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 +
        DPS = 2.4,
 
       },
 
       },
 
       {
 
       {
Line 23,836: Line 24,355:
 
         cooldownTime = 1.5,
 
         cooldownTime = 1.5,
 
         linkedBodyPartsGroup = "FrontRightPaw",
 
         linkedBodyPartsGroup = "FrontRightPaw",
 +
        DPS = 2.4,
 
       },
 
       },
 
       {
 
       {
Line 23,845: Line 24,365:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.7,
 
         chanceFactor = 0.7,
 +
        DPS = 2.9,
 
       },
 
       },
 
       {
 
       {
Line 23,855: Line 24,376:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 1.0,
 
       },
 
       },
 
     },
 
     },
Line 23,925: Line 24,447:
 
         cooldownTime = 1.5,
 
         cooldownTime = 1.5,
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 +
        DPS = 3.6,
 
       },
 
       },
 
       {
 
       {
Line 23,934: Line 24,457:
 
         cooldownTime = 1.5,
 
         cooldownTime = 1.5,
 
         linkedBodyPartsGroup = "FrontRightPaw",
 
         linkedBodyPartsGroup = "FrontRightPaw",
 +
        DPS = 3.6,
 
       },
 
       },
 
       {
 
       {
Line 23,943: Line 24,467:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.7,
 
         chanceFactor = 0.7,
 +
        DPS = 2.45,
 
       },
 
       },
 
       {
 
       {
Line 23,953: Line 24,478:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 1.5,
 
       },
 
       },
 
     },
 
     },
Line 24,021: Line 24,547:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 +
        DPS = 3.0,
 
       },
 
       },
 
       {
 
       {
Line 24,030: Line 24,557:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontRightPaw",
 
         linkedBodyPartsGroup = "FrontRightPaw",
 +
        DPS = 3.0,
 
       },
 
       },
 
       {
 
       {
Line 24,039: Line 24,567:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.7,
 
         chanceFactor = 0.7,
 +
        DPS = 3.5,
 
       },
 
       },
 
       {
 
       {
Line 24,049: Line 24,578:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 1.5,
 
       },
 
       },
 
     },
 
     },
Line 24,114: Line 24,644:
 
         cooldownTime = 1.5,
 
         cooldownTime = 1.5,
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 +
        DPS = 2.4,
 
       },
 
       },
 
       {
 
       {
Line 24,123: Line 24,654:
 
         cooldownTime = 1.5,
 
         cooldownTime = 1.5,
 
         linkedBodyPartsGroup = "FrontRightPaw",
 
         linkedBodyPartsGroup = "FrontRightPaw",
 +
        DPS = 2.4,
 
       },
 
       },
 
       {
 
       {
Line 24,132: Line 24,664:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.7,
 
         chanceFactor = 0.7,
 +
        DPS = 3.0,
 
       },
 
       },
 
       {
 
       {
Line 24,142: Line 24,675:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 1.0,
 
       },
 
       },
 
     },
 
     },
Line 24,212: Line 24,746:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 +
        DPS = 3.5,
 
       },
 
       },
 
       {
 
       {
Line 24,222: Line 24,757:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontRightLeg",
 
         linkedBodyPartsGroup = "FrontRightLeg",
 +
        DPS = 3.5,
 
       },
 
       },
 
       {
 
       {
Line 24,232: Line 24,768:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.5,
 
         chanceFactor = 0.5,
 +
        DPS = 4.0,
 
       },
 
       },
 
       {
 
       {
Line 24,242: Line 24,779:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 2.5,
 
       },
 
       },
 
     },
 
     },
Line 24,303: Line 24,841:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 +
        DPS = 4.0,
 
       },
 
       },
 
       {
 
       {
Line 24,313: Line 24,852:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontRightLeg",
 
         linkedBodyPartsGroup = "FrontRightLeg",
 +
        DPS = 4.0,
 
       },
 
       },
 
       {
 
       {
Line 24,322: Line 24,862:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.5,
 
         chanceFactor = 0.5,
 +
        DPS = 4.0,
 
       },
 
       },
 
       {
 
       {
Line 24,331: Line 24,872:
 
         cooldownTime = 2.6,
 
         cooldownTime = 2.6,
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 +
        DPS = 3.846,
 
       },
 
       },
 
     },
 
     },
Line 24,399: Line 24,941:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 +
        DPS = 5.0,
 
       },
 
       },
 
       {
 
       {
Line 24,409: Line 24,952:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontRightLeg",
 
         linkedBodyPartsGroup = "FrontRightLeg",
 +
        DPS = 5.0,
 
       },
 
       },
 
       {
 
       {
Line 24,418: Line 24,962:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.5,
 
         chanceFactor = 0.5,
 +
        DPS = 5.0,
 
       },
 
       },
 
       {
 
       {
Line 24,427: Line 24,972:
 
         cooldownTime = 2.6,
 
         cooldownTime = 2.6,
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 +
        DPS = 5.0,
 
       },
 
       },
 
     },
 
     },
Line 24,496: Line 25,042:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 +
        DPS = 5.0,
 
       },
 
       },
 
       {
 
       {
Line 24,506: Line 25,053:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontRightLeg",
 
         linkedBodyPartsGroup = "FrontRightLeg",
 +
        DPS = 5.0,
 
       },
 
       },
 
       {
 
       {
Line 24,515: Line 25,063:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.5,
 
         chanceFactor = 0.5,
 +
        DPS = 5.0,
 
       },
 
       },
 
       {
 
       {
Line 24,524: Line 25,073:
 
         cooldownTime = 2.6,
 
         cooldownTime = 2.6,
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 +
        DPS = 5.0,
 
       },
 
       },
 
     },
 
     },
Line 24,583: Line 25,133:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "TuskAttackTool",
 
         linkedBodyPartsGroup = "TuskAttackTool",
 +
        DPS = 4.85,
 
       },
 
       },
 
       {
 
       {
Line 24,592: Line 25,143:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.6,
 
         chanceFactor = 0.6,
 +
        DPS = 4.25,
 
       },
 
       },
 
       {
 
       {
Line 24,602: Line 25,154:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 2.5,
 
       },
 
       },
 
     },
 
     },
Line 24,671: Line 25,224:
 
         cooldownTime = 2.6,
 
         cooldownTime = 2.6,
 
         linkedBodyPartsGroup = "TurtleBeakAttackTool",
 
         linkedBodyPartsGroup = "TurtleBeakAttackTool",
 +
        DPS = 3.077,
 
       },
 
       },
 
       {
 
       {
Line 24,681: Line 25,235:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 1.154,
 
       },
 
       },
 
     },
 
     },
Line 24,749: Line 25,304:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "Mouth",
 
         linkedBodyPartsGroup = "Mouth",
 +
        DPS = 6.0,
 
       },
 
       },
 
       {
 
       {
Line 24,759: Line 25,315:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 1.5,
 
       },
 
       },
 
     },
 
     },
Line 24,832: Line 25,389:
 
         cooldownTime = 1.5,
 
         cooldownTime = 1.5,
 
         linkedBodyPartsGroup = "LeftHand",
 
         linkedBodyPartsGroup = "LeftHand",
 +
        DPS = 2.4,
 
       },
 
       },
 
       {
 
       {
Line 24,841: Line 25,399:
 
         cooldownTime = 1.5,
 
         cooldownTime = 1.5,
 
         linkedBodyPartsGroup = "RightHand",
 
         linkedBodyPartsGroup = "RightHand",
 +
        DPS = 2.4,
 
       },
 
       },
 
       {
 
       {
Line 24,850: Line 25,409:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.7,
 
         chanceFactor = 0.7,
 +
        DPS = 2.0,
 
       },
 
       },
 
       {
 
       {
Line 24,860: Line 25,420:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 1.0,
 
       },
 
       },
 
     },
 
     },
Line 24,932: Line 25,493:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 3.5,
 
       },
 
       },
 
       {
 
       {
Line 24,942: Line 25,504:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 +
        DPS = 4.5,
 
       },
 
       },
 
       {
 
       {
Line 24,952: Line 25,515:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontRightLeg",
 
         linkedBodyPartsGroup = "FrontRightLeg",
 +
        DPS = 4.5,
 
       },
 
       },
 
       {
 
       {
Line 24,961: Line 25,525:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.5,
 
         chanceFactor = 0.5,
 +
        DPS = 5.0,
 
       },
 
       },
 
     },
 
     },
Line 25,019: Line 25,584:
 
         cooldownTime = 1.5,
 
         cooldownTime = 1.5,
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 +
        DPS = 8.667,
 
       },
 
       },
 
       {
 
       {
Line 25,028: Line 25,594:
 
         cooldownTime = 1.5,
 
         cooldownTime = 1.5,
 
         linkedBodyPartsGroup = "FrontRightPaw",
 
         linkedBodyPartsGroup = "FrontRightPaw",
 +
        DPS = 8.667,
 
       },
 
       },
 
       {
 
       {
Line 25,038: Line 25,605:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.9,
 
         chanceFactor = 0.9,
 +
        DPS = 7.5,
 
       },
 
       },
 
       {
 
       {
Line 25,048: Line 25,616:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 2.5,
 
       },
 
       },
 
     },
 
     },
Line 25,118: Line 25,687:
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 
         chanceFactor = 0.5,
 
         chanceFactor = 0.5,
 +
        DPS = 5.45,
 
       },
 
       },
 
       {
 
       {
Line 25,128: Line 25,698:
 
         linkedBodyPartsGroup = "FrontRightPaw",
 
         linkedBodyPartsGroup = "FrontRightPaw",
 
         chanceFactor = 0.5,
 
         chanceFactor = 0.5,
 +
        DPS = 5.45,
 
       },
 
       },
 
       {
 
       {
Line 25,137: Line 25,708:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.9,
 
         chanceFactor = 0.9,
 +
        DPS = 6.0,
 
       },
 
       },
 
       {
 
       {
Line 25,147: Line 25,719:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 3.0,
 
       },
 
       },
 
     },
 
     },
Line 25,246: Line 25,819:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 
         linkedBodyPartsGroup = "FrontLeftPaw",
 +
        DPS = 4.0,
 
       },
 
       },
 
       {
 
       {
Line 25,255: Line 25,829:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontRightPaw",
 
         linkedBodyPartsGroup = "FrontRightPaw",
 +
        DPS = 4.0,
 
       },
 
       },
 
       {
 
       {
Line 25,264: Line 25,839:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.9,
 
         chanceFactor = 0.9,
 +
        DPS = 4.5,
 
       },
 
       },
 
       {
 
       {
Line 25,274: Line 25,850:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 2.0,
 
       },
 
       },
 
     },
 
     },
Line 25,390: Line 25,967:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "LeftHand",
 
         linkedBodyPartsGroup = "LeftHand",
 +
        DPS = 4.1,
 
       },
 
       },
 
       {
 
       {
Line 25,399: Line 25,977:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "RightHand",
 
         linkedBodyPartsGroup = "RightHand",
 +
        DPS = 4.1,
 
       },
 
       },
 
       {
 
       {
Line 25,409: Line 25,988:
 
         linkedBodyPartsGroup = "Teeth",
 
         linkedBodyPartsGroup = "Teeth",
 
         chanceFactor = 0.07,
 
         chanceFactor = 0.07,
 +
        DPS = 4.1,
 
       },
 
       },
 
       {
 
       {
Line 25,419: Line 25,999:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 2.5,
 
       },
 
       },
 
     },
 
     },
Line 25,532: Line 26,113:
 
         cooldownTime = 2.6,
 
         cooldownTime = 2.6,
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 +
        DPS = 6.538,
 
       },
 
       },
 
     },
 
     },
Line 25,591: Line 26,173:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "LeftHand",
 
         linkedBodyPartsGroup = "LeftHand",
 +
        DPS = 6.0,
 
       },
 
       },
 
       {
 
       {
Line 25,600: Line 26,183:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "RightHand",
 
         linkedBodyPartsGroup = "RightHand",
 +
        DPS = 6.0,
 
       },
 
       },
 
       {
 
       {
Line 25,610: Line 26,194:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 4.25,
 
       },
 
       },
 
     },
 
     },
Line 25,635: Line 26,220:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "LeftBlade",
 
         linkedBodyPartsGroup = "LeftBlade",
 +
        DPS = 10.0,
 
       },
 
       },
 
       {
 
       {
Line 25,645: Line 26,231:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "RightBlade",
 
         linkedBodyPartsGroup = "RightBlade",
 +
        DPS = 10.0,
 
       },
 
       },
 
       {
 
       {
Line 25,655: Line 26,242:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 4.5,
 
       },
 
       },
 
     },
 
     },
Line 25,682: Line 26,270:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 
         linkedBodyPartsGroup = "FrontLeftLeg",
 +
        DPS = 6.0,
 
       },
 
       },
 
       {
 
       {
Line 25,691: Line 26,280:
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 
         linkedBodyPartsGroup = "FrontRightLeg",
 
         linkedBodyPartsGroup = "FrontRightLeg",
 +
        DPS = 6.0,
 
       },
 
       },
 
       {
 
       {
Line 25,701: Line 26,291:
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         linkedBodyPartsGroup = "HeadAttackTool",
 
         chanceFactor = 0.2,
 
         chanceFactor = 0.2,
 +
        DPS = 4.25,
 
       },
 
       },
 
     },
 
     },
Line 27,842: Line 28,433:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Shoot",
 
         defaultProjectile = "Bullet_MiniSlug",
 
         defaultProjectile = "Bullet_MiniSlug",
 
         range = 45.9,
 
         range = 45.9,
Line 27,859: Line 28,451:
 
     defName = "Bullet_MiniSlug",
 
     defName = "Bullet_MiniSlug",
 
     label = "mini-slug",
 
     label = "mini-slug",
 +
    projectile = {
 +
      damageDef = "Bullet",
 +
      damageAmountBase = 12,
 +
      speed = 70,
 +
    },
 
   },
 
   },
  
Line 27,938: Line 28,535:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Shoot",
 
         defaultProjectile = "Bullet_ChargeBlasterHeavy",
 
         defaultProjectile = "Bullet_ChargeBlasterHeavy",
 
         warmupTime = 1.25,
 
         warmupTime = 1.25,
Line 28,023: Line 28,621:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Shoot",
 
         defaultProjectile = "Bullet_InfernoCannon",
 
         defaultProjectile = "Bullet_InfernoCannon",
 
         forcedMissRadius = 4.6,
 
         forcedMissRadius = 4.6,
Line 28,117: Line 28,716:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Shoot",
 
         defaultProjectile = "Bullet_Shell_HighExplosive",
 
         defaultProjectile = "Bullet_Shell_HighExplosive",
 
         forcedMissRadius = 13,
 
         forcedMissRadius = 13,
Line 28,700: Line 29,300:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Jump",
 
         label = "jump",
 
         label = "jump",
 
         violent = false,
 
         violent = false,
Line 28,785: Line 29,386:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_DeployBroadshield",
 
         label = "deploy low-shield",
 
         label = "deploy low-shield",
 
         violent = false,
 
         violent = false,
Line 29,896: Line 30,498:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_Jump",
 
         label = "jump",
 
         label = "jump",
 
         violent = false,
 
         violent = false,
Line 29,948: Line 30,551:
 
       {
 
       {
 
         label = "launch frag grenade",
 
         label = "launch frag grenade",
 +
        verbClass = "Verb_LaunchProjectileStatic",
 
         onlyManualCast = true,
 
         onlyManualCast = true,
 
         range = 12.9,
 
         range = 12.9,
Line 29,971: Line 30,575:
 
     defName = "Proj_GrenadierGrenade",
 
     defName = "Proj_GrenadierGrenade",
 
     label = "frag grenade",
 
     label = "frag grenade",
 +
    projectile = {
 +
      speed = 16,
 +
    },
 
   },
 
   },
  
Line 30,014: Line 30,621:
 
       {
 
       {
 
         label = "launch incendiary",
 
         label = "launch incendiary",
 +
        verbClass = "Verb_LaunchProjectileStatic",
 
         onlyManualCast = true,
 
         onlyManualCast = true,
 
         range = 14.9,
 
         range = 14.9,
Line 30,037: Line 30,645:
 
     defName = "Proj_GrenadePhoenixFire",
 
     defName = "Proj_GrenadePhoenixFire",
 
     label = "incendiary grenade",
 
     label = "incendiary grenade",
 +
    projectile = {
 +
      speed = 18,
 +
      explosionRadius = 2.9,
 +
      arcHeightFactor = 0.4,
 +
    },
 
   },
 
   },
  
Line 30,327: Line 30,940:
 
         power = 12,
 
         power = 12,
 
         cooldownTime = 1.6,
 
         cooldownTime = 1.6,
 +
        DPS = 7.5,
 
       },
 
       },
 
       {
 
       {
Line 30,335: Line 30,949:
 
         power = 27,
 
         power = 27,
 
         cooldownTime = 1.6,
 
         cooldownTime = 1.6,
 +
        DPS = 16.875,
 
       },
 
       },
 
       {
 
       {
Line 30,343: Line 30,958:
 
         power = 27,
 
         power = 27,
 
         cooldownTime = 1.6,
 
         cooldownTime = 1.6,
 +
        DPS = 16.875,
 
       },
 
       },
 
     },
 
     },
Line 30,371: Line 30,987:
 
         power = 15,
 
         power = 15,
 
         cooldownTime = 1.6,
 
         cooldownTime = 1.6,
 +
        DPS = 9.375,
 
       },
 
       },
 
       {
 
       {
Line 30,385: Line 31,002:
 
           },
 
           },
 
         },
 
         },
 +
        DPS = 14.091,
 
       },
 
       },
 
     },
 
     },
Line 30,413: Line 31,031:
 
         power = 12,
 
         power = 12,
 
         cooldownTime = 1.6,
 
         cooldownTime = 1.6,
 +
        DPS = 7.5,
 
       },
 
       },
 
       {
 
       {
Line 30,428: Line 31,047:
 
           },
 
           },
 
         },
 
         },
 +
        DPS = 11.5,
 
       },
 
       },
 
       {
 
       {
Line 30,443: Line 31,063:
 
           },
 
           },
 
         },
 
         },
 +
        DPS = 11.5,
 
       },
 
       },
 
     },
 
     },
Line 30,479: Line 31,100:
 
         power = 9,
 
         power = 9,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 4.5,
 
       },
 
       },
 
       {
 
       {
Line 30,487: Line 31,109:
 
         power = 15,
 
         power = 15,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 7.5,
 
       },
 
       },
 
     },
 
     },
Line 30,523: Line 31,146:
 
         power = 11,
 
         power = 11,
 
         cooldownTime = 2.6,
 
         cooldownTime = 2.6,
 +
        DPS = 4.231,
 
       },
 
       },
 
       {
 
       {
Line 30,531: Line 31,155:
 
         power = 20,
 
         power = 20,
 
         cooldownTime = 2.6,
 
         cooldownTime = 2.6,
 +
        DPS = 7.692,
 
       },
 
       },
 
     },
 
     },
Line 30,595: Line 31,220:
 
         power = 12,
 
         power = 12,
 
         cooldownTime = 1.6,
 
         cooldownTime = 1.6,
 +
        DPS = 7.5,
 
       },
 
       },
 
       {
 
       {
Line 30,603: Line 31,229:
 
         power = 25,
 
         power = 25,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 12.5,
 
       },
 
       },
 
       {
 
       {
Line 30,611: Line 31,238:
 
         power = 25,
 
         power = 25,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 12.5,
 
       },
 
       },
 
     },
 
     },
Line 30,634: Line 31,262:
 
         power = 15,
 
         power = 15,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 7.5,
 
       },
 
       },
 
       {
 
       {
Line 30,648: Line 31,277:
 
           },
 
           },
 
         },
 
         },
 +
        DPS = 10.333,
 
       },
 
       },
 
     },
 
     },
Line 30,671: Line 31,301:
 
         power = 12,
 
         power = 12,
 
         cooldownTime = 2,
 
         cooldownTime = 2,
 +
        DPS = 6.0,
 
       },
 
       },
 
       {
 
       {
Line 30,686: Line 31,317:
 
           },
 
           },
 
         },
 
         },
 +
        DPS = 8.077,
 
       },
 
       },
 
       {
 
       {
Line 30,701: Line 31,333:
 
           },
 
           },
 
         },
 
         },
 +
        DPS = 8.077,
 
       },
 
       },
 
     },
 
     },
Line 30,720: Line 31,353:
 
     verbs = {
 
     verbs = {
 
       {
 
       {
 +
        verbClass = "Verb_MechCluster",
 
         warmupTime = 3,
 
         warmupTime = 3,
 
         range = 44.9,
 
         range = 44.9,
Line 30,797: Line 31,431:
 
         power = 12,
 
         power = 12,
 
         cooldownTime = 2.6,
 
         cooldownTime = 2.6,
 +
        DPS = 4.615,
 
       },
 
       },
 
     },
 
     },
Line 30,907: Line 31,542:
 
         linkSound = "AnimaTreeLink",
 
         linkSound = "AnimaTreeLink",
 
         enoughPlantsLetterLabel = "About: Anima tree linking",
 
         enoughPlantsLetterLabel = "About: Anima tree linking",
         enoughPlantsLetterText = "The anima tree now has {0} anima grass around it. This is enough for a tribal person to begin their first linking ritual!\n\nThe linking ritual gives a level of psylink and the ability to use psychic powers. Upgrading to a higher level requires more grass at each level.\n\nThe anima grass requirements for linking rituals to upgrade psycasters are:\n\n{1}\n\nNote: Only those with the nature focus type can meditate to or link with anima trees. You can see a person's focus types by looking at their info card with the �i' button.",
+
         enoughPlantsLetterText = "The anima tree now has {0} anima grass around it. This is enough for a tribal person to begin their first linking ritual!\n\nThe linking ritual gives a level of psylink and the ability to use psychic powers. Upgrading to a higher level requires more grass at each level.\n\nThe anima grass requirements for linking rituals to upgrade psycasters are:\n\n{1}\n\nNote: Only those with the nature focus type can meditate to or link with anima trees. You can see a person's focus types by looking at their info card with the ‘i' button.",
 
       },
 
       },
 
       {
 
       {

Revision as of 07:52, 16 May 2021

Transformation rules

RimWorld version

Version is added to the beginning of each generated Lua table.

return {

  version = "1.2.2753",
  ...

Elements with attributes

Create a new subelement and move all of the attributes to their own subelements within it.

*Def elements

<defName> is used as part of the index for the main Def table.

Additional attributes added: "DLC", "FileName".

<ThingDef ParentName="BaseHare">
  <defName>Snowhare</defName>
  <label>snowhare</label>
  ...

transforms to:

["ThingDef:Hare"] = {
  ["_attrib_"] = {
    ["ParentName"] = "BaseHare",
    ["FileName"] = "Races_Animal_Hares.xml",
    ["DLC"] = "Core",
  },
  ["defName"] = "Snowhare",
  ["label"] = "snowhare",
  ...

Parent (abstract) Def:

<ThingDef Abstract="True" ParentName="AnimalThingBase" Name="BaseHare">
  <statBases>
    <MoveSpeed>6.0</MoveSpeed>
    <MarketValue>50</MarketValue>
    ...

transforms to:

["ThingDef:BaseHare"] = {
  ["_attrib_"] = {
    ["Abstract"] = "True",
    ["ParentName"] = "AnimalThingBase",
    ["Name"] = "BaseHare",
    ["FileName"] = "Races_Animal_Hares.xml",
    ["DLC"] = "Core",
  },
    ["statBases"] = {
      ["MoveSpeed"] = 6.0,
      ["MarketValue"] = 50,
  ...

List elements without children

Get transformed into ordered lists (numerically indexed Lua tables).

<tradeTags>
  <li>AnimalUncommon</li>
  <li>AnimalFighter</li>
</tradeTags>

transforms to:

["tradeTags"] = {
  "AnimalUncommon",
  "AnimalFighter",
},

Note: a comma after the last item in a list is not flagged as an error in Lua.

List elements with children

<lifeStageAges>
  <li>
    <def>AnimalBaby</def>
    <minAge>0</minAge>
  </li>
  <li>
    <def>AnimalJuvenile</def>
    <minAge>0.25</minAge>
  </li>
  <li>
    <def>AnimalAdult</def>
    <minAge>0.5</minAge>
  </li>
</lifeStageAges>

transforms to:

["lifeStageAges"] = {
  {
    ["def"] = "AnimalBaby",
    ["minAge"] = 0,
  },
  {
    ["def"] = "AnimalJuvenile",
    ["minAge"] = 0.25,
  },
  {
    ["def"] = "AnimalAdult",
    ["minAge"] = 0.5,
  },
},

List elements with a single attribute Class

The value of the "Class" attribute is used to rename the <li>.

<comps>
  <li Class="CompProperties_Glower">
    <glowRadius>10</glowRadius>
...

transforms to:

comps = {
  CompProperties_Glower = {
    glowRadius = 10,
...

Components

It would be useful to have some of the more used components. They can then be queried for additional functionality that some game objects have.

They can be numbered tables or, as in some of the examples above, string indexed. String indexes, in general, are simpler to use. Numeric tables I have to search through.

See #List elements with a single attribute Class

Ranges (1~2)

<overdoseSeverityOffset>0.18~0.35</overdoseSeverityOffset>

transforms to:

overdoseSeverityOffset = { ["<"]=0.18, [">"]=0.35 },

Curve points

Curves pop up in a lot of places so additional support functions for those might be in order.

Min, max, maybe average... things like that. Some (like litterSizeCurve) have a fixed amount of points (correction: even for litterSizeCurve this is not true) so you could just retrieve the first one or last (fourth), but this is not the case for all of them and is a bit ugly. Whatever the case, additional processing with wiki syntax would have to be used. This is bad (and to be avoided if possible).

<litterSizeCurve>
  <points>
    <li>(1.0, 0)</li>
    <li>(1.5, 1)</li>
    <li>(2.0, 1)</li>
    <li>(2.5, 0)</li>
</points>

transforms to:

["litterSizeCurve"] = {
  ["points"] = {
    {0.5, 0},
    {1, 1},
    {1.5, 1},
    {2.0, 0},
  },
},

Descriptions

Because of some exceptions in Royalty Defs, <description> content has to be wrapped in double square brackets (Lua multiline syntax).

MayRequire attribute

Removed.

Issues

One (data) file to rule them all

One data file or smaller ones split by categories (buildings, races, items, etc.).

Single:

  • simplicity
    • versioning
    • uploading

Split:

  • dynamic loading

Inheritance (interaction with parser)

Inheritance can be handled by the parser or the module. If the parser handles it, then for any change the dataset needs to be recreated so I'm leaning towards letting the module take care of that. In this case the only purpose of the parser is to filter data and transform it into something Lua can use.

TODO

  • Implement filtering for components (any list item that follows the same pattern)

return {

  ["BiomeDef:BorealForest"] = {
    _ = {
      DefCategory = "BiomeDef",
      FileName = "Biomes_Cold.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "BorealForest",
    label = "boreal forest",
    description = [[Forests of coniferous trees. Despite the harsh winters, boreal forests sustain a diverse population of small and large animals, and have warm summers.]],
    movementDifficulty = 1,
    forageability = 0.75,
    foragedFood = "RawBerries",
    diseaseMtbDays = 60,
    wildPlants = {
      Plant_Grass = 8.0,
      Plant_Brambles = 2.0,
      Plant_Moss = 4.0,
      Plant_Bush = 3.0,
      Plant_TreePine = 5.0,
      Plant_TreeBirch = 1.5,
      Plant_TreePoplar = 1.2,
      Plant_Berry = 0.16,
      Plant_HealrootWild = 0.16,
    },
    wildAnimals = {
      Yak = 0.12,
      Horse = 0.15,
      Squirrel = 1,
      Hare = 1,
      Rat = 1,
      Elk = 0.5,
      Caribou = 0.5,
      Muffalo = 0.5,
      WildBoar = 0.5,
      Ibex = 0.5,
      Raccoon = 0.5,
      Turkey = 0.5,
      Deer = 0.5,
      Megasloth = 0.1,
      Fox_Red = 0.07,
      Fox_Arctic = 0.07,
      Bear_Grizzly = 0.07,
      Wolf_Timber = 0.07,
      Wolf_Arctic = 0.07,
      Cougar = 0.07,
      Lynx = 0.07,
      Warg = 0.07,
    },
  },

  ["BiomeDef:Tundra"] = {
    _ = {
      DefCategory = "BiomeDef",
      FileName = "Biomes_Cold.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Tundra",
    label = "tundra",
    description = [[These mostly-frozen plains bear almost no trees and little vegetation. There are a few small animals interspersed with large herds of migratory grazers and their predators.]],
    movementDifficulty = 1,
    forageability = 0.5,
    foragedFood = "RawBerries",
    diseaseMtbDays = 80,
    wildPlants = {
      Plant_Grass = 3.6,
      Plant_Moss = 0.5,
      Plant_Bush = 0.3,
      Plant_Astragalus = 0.1,
      Plant_Dandelion = 0.1,
      Plant_TreePine = 0.08,
      Plant_TreeBirch = 0.08,
      Plant_Berry = 0.07,
      Plant_HealrootWild = 0.05,
    },
    wildAnimals = {
      Hare = 2,
      Snowhare = 2,
      Caribou = 2,
      Elk = 2,
      Muffalo = 2,
      Ibex = 2,
      Megasloth = 0.2,
      Fox_Arctic = 0.07,
      Wolf_Arctic = 0.07,
      Wolf_Timber = 0.07,
      Lynx = 0.07,
      Warg = 0.07,
      Bear_Polar = 0.07,
      Bear_Grizzly = 0.07,
    },
  },

  ["BiomeDef:ColdBog"] = {
    _ = {
      DefCategory = "BiomeDef",
      FileName = "Biomes_Cold.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "ColdBog",
    label = "cold bog",
    description = [[A wetland packed with trees and vines. Much of the marshy land here can't support heavy structures, moving around is slow due to choking vegetation. Disease is endemic in this dense, wet ecosystem.]],
    movementDifficulty = 4,
    forageability = 0.5,
    foragedFood = "RawBerries",
    diseaseMtbDays = 45,
    wildPlants = {
      Plant_Chokevine = 3.0,
      Plant_TallGrass = 2.4,
      Plant_Moss = 0.5,
      Plant_Bush = 0.3,
      Plant_Astragalus = 0.1,
      Plant_TreeWillow = 0.6,
      Plant_TreeCypress = 0.6,
      Plant_TreeMaple = 0.6,
      Plant_Berry = 0.07,
      Plant_HealrootWild = 0.05,
    },
    wildAnimals = {
      GuineaPig = 0.07,
      Yak = 0.2,
      Squirrel = 1,
      Hare = 1,
      Rat = 1,
      Elk = 0.5,
      Caribou = 0.5,
      Muffalo = 0.5,
      WildBoar = 0.5,
      Ibex = 0.5,
      Raccoon = 0.5,
      Turkey = 0.5,
      Deer = 0.5,
      Megasloth = 0.1,
      Fox_Red = 0.07,
      Fox_Arctic = 0.07,
      Wolf_Timber = 0.07,
      Wolf_Arctic = 0.07,
      Cougar = 0.07,
      Lynx = 0.07,
      Warg = 0.07,
      Bear_Polar = 0.07,
      Bear_Grizzly = 0.07,
    },
  },

  ["BiomeDef:IceSheet"] = {
    _ = {
      DefCategory = "BiomeDef",
      FileName = "Biomes_Cold.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "IceSheet",
    label = "ice sheet",
    description = [[Sheets of ice which can be kilometers thick. There is no soil for plants to grow in. The only animals here are migrating to somewhere else - or badly lost.]],
    movementDifficulty = 1.5,
    forageability = 0,
    diseaseMtbDays = 90,
    wildAnimals = {
      Snowhare = 2,
      Muffalo = 0.1,
      Bear_Polar = 0.1,
      Wolf_Arctic = 0.1,
      Fox_Arctic = 0.1,
      Lynx = 0.1,
      Megasloth = 0.1,
    },
  },

  ["BiomeDef:SeaIce"] = {
    _ = {
      DefCategory = "BiomeDef",
      FileName = "Biomes_Cold.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "SeaIce",
    label = "sea ice",
    description = [[Permanent ice sheets floating on water. There is no soil for plants to grow, no minerals to mine, and almost no animal life.]],
    movementDifficulty = 1.5,
    forageability = 0,
    diseaseMtbDays = 90,
    wildAnimals = {
      Snowhare = 2,
      Muffalo = 0.1,
      Bear_Polar = 0.1,
      Wolf_Arctic = 0.1,
      Fox_Arctic = 0.1,
    },
  },

  ["BiomeDef:TemperateForest"] = {
    _ = {
      DefCategory = "BiomeDef",
      FileName = "Biomes_Temperate.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "TemperateForest",
    label = "temperate forest",
    description = [[Forests of deciduous trees interspersed with fertile clearings. Many species of animals move around among the trees and on the plains.]],
    movementDifficulty = 1,
    forageability = 1,
    foragedFood = "RawBerries",
    diseaseMtbDays = 50,
    wildPlants = {
      Plant_Grass = 5.0,
      Plant_TallGrass = 2.0,
      Plant_Brambles = 1.0,
      Plant_Dandelion = 0.5,
      Plant_Bush = 0.6,
      Plant_TreeOak = 0.5,
      Plant_TreePoplar = 0.5,
      Plant_Berry = 0.05,
      Plant_HealrootWild = 0.05,
    },
    wildAnimals = {
      Donkey = 0.20,
      GuineaPig = 0.45,
      Yak = 0.06,
      Bison = 0.07,
      Horse = 0.20,
      Hare = 1.0,
      Squirrel = 1.0,
      Rat = 1.0,
      Deer = 0.5,
      WildBoar = 0.5,
      Turkey = 0.5,
      Raccoon = 0.5,
      Ibex = 0.5,
      Muffalo = 0.5,
      Alpaca = 0.5,
      Boomalope = 0.4,
      Boomrat = 0.4,
      Tortoise = 0.3,
      Gazelle = 0.3,
      Megasloth = 0.2,
      Rhinoceros = 0.1,
      Bear_Grizzly = 0.07,
      Wolf_Timber = 0.07,
      Fox_Red = 0.07,
      Cougar = 0.07,
      Lynx = 0.07,
      Warg = 0.07,
    },
  },

  ["BiomeDef:TemperateSwamp"] = {
    _ = {
      DefCategory = "BiomeDef",
      FileName = "Biomes_Temperate.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "TemperateSwamp",
    label = "temperate swamp",
    description = [[Wetlands choked with vegetation and disease. Dense overgrowth makes it hard to move around, and clearing areas for building takes a long time. Much of the terrain is too marshy to support heavy structures.]],
    movementDifficulty = 4,
    forageability = 0.75,
    foragedFood = "RawBerries",
    diseaseMtbDays = 40,
    wildPlants = {
      Plant_TallGrass = 3.2,
      Plant_Chokevine = 0.8,
      Plant_Bush = 0.2,
      Plant_TreeWillow = 1.0,
      Plant_TreeCypress = 1.0,
      Plant_TreeMaple = 1.0,
      Plant_Berry = 0.05,
      Plant_HealrootWild = 0.05,
    },
    wildAnimals = {
      GuineaPig = 0.15,
      Yak = 0.04,
      Horse = 0.20,
      Hare = 1.0,
      Squirrel = 1.0,
      Rat = 1.0,
      Tortoise = 0.6,
      Deer = 0.5,
      WildBoar = 0.5,
      Turkey = 0.5,
      Raccoon = 0.5,
      Ibex = 0.5,
      Muffalo = 0.5,
      Alpaca = 0.5,
      Boomalope = 0.4,
      Boomrat = 0.4,
      Megasloth = 0.2,
      Rhinoceros = 0.1,
      Bear_Grizzly = 0.07,
      Wolf_Timber = 0.07,
      Fox_Red = 0.07,
      Cougar = 0.07,
      Lynx = 0.07,
      Warg = 0.07,
    },
  },

  ["BiomeDef:TropicalRainforest"] = {
    _ = {
      DefCategory = "BiomeDef",
      FileName = "Biomes_Warm.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "TropicalRainforest",
    label = "tropical rainforest",
    description = [[A thick, moist jungle, buzzing with animal life and infested with disease. Despite its visual beauty, this is a very dangerous biome. Choking overgrowth, aggressive animals, and constant sickness are why some explorers call this the "green hell".]],
    movementDifficulty = 2,
    forageability = 1,
    foragedFood = "RawBerries",
    diseaseMtbDays = 35,
    wildPlants = {
      Plant_Grass = 3.0,
      Plant_TallGrass = 2.0,
      Plant_ShrubLow = 2.0,
      Plant_Alocasia = 0.8,
      Plant_TreeCecropia = 0.3,
      Plant_TreePalm = 0.3,
      Plant_TreeBamboo = 0.3,
      Plant_TreeTeak = 0.2,
      Plant_Bush = 0.15,
      Plant_Clivia = 0.07,
      Plant_Berry = 0.05,
      Plant_Rafflesia = 0.0008,
    },
    wildAnimals = {
      GuineaPig = 0.25,
      Rat = 1,
      Monkey = 1,
      Boomalope = 0.5,
      Capybara = 0.5,
      Cassowary = 0.5,
      Tortoise = 0.5,
      Chinchilla = 0.5,
      WildBoar = 0.5,
      Elephant = 0.5,
      Rhinoceros = 0.5,
      Alpaca = 0.5,
      Cobra = 0.15,
      Panther = 0.15,
    },
  },

  ["BiomeDef:TropicalSwamp"] = {
    _ = {
      DefCategory = "BiomeDef",
      FileName = "Biomes_Warm.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "TropicalSwamp",
    label = "tropical swamp",
    description = [[A plant-choked, steamy swamp seething with parasites and pathogens. Much of the land is too marshy to build on. Difficult movement, aggressive animals, and rampant disease make living here a nightmare.]],
    movementDifficulty = 4,
    forageability = 0.75,
    foragedFood = "RawBerries",
    diseaseMtbDays = 30,
    wildPlants = {
      Plant_TallGrass = 4.8,
      Plant_ShrubLow = 2.0,
      Plant_TreeWillow = 1.72,
      Plant_TreeCypress = 1.72,
      Plant_TreeMaple = 1.72,
      Plant_Chokevine = 0.8,
      Plant_Alocasia = 0.8,
      Plant_Bush = 0.15,
      Plant_Clivia = 0.07,
      Plant_Berry = 0.05,
      Plant_Rafflesia = 0.0008,
    },
    wildAnimals = {
      GuineaPig = 0.18,
      Rat = 1,
      Monkey = 1,
      Boomalope = 0.5,
      Capybara = 0.5,
      Cassowary = 0.5,
      Tortoise = 0.5,
      Chinchilla = 0.5,
      WildBoar = 0.5,
      Elephant = 0.5,
      Rhinoceros = 0.5,
      Alpaca = 0.5,
      Cobra = 0.15,
      Panther = 0.15,
    },
  },

  ["BiomeDef:AridShrubland"] = {
    _ = {
      DefCategory = "BiomeDef",
      FileName = "Biomes_WarmArid.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "AridShrubland",
    label = "arid shrubland",
    description = [[A dry region, but not dry enough to become a true desert. Open plains with grasses and bushes give way to scattered groves of trees. Plants are hardy and there is a moderate density of animals, but arable soil is hard to find.]],
    movementDifficulty = 1,
    forageability = 0.5,
    foragedFood = "RawAgave",
    diseaseMtbDays = 65,
    wildPlants = {
      Plant_Grass = 7.0,
      Plant_Dandelion = 0.8,
      Plant_Bush = 0.7,
      Plant_PincushionCactus = 0.6,
      Plant_Agave = 0.2,
      Plant_SaguaroCactus = 0.26,
      Plant_TreeDrago = 0.20,
      Plant_Berry = 0.10,
    },
    wildAnimals = {
      Donkey = 0.2,
      GuineaPig = 0.017,
      Horse = 0.1,
      Bison = 0.1,
      Rat = 1.3,
      Hare = 1.3,
      Iguana = 0.7,
      Gazelle = 0.7,
      Ostrich = 0.7,
      Emu = 0.7,
      Dromedary = 0.7,
      Boomrat = 0.5,
      Elephant = 0.5,
      Rhinoceros = 0.5,
      Boomalope = 0.5,
      Cougar = 0.15,
      Fox_Fennec = 0.15,
      Megasloth = 0.1,
    },
  },

  ["BiomeDef:Desert"] = {
    _ = {
      DefCategory = "BiomeDef",
      FileName = "Biomes_WarmArid.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Desert",
    label = "desert",
    description = [[A very dry area which supports little life. There is very little arable land, and animal life is very sparse. Deserts can be hot, or quite cold.]],
    movementDifficulty = 1,
    forageability = 0.25,
    foragedFood = "RawAgave",
    diseaseMtbDays = 90,
    wildPlants = {
      Plant_Grass = 6,
      Plant_PincushionCactus = 1,
      Plant_SaguaroCactus = 1.0,
      Plant_Dandelion = 0.5,
      Plant_TreeDrago = 0.45,
      Plant_Agave = 0.25,
      Plant_Bush = 0.25,
    },
    wildAnimals = {
      Donkey = 0.15,
      GuineaPig = 0.01,
      Iguana = 1.2,
      Dromedary = 0.7,
      Boomalope = 0.6,
      Ostrich = 0.6,
      Emu = 0.6,
      Gazelle = 0.6,
      Cougar = 0.07,
      Fox_Fennec = 0.07,
    },
  },

  ["BiomeDef:ExtremeDesert"] = {
    _ = {
      DefCategory = "BiomeDef",
      FileName = "Biomes_WarmArid.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "ExtremeDesert",
    label = "extreme desert",
    description = [[An extremely hot, dry area, devoid of almost all life. Searing heat and a near total lack of arable land make it very difficult to survive here.]],
    movementDifficulty = 1,
    forageability = 0,
    diseaseMtbDays = 90,
    wildPlants = {
      Plant_Grass = 6,
      Plant_SaguaroCactus = 1,
      Plant_Agave = 0.25,
    },
    wildAnimals = {
      Donkey = 0.20,
      GuineaPig = 0.002,
      Iguana = 1.5,
      Dromedary = 0.2,
      Fox_Fennec = 0.1,
    },
  },

  ["BiomeDef:Ocean"] = {
    _ = {
      DefCategory = "BiomeDef",
      FileName = "Biomes_Water.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Ocean",
    label = "ocean",
    description = [[Open ocean. Great for fish. Not so great for you.]],
  },

  ["BiomeDef:Lake"] = {
    _ = {
      DefCategory = "BiomeDef",
      FileName = "Biomes_Water.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Lake",
    label = "lake",
    description = [[A large lake. Beautiful to live next to. Not so beautiful to live in.]],
  },

  ["ThingDef:Beer"] = {
    _ = {
      ParentName = "DrugBase",
      DefCategory = "ThingDef",
      FileName = "Alcohol_Beer.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Beer",
    label = "beer",
    description = [[The first beverage besides water ever consumed by mankind. Beer can taste good, but its main effect is intoxication. Excessive consumption can lead to alcohol blackouts and, over time, addiction.]],
    stackLimit = 25,
    statBases = {
      DeteriorationRate = 0.5,
      MarketValue = 12,
      Mass = 0.3,
      Flammability = 0.5,
      Nutrition = 0.08,
    },
    ingestible = {
      foodType = {
        "Fluid",
        "Processed",
        "Liquor",
      },
      joyKind = "Chemical",
      joy = 0.17,
      drugCategory = "Social",
      chairSearchRadius = 25,
      canAutoSelectAsFoodForCaravan = false,
      outcomeDoers = {
        {
          _ = {
            Class = "IngestionOutcomeDoer_GiveHediff",
          },
          hediffDef = "AlcoholHigh",
          severity = 0.15,
          toleranceChemical = "Alcohol",
        },
        {
          _ = {
            Class = "IngestionOutcomeDoer_GiveHediff",
          },
          hediffDef = "AlcoholTolerance",
          severity = 0.016,
          divideByBodySize = true,
        },
      },
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Drug",
        },
        chemical = "Alcohol",
        addictiveness = 0.010,
        minToleranceToAddict = 0.25,
        existingAddictionSeverityOffset = 0.20,
        needLevelOffset = 0.9,
        listOrder = 10,
      },
      {
        compClass = "CompEquippable",
      },
    },
    tools = {
      {
        label = "bottle",
        capacities = {
          "Blunt",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
      {
        label = "neck",
        capacities = {
          "Poke",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
    },
  },

  ["ThingDef:Wort"] = {
    _ = {
      ParentName = "ResourceBase",
      DefCategory = "ThingDef",
      FileName = "Alcohol_Beer.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Wort",
    label = "wort",
    description = [[Un-fermented beer. This substance needs to ferment in a fermenting barrel before it becomes drinkable beer.]],
    stackLimit = 25,
    thingCategories = {
      "Manufactured",
    },
    statBases = {
      DeteriorationRate = 1.0,
      MarketValue = 2.5,
      Mass = 0.8,
      Flammability = 0.2,
      MaxHitPoints = 60,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Rottable",
        },
        daysToRotStart = 5,
        rotDestroys = true,
      },
    },
  },

  ["ThingDef:Ambrosia"] = {
    _ = {
      ParentName = "DrugBase",
      DefCategory = "ThingDef",
      FileName = "Ambrosia.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Ambrosia",
    label = "ambrosia",
    description = [[A soft, rare fruit. Ambrosia tastes wonderful and produces a subtle mood-increasing chemical high. However, if eaten too often, it can generate a mild addiction.]],
    tradeability = "Sellable",
    statBases = {
      MarketValue = 15,
      Mass = 0.1,
      DeteriorationRate = 4,
      Nutrition = 0.2,
    },
    ingestible = {
      baseIngestTicks = 80,
      chairSearchRadius = 4,
      preferability = "DesperateOnly",
      tasteThought = {},
      foodType = {
        "VegetableOrFruit",
      },
      joyKind = "Chemical",
      joy = 0.5,
      drugCategory = "Social",
      canAutoSelectAsFoodForCaravan = false,
      outcomeDoers = {
        {
          _ = {
            Class = "IngestionOutcomeDoer_GiveHediff",
          },
          hediffDef = "AmbrosiaHigh",
          severity = 0.50,
          toleranceChemical = "Ambrosia",
        },
        {
          _ = {
            Class = "IngestionOutcomeDoer_GiveHediff",
          },
          hediffDef = "AmbrosiaTolerance",
          severity = 0.032,
          divideByBodySize = true,
        },
      },
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Rottable",
        },
        daysToRotStart = 30,
        rotDestroys = true,
      },
      {
        _ = {
          Class = "CompProperties_Drug",
        },
        chemical = "Ambrosia",
        addictiveness = 0.010,
        minToleranceToAddict = 0.15,
        existingAddictionSeverityOffset = 0.1,
        needLevelOffset = 0.9,
        listOrder = 30,
      },
    },
  },

  ["ThingDef:DrugBase"] = {
    _ = {
      Name = "DrugBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "DrugBases.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    thingClass = "ThingWithComps",
    category = "Item",
    useHitPoints = true,
    statBases = {
      MaxHitPoints = 50,
      Flammability = 1.0,
      DeteriorationRate = 2,
      Beauty = -4,
    },
    altitudeLayer = "Item",
    stackLimit = 150,
    thingCategories = {
      "Drugs",
    },
    tradeTags = {
      "Drugs",
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Forbiddable",
        },
      },
    },
    pathCost = 14,
    ingestible = {
      preferability = "NeverForNutrition",
      chairSearchRadius = 8,
    },
  },

  ["ThingDef:MakeableDrugBase"] = {
    _ = {
      Name = "MakeableDrugBase",
      ParentName = "DrugBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "DrugBases.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    recipeMaker = {
      workSpeedStat = "DrugSynthesisSpeed",
      workSkill = "Intellectual",
      effectWorking = "Cook",
      soundWorking = "Recipe_CookMeal",
      bulkRecipeCount = 4,
    },
  },

  ["ThingDef:MakeableDrugPillBase"] = {
    _ = {
      Name = "MakeableDrugPillBase",
      ParentName = "MakeableDrugBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "DrugBases.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    ingestible = {
      foodType = {
        "Processed",
      },
      baseIngestTicks = 100,
      chairSearchRadius = 0,
    },
  },

  ["ThingDef:DrugPillBase"] = {
    _ = {
      Name = "DrugPillBase",
      ParentName = "DrugBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "DrugBases.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    ingestible = {
      foodType = {
        "Processed",
      },
      baseIngestTicks = 100,
      chairSearchRadius = 0,
    },
  },

  ["ThingDef:GoJuice"] = {
    _ = {
      ParentName = "MakeableDrugBase",
      DefCategory = "ThingDef",
      FileName = "GoJuice.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "GoJuice",
    label = "go-juice",
    description = [[A synthetic performance-enhancing drug developed for space marines during the early days of interplanetary warfare. Go-juice blocks pain, increases movement speed, and improves the user's melee and shooting abilities.\n\nThe military chemists who created it were never able to remove its addictiveness. Some saw this as a downside; others saw it as a benefit.]],
    statBases = {
      WorkToMake = 600,
      MarketValue = 53,
      Mass = 0.1,
    },
    ingestible = {
      joyKind = "Chemical",
      joy = 0.40,
      drugCategory = "Hard",
      foodType = {
        "Processed",
        "Fluid",
      },
      baseIngestTicks = 80,
      chairSearchRadius = 0,
      outcomeDoers = {
        {
          _ = {
            Class = "IngestionOutcomeDoer_GiveHediff",
          },
          hediffDef = "GoJuiceHigh",
          severity = 0.5,
          toleranceChemical = "GoJuice",
        },
        {
          _ = {
            Class = "IngestionOutcomeDoer_OffsetNeed",
          },
          need = "Rest",
          offset = 0.4,
          toleranceChemical = "GoJuice",
        },
        {
          _ = {
            Class = "IngestionOutcomeDoer_OffsetPsyfocus",
          },
          offset = 0.15,
        },
      },
    },
    recipeMaker = {
      researchPrerequisite = "GoJuiceProduction",
      recipeUsers = {
        "DrugLab",
      },
      soundWorking = "Recipe_Drug",
    },
    costList = {
      Neutroamine = 2,
      Yayo = 1,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Drug",
        },
        chemical = "GoJuice",
        addictiveness = 0.026,
        existingAddictionSeverityOffset = 0.20,
        needLevelOffset = 0.9,
        isCombatEnhancingDrug = true,
        listOrder = 200,
        overdoseSeverityOffset = { ["<"]=0.18, [">"]=0.35 },
        largeOverdoseChance = 0.005,
      },
    },
  },

  ["ThingDef:Luciferium"] = {
    _ = {
      ParentName = "DrugPillBase",
      DefCategory = "ThingDef",
      FileName = "Luciferium.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Luciferium",
    label = "luciferium",
    description = [[A concoction of mechanites that dramatically improve the body's functioning in all respects. Over time, it can even heal old scarred-over wounds or brain damage, though it cannot regenerate lost limbs. Unfortunately, without the moderating effects of regular doses every five or six days, the mechanites lose cohesion, causing continuous berserk rages and, eventually, death.\n\nAfter the first dose, there is no way to get the mechanites out, ever.\n\nOn the urbworlds, they call Luciferium the 'Devil's Bargain'. Many have been forced to kill friends when no more of the seductive red pills could be found.]],
    statBases = {
      MarketValue = 70,
      Mass = 0.01,
    },
    ingestible = {
      drugCategory = "Medical",
      outcomeDoers = {
        {
          _ = {
            Class = "IngestionOutcomeDoer_GiveHediff",
          },
          hediffDef = "LuciferiumHigh",
          severity = 1.00,
          doToGeneratedPawnIfAddicted = true,
        },
      },
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Drug",
        },
        chemical = "Luciferium",
        addictiveness = 1.00,
        needLevelOffset = 0.9,
        listOrder = 1010,
      },
    },
    tradeTags = {
      "ExoticMisc",
    },
  },

  ["ThingDef:Penoxycyline"] = {
    _ = {
      ParentName = "MakeableDrugPillBase",
      DefCategory = "ThingDef",
      FileName = "Penoxycyline.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Penoxycyline",
    label = "penoxycyline",
    description = [[A drug for preventing infections before they take hold. Blocks malaria, sleeping sickness, plague. Must be taken every five days to remain effective.\n\nThis drug only prevents new infections. It does not cure existing infections - even those that are not yet discovered.]],
    statBases = {
      WorkToMake = 600,
      MarketValue = 18,
      Mass = 0.005,
      Flammability = 0.7,
    },
    ingestible = {
      drugCategory = "Medical",
      outcomeDoers = {
        {
          _ = {
            Class = "IngestionOutcomeDoer_GiveHediff",
          },
          hediffDef = "PenoxycylineHigh",
          severity = 1.0,
        },
      },
    },
    recipeMaker = {
      researchPrerequisite = "PenoxycylineProduction",
      recipeUsers = {
        "DrugLab",
      },
    },
    costList = {
      Neutroamine = 2,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Drug",
        },
        listOrder = 1000,
        overdoseSeverityOffset = { ["<"]=0.08, [">"]=0.14 },
      },
    },
  },

  ["ThingDef:Flake"] = {
    _ = {
      ParentName = "MakeableDrugBase",
      DefCategory = "ThingDef",
      FileName = "Psychite_Flake.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Flake",
    label = "flake",
    description = [[A flaky white preparation of psychite that can be smoked to induce a short but powerful euphoric state. While it is cheap to produce and extremely pleasurable to use, it is exceptionally addictive. Flake is known for destroying lives, communities, and entire societies.]],
    statBases = {
      WorkToMake = 250,
      MarketValue = 14,
      Mass = 0.05,
    },
    ingestible = {
      foodType = {
        "Processed",
      },
      joyKind = "Chemical",
      joy = 0.70,
      baseIngestTicks = 650,
      drugCategory = "Hard",
      outcomeDoers = {
        {
          _ = {
            Class = "IngestionOutcomeDoer_GiveHediff",
          },
          hediffDef = "FlakeHigh",
          severity = 0.75,
          toleranceChemical = "Psychite",
        },
        {
          _ = {
            Class = "IngestionOutcomeDoer_OffsetNeed",
          },
          need = "Rest",
          offset = 0.2,
          toleranceChemical = "Psychite",
        },
        {
          _ = {
            Class = "IngestionOutcomeDoer_GiveHediff",
          },
          hediffDef = "PsychiteTolerance",
          severity = 0.04,
          divideByBodySize = true,
        },
      },
    },
    recipeMaker = {
      researchPrerequisite = "PsychiteRefining",
      recipeUsers = {
        "DrugLab",
      },
      soundWorking = "Recipe_Drug",
    },
    costList = {
      PsychoidLeaves = 4,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Drug",
        },
        chemical = "Psychite",
        addictiveness = 0.05,
        existingAddictionSeverityOffset = 0.30,
        needLevelOffset = 0.9,
        listOrder = 110,
        overdoseSeverityOffset = { ["<"]=0.18, [">"]=0.35 },
        largeOverdoseChance = 0.015,
      },
    },
  },

  ["ThingDef:PsychiteTea"] = {
    _ = {
      ParentName = "MakeableDrugBase",
      DefCategory = "ThingDef",
      FileName = "Psychite_Tea.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "PsychiteTea",
    label = "psychite tea",
    description = [[A fragrant tea infused with leaves of the psychoid plant. Drinking it induces a subtle psychite euphoria. This tea is easy to produce at cooking facilities, but can produce psychite addiction if consumed too often.\n\nMany tribes use psychoid tea, both as a daily energizer and as part of social and religious rituals.]],
    statBases = {
      WorkToMake = 400,
      MarketValue = 10,
      Mass = 0.05,
      DeteriorationRate = 6,
    },
    ingestible = {
      foodType = {
        "Fluid",
        "Processed",
      },
      joyKind = "Chemical",
      joy = 0.40,
      baseIngestTicks = 210,
      drugCategory = "Social",
      outcomeDoers = {
        {
          _ = {
            Class = "IngestionOutcomeDoer_GiveHediff",
          },
          hediffDef = "PsychiteTeaHigh",
          severity = 0.75,
          toleranceChemical = "Psychite",
        },
        {
          _ = {
            Class = "IngestionOutcomeDoer_OffsetNeed",
          },
          need = "Rest",
          offset = 0.1,
          toleranceChemical = "Psychite",
        },
        {
          _ = {
            Class = "IngestionOutcomeDoer_GiveHediff",
          },
          hediffDef = "PsychiteTolerance",
          severity = 0.03,
          divideByBodySize = true,
        },
      },
    },
    recipeMaker = {
      researchPrerequisite = "PsychoidBrewing",
      recipeUsers = {
        "Campfire",
        "ElectricStove",
        "FueledStove",
      },
      workSpeedStat = "DrugCookingSpeed",
      workSkill = "Cooking",
      skillRequirements = {
        Cooking = 2,
      },
      requiredGiverWorkType = "Cooking",
    },
    costList = {
      PsychoidLeaves = 4,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Drug",
        },
        chemical = "Psychite",
        addictiveness = 0.02,
        minToleranceToAddict = 0.10,
        existingAddictionSeverityOffset = 0.15,
        needLevelOffset = 0.9,
        listOrder = 110,
      },
    },
  },

  ["ThingDef:Yayo"] = {
    _ = {
      ParentName = "MakeableDrugBase",
      DefCategory = "ThingDef",
      FileName = "Psychite_Yayo.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Yayo",
    label = "yayo",
    description = [[A refined powdery preparation of the psychite drug. When snorted, it produces a rapid euphoric high, dramatically reduces the user's need for rest, and suppresses pain. Like all forms of psychite, it is addictive, though it is not as addictive as the cruder flake.\n\nBecause of its high cost and refined appearance, many cultures associate yayo with degenerate wealth. Whether in the throneroom or the boardroom, many hare-brained policy schemes have been developed during yayo-fueled binge parties.]],
    statBases = {
      WorkToMake = 350,
      MarketValue = 21,
      Mass = 0.05,
    },
    ingestible = {
      foodType = {
        "Processed",
      },
      joyKind = "Chemical",
      joy = 0.80,
      drugCategory = "Hard",
      baseIngestTicks = 150,
      outcomeDoers = {
        {
          _ = {
            Class = "IngestionOutcomeDoer_GiveHediff",
          },
          hediffDef = "YayoHigh",
          severity = 0.75,
          toleranceChemical = "Psychite",
        },
        {
          _ = {
            Class = "IngestionOutcomeDoer_OffsetNeed",
          },
          need = "Rest",
          offset = 0.4,
          toleranceChemical = "Psychite",
        },
        {
          _ = {
            Class = "IngestionOutcomeDoer_GiveHediff",
          },
          hediffDef = "PsychiteTolerance",
          severity = 0.040,
          divideByBodySize = true,
        },
      },
    },
    recipeMaker = {
      researchPrerequisite = "PsychiteRefining",
      recipeUsers = {
        "DrugLab",
      },
      soundWorking = "Recipe_Drug",
    },
    costList = {
      PsychoidLeaves = 8,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Drug",
        },
        chemical = "Psychite",
        addictiveness = 0.01,
        existingAddictionSeverityOffset = 0.20,
        needLevelOffset = 0.9,
        isCombatEnhancingDrug = true,
        listOrder = 100,
        overdoseSeverityOffset = { ["<"]=0.18, [">"]=0.35 },
        largeOverdoseChance = 0.01,
      },
    },
  },

  ["ThingDef:SmokeleafJoint"] = {
    _ = {
      ParentName = "MakeableDrugBase",
      DefCategory = "ThingDef",
      FileName = "Smokeleaf.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "SmokeleafJoint",
    label = "smokeleaf joint",
    description = [[Smokeleaf leaves prepared in small rolls for smoking. The drug improves mood, but also increases appetite, reduces focus and slows movement. Smokeleaf use can produce a dependency.\n\nJoints can be produced at a crafting spot without equipment, and are a fixture in many traditional low-industriousness cultures.]],
    statBases = {
      WorkToMake = 450,
      MarketValue = 11,
      Mass = 0.05,
      DeteriorationRate = 6,
      Flammability = 1.3,
    },
    ingestible = {
      foodType = {
        "Plant",
        "Processed",
      },
      joyKind = "Chemical",
      joy = 0.80,
      baseIngestTicks = 720,
      drugCategory = "Social",
      outcomeDoers = {
        {
          _ = {
            Class = "IngestionOutcomeDoer_GiveHediff",
          },
          hediffDef = "SmokeleafHigh",
          severity = 0.5,
          toleranceChemical = "Smokeleaf",
        },
        {
          _ = {
            Class = "IngestionOutcomeDoer_OffsetNeed",
          },
          need = "Rest",
          offset = -0.1,
        },
        {
          _ = {
            Class = "IngestionOutcomeDoer_GiveHediff",
          },
          hediffDef = "SmokeleafTolerance",
          severity = 0.030,
          divideByBodySize = true,
        },
      },
    },
    recipeMaker = {
      recipeUsers = {
        "CraftingSpot",
        "DrugLab",
      },
      workSpeedStat = "DrugCookingSpeed",
      workSkill = "Cooking",
    },
    costList = {
      SmokeleafLeaves = 4,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Drug",
        },
        chemical = "Smokeleaf",
        addictiveness = 0.020,
        minToleranceToAddict = 0.15,
        existingAddictionSeverityOffset = 0.06,
        needLevelOffset = 0.9,
        listOrder = 20,
      },
    },
  },

  ["ThingDef:WakeUp"] = {
    _ = {
      ParentName = "MakeableDrugPillBase",
      DefCategory = "ThingDef",
      FileName = "WakeUp.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "WakeUp",
    label = "wake-up",
    description = [[A synthetic stimulant. Wake-up fills the user's need for rest, allowing them to work for extended periods without getting tired. However, taking wake-up runs the risk of developing an addiction.\n\nIn the most competitive universities and companies of many worlds, high-achievers are sometimes called 'wake-ups' because of the association with this drug.]],
    statBases = {
      WorkToMake = 900,
      MarketValue = 35,
      Mass = 0.005,
    },
    ingestible = {
      joyKind = "Chemical",
      joy = 0.40,
      drugCategory = "Hard",
      outcomeDoers = {
        {
          _ = {
            Class = "IngestionOutcomeDoer_GiveHediff",
          },
          hediffDef = "WakeUpHigh",
          severity = 0.75,
          toleranceChemical = "WakeUp",
        },
        {
          _ = {
            Class = "IngestionOutcomeDoer_OffsetNeed",
          },
          need = "Rest",
          offset = 1.0,
          toleranceChemical = "WakeUp",
        },
      },
    },
    recipeMaker = {
      researchPrerequisite = "WakeUpProduction",
      recipeUsers = {
        "DrugLab",
      },
    },
    costList = {
      Neutroamine = 2,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Drug",
        },
        chemical = "WakeUp",
        addictiveness = 0.02,
        existingAddictionSeverityOffset = 0.20,
        needLevelOffset = 0.9,
        listOrder = 210,
        overdoseSeverityOffset = { ["<"]=0.18, [">"]=0.35 },
        largeOverdoseChance = 0.005,
      },
    },
  },

  ["ThingDef:BodyPartArchotechBase"] = {
    _ = {
      Name = "BodyPartArchotechBase",
      ParentName = "BodyPartBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Hediffs_BodyParts_Archotech.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    thingCategories = {
      "BodyPartsArchotech",
    },
    statBases = {
      DeteriorationRate = 0,
    },
  },

  ["ThingDef:ArchotechEye"] = {
    _ = {
      ParentName = "BodyPartArchotechBase",
      DefCategory = "ThingDef",
      FileName = "Hediffs_BodyParts_Archotech.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "ArchotechEye",
    label = "archotech eye",
    description = [[An artifical eye built by an archotech. It perceives every type of electromagnetic radiation, including radio waves, infrared, light, x-rays, and gamma rays. Its visual acuity is precise enough to read handwriting from twenty meters away. It can emit various wavelengths of radiation like a flashlight, and has an internal subpersona AI which helps highlight useful visual information. Externally, it looks like a natural human eye, except it can change color at will. Its internal workings are a mystery to all human minds.]],
    statBases = {
      MarketValue = 2800,
      Mass = 0.3,
    },
  },

  ["ThingDef:ArchotechArm"] = {
    _ = {
      ParentName = "BodyPartArchotechBase",
      DefCategory = "ThingDef",
      FileName = "Hediffs_BodyParts_Archotech.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "ArchotechArm",
    label = "archotech arm",
    description = [[An artifical arm built by an archotech. It's strong enough to crush a thick hardwood branch in its hand, and precise enough to write a sonnet on a grain of rice. It looks and feels like natural flesh, but it's harder to damage than plasteel. Even if it is harmed, it repairs itself over time. Its internal workings are a mystery to all human minds.]],
    statBases = {
      MarketValue = 2800,
      Mass = 4,
    },
  },

  ["ThingDef:ArchotechLeg"] = {
    _ = {
      ParentName = "BodyPartArchotechBase",
      DefCategory = "ThingDef",
      FileName = "Hediffs_BodyParts_Archotech.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "ArchotechLeg",
    label = "archotech leg",
    description = [[An artifical leg built by an archotech. It looks and feels like natural flesh, but a pair of these can move the user as fast as a decent car, and it's harder to damage than plasteel. Even if it is harmed, it repairs itself over time. Its internal workings are a mystery to all human minds.]],
    statBases = {
      MarketValue = 2800,
      Mass = 7,
    },
  },

  ["ThingDef:BodyPartBase"] = {
    _ = {
      Name = "BodyPartBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Hediffs_BodyParts_Base.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    thingClass = "ThingWithComps",
    category = "Item",
    useHitPoints = true,
    altitudeLayer = "Item",
    pathCost = 14,
    statBases = {
      MaxHitPoints = 50,
      Flammability = 0.7,
      Beauty = -4,
      DeteriorationRate = 2.0,
      Mass = 1,
    },
    tradeTags = {
      "TechHediff",
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Forbiddable",
        },
      },
    },
  },

  ["ThingDef:BodyPartBionicBase"] = {
    _ = {
      Name = "BodyPartBionicBase",
      ParentName = "BodyPartBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Hediffs_BodyParts_Bionic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    thingCategories = {
      "BodyPartsBionic",
    },
    tradeTags = {
      "Bionic",
    },
    statBases = {
      WorkToMake = 26000,
    },
    recipeMaker = {
      workSpeedStat = "GeneralLaborSpeed",
      workSkill = "Crafting",
      effectWorking = "Smith",
      soundWorking = "Recipe_Smith",
      unfinishedThingDef = "UnfinishedHealthItemBionic",
      skillRequirements = {
        Crafting = 8,
      },
      researchPrerequisite = "Bionics",
      recipeUsers = {
        "FabricationBench",
      },
    },
  },

  ["ThingDef:BionicEye"] = {
    _ = {
      ParentName = "BodyPartBionicBase",
      DefCategory = "ThingDef",
      FileName = "Hediffs_BodyParts_Bionic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "BionicEye",
    label = "bionic eye",
    description = [[An advanced artifical eye. With its biogel nerve-link, internal signal pre-processor, and wide-spectrum sensors, it is better than a biological eye in almost every way. A lattice-dust healing system allows it to recover from damage.]],
    costList = {
      Plasteel = 15,
      ComponentSpacer = 4,
    },
    statBases = {
      Mass = 0.3,
    },
  },

  ["ThingDef:BionicArm"] = {
    _ = {
      ParentName = "BodyPartBionicBase",
      DefCategory = "ThingDef",
      FileName = "Hediffs_BodyParts_Bionic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "BionicArm",
    label = "bionic arm",
    description = [[An advanced artificial arm. Silenced mini-servos give great strength, while the biogel nerve-link gives exquisite control. A lattice-dust healing system allows it to recover from damage. It is better than a biological arm in almost every way.]],
    costList = {
      Plasteel = 15,
      ComponentSpacer = 4,
    },
    statBases = {
      Mass = 5,
    },
  },

  ["ThingDef:BionicLeg"] = {
    _ = {
      ParentName = "BodyPartBionicBase",
      DefCategory = "ThingDef",
      FileName = "Hediffs_BodyParts_Bionic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "BionicLeg",
    label = "bionic leg",
    description = [[An advanced artificial leg. With its biogel nerve-link, powerful mini-servos, and lattice-dust healing system, it is better than a biological leg in almost every way.]],
    costList = {
      Plasteel = 15,
      ComponentSpacer = 4,
    },
    statBases = {
      Mass = 8,
    },
  },

  ["ThingDef:BionicSpine"] = {
    _ = {
      ParentName = "BodyPartBionicBase",
      DefCategory = "ThingDef",
      FileName = "Hediffs_BodyParts_Bionic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "BionicSpine",
    label = "bionic spine",
    description = [[An advanced artificial spine. A biogel nerve bundle runs down an articulated plasteel core, surrounded by a lattice-dust healing system. It matches the performance of a biological spine.]],
    costList = {
      Plasteel = 15,
      ComponentSpacer = 4,
    },
    statBases = {
      Mass = 2,
    },
  },

  ["ThingDef:BionicHeart"] = {
    _ = {
      ParentName = "BodyPartBionicBase",
      DefCategory = "ThingDef",
      FileName = "Hediffs_BodyParts_Bionic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "BionicHeart",
    label = "bionic heart",
    description = [[An advanced artificial heart. It has synthetic muscle fibers for a realistic heartbeat, plus a high-flow pump for rapid circulation during high stress. It is better than a biological heart in almost every way.]],
    costList = {
      Plasteel = 15,
      ComponentSpacer = 4,
    },
  },

  ["ThingDef:BionicStomach"] = {
    _ = {
      ParentName = "BodyPartBionicBase",
      DefCategory = "ThingDef",
      FileName = "Hediffs_BodyParts_Bionic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "BionicStomach",
    label = "bionic stomach",
    description = [[An advanced artificial stomach. A set of sensors and chemical synthesizers efficiently digest nearly any energy-bearing foodstuff. An integrated lattice-dust healing system automatically repairs any damage caused by the powerful acids. It is better than a biological stomach in almost every way.]],
    costList = {
      Plasteel = 10,
      ComponentSpacer = 3,
    },
    statBases = {
      Mass = 2,
    },
  },

  ["ThingDef:DeathAcidifier"] = {
    _ = {
      ParentName = "BodyPartBase",
      DefCategory = "ThingDef",
      FileName = "Hediffs_BodyParts_Bionic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "DeathAcidifier",
    label = "death acidifier",
    description = [[A chest implant for preventing enemy use of captured equipment. Upon the user's death, it releases powerful chemicals that dissolve gear in contact with the user's body. It doesn't damage others.]],
    statBases = {
      MarketValue = 400,
    },
    thingCategories = {
      "BodyPartsBionic",
    },
  },

  ["ThingDef:Mote_AcidCloud"] = {
    _ = {
      ParentName = "MoteBase",
      DefCategory = "ThingDef",
      FileName = "Hediffs_BodyParts_Bionic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Mote_AcidCloud",
    altitudeLayer = "MoteOverhead",
  },

  ["ThingDef:BionicEar"] = {
    _ = {
      ParentName = "BodyPartBionicBase",
      DefCategory = "ThingDef",
      FileName = "Hediffs_BodyParts_Bionic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "BionicEar",
    label = "bionic ear",
    description = [[An advanced artificial ear implant. A collection of invisible subdermal microphones capture sound and transmit it to a biogel nerve interface that links directly with the auditory nerve. It's sensitive enough to hear a cat before you see it, can't be damaged by loud noise, and automatically tunes itself to pick out meaningful sounds in noisy environments.]],
    costList = {
      Plasteel = 10,
      ComponentSpacer = 3,
    },
  },

  ["ThingDef:BodyPartNaturalBase"] = {
    _ = {
      Name = "BodyPartNaturalBase",
      ParentName = "BodyPartBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Hediffs_BodyParts_Natural.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    thingCategories = {
      "BodyPartsNatural",
    },
    statBases = {
      DeteriorationRate = 4.0,
    },
  },

  ["ThingDef:Heart"] = {
    _ = {
      ParentName = "BodyPartNaturalBase",
      DefCategory = "ThingDef",
      FileName = "Hediffs_BodyParts_Natural.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Heart",
    label = "heart",
    description = [[A biological human heart. Pumps blood around the body.]],
    statBases = {
      MarketValue = 500,
      Mass = 1,
    },
  },

  ["ThingDef:Lung"] = {
    _ = {
      ParentName = "BodyPartNaturalBase",
      DefCategory = "ThingDef",
      FileName = "Hediffs_BodyParts_Natural.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Lung",
    label = "lung",
    description = [[A biological human lung. A pair of these form the core of the human respiratory system.]],
    statBases = {
      MarketValue = 400,
      Mass = 1,
    },
  },

  ["ThingDef:Kidney"] = {
    _ = {
      ParentName = "BodyPartNaturalBase",
      DefCategory = "ThingDef",
      FileName = "Hediffs_BodyParts_Natural.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Kidney",
    label = "kidney",
    description = [[A biological human kidney. Filters and removes waste products from the blood.]],
    statBases = {
      MarketValue = 250,
      Mass = 1,
    },
  },

  ["ThingDef:Liver"] = {
    _ = {
      ParentName = "BodyPartNaturalBase",
      DefCategory = "ThingDef",
      FileName = "Hediffs_BodyParts_Natural.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Liver",
    label = "liver",
    description = [[A biological human liver. Plays an important role in metabolism.]],
    statBases = {
      MarketValue = 500,
      Mass = 2,
    },
  },

  ["ThingDef:BodyPartProstheticBase"] = {
    _ = {
      Name = "BodyPartProstheticBase",
      ParentName = "BodyPartBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Hediffs_BodyParts_Prosthetic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    thingCategories = {
      "BodyPartsProsthetic",
    },
    statBases = {
      WorkToMake = 15000,
    },
  },

  ["ThingDef:BodyPartProstheticMakeableBase"] = {
    _ = {
      Name = "BodyPartProstheticMakeableBase",
      ParentName = "BodyPartProstheticBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Hediffs_BodyParts_Prosthetic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    recipeMaker = {
      workSpeedStat = "GeneralLaborSpeed",
      workSkill = "Crafting",
      effectWorking = "Smith",
      soundWorking = "Recipe_Smith",
      recipeUsers = {
        "TableMachining",
      },
      skillRequirements = {
        Crafting = 5,
      },
      unfinishedThingDef = "UnfinishedHealthItemProsthetic",
      researchPrerequisite = "Prosthetics",
    },
  },

  ["ThingDef:SimpleProstheticLeg"] = {
    _ = {
      ParentName = "BodyPartProstheticMakeableBase",
      DefCategory = "ThingDef",
      FileName = "Hediffs_BodyParts_Prosthetic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "SimpleProstheticLeg",
    label = "prosthetic leg",
    description = [[A leg prosthesis. While it lacks a neural interface, its complex arrangement of internal joints allows it to mimic natural movement quite convincingly. Still, it is inferior to a real leg.]],
    costList = {
      Steel = 40,
      ComponentIndustrial = 4,
    },
    statBases = {
      Mass = 8,
    },
  },

  ["ThingDef:SimpleProstheticArm"] = {
    _ = {
      ParentName = "BodyPartProstheticMakeableBase",
      DefCategory = "ThingDef",
      FileName = "Hediffs_BodyParts_Prosthetic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "SimpleProstheticArm",
    label = "prosthetic arm",
    description = [[An arm prosthesis. While it lacks a neural interface, its complex arrangement of internal joints allows it to mimic natural movement quite convincingly. Still, it is inferior to a real arm.]],
    costList = {
      Steel = 40,
      ComponentIndustrial = 4,
    },
    statBases = {
      Mass = 5,
    },
  },

  ["ThingDef:SimpleProstheticHeart"] = {
    _ = {
      ParentName = "BodyPartProstheticMakeableBase",
      DefCategory = "ThingDef",
      FileName = "Hediffs_BodyParts_Prosthetic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "SimpleProstheticHeart",
    label = "prosthetic heart",
    description = [[A heart prosthesis. It contains an electric motor that pumps blood smoothly around the body. Users often report feeling tired, but it's better than the alternative.]],
    costList = {
      Steel = 25,
      ComponentIndustrial = 4,
    },
    statBases = {
      Mass = 2,
    },
  },

  ["ThingDef:CochlearImplant"] = {
    _ = {
      ParentName = "BodyPartProstheticMakeableBase",
      DefCategory = "ThingDef",
      FileName = "Hediffs_BodyParts_Prosthetic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "CochlearImplant",
    label = "cochlear implant",
    description = [[An implant which replaces normal hearing. An external microphone transmits a sound signal to electrodes wrapped around the inner ear's auditory sensing nerves. The electrodes stimulate the nerves according to the sound, creating a sensation of hearing. It's not as good as a natural ear, but it's a lot better than being deaf.]],
    costList = {
      Steel = 20,
      ComponentIndustrial = 4,
    },
  },

  ["ThingDef:PowerClaw"] = {
    _ = {
      ParentName = "BodyPartProstheticBase",
      DefCategory = "ThingDef",
      FileName = "Hediffs_BodyParts_Prosthetic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "PowerClaw",
    label = "power claw",
    description = [[A combat-oriented hand replacement consisting of a mechanical hand with a hooked claw on each finger. It cuts deep, and it is strong enough to crush a skull like a hand crushes an egg. The claws can be retracted, making it as useful as a natural hand for non-combat tasks, however its overall ungainlyness slows down movement slightly.]],
    costList = {
      Steel = 40,
      ComponentIndustrial = 8,
    },
    statBases = {
      Mass = 4,
    },
  },

  ["ThingDef:Joywire"] = {
    _ = {
      ParentName = "BodyPartProstheticBase",
      DefCategory = "ThingDef",
      FileName = "Hediffs_BodyParts_Prosthetic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Joywire",
    label = "joywire",
    description = [[A brain implant that stimulates the brain's pleasure centers. While it dramatically improves a user's mood, the blanket of happiness makes it hard to concentrate on anything real. Joywires are illegal on many worlds, and are known for destroying whole cultures.]],
    costList = {
      Steel = 20,
      ComponentIndustrial = 4,
    },
  },

  ["ThingDef:Painstopper"] = {
    _ = {
      ParentName = "BodyPartProstheticBase",
      DefCategory = "ThingDef",
      FileName = "Hediffs_BodyParts_Prosthetic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Painstopper",
    label = "painstopper",
    description = [[A brain implant which inhibits nociception, or pain sensation. While it does allow the user to accomplish more, it turns out pain has a purpose. When you don't feel it, you can get hurt really bad really easily.]],
    costList = {
      Steel = 20,
      ComponentIndustrial = 4,
    },
  },

  ["ThingDef:AncientConcreteBarrier"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Ancient.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "AncientConcreteBarrier",
    label = "ancient concrete barrier",
    thingClass = "Building",
    category = "Building",
    description = [[A traffic management solution from long ago.]],
    altitudeLayer = "Building",
    pathCost = 42,
    pathCostIgnoreRepeat = true,
    passability = "PassThroughOnly",
    fillPercent = 0.5,
    statBases = {
      MaxHitPoints = 500,
      Beauty = -10,
      Flammability = 0,
      WorkToBuild = 600,
    },
    building = {
      isInert = true,
    },
    costList = {
      Steel = 15,
    },
  },

  ["ThingDef:AncientLamppost"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Ancient.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "AncientLamppost",
    label = "ancient lamppost",
    thingClass = "Building",
    category = "Building",
    description = [[Road lighting from long ago. No longer functional.]],
    statBases = {
      MaxHitPoints = 300,
      WorkToBuild = 400,
    },
    fillPercent = 0.25,
    passability = "PassThroughOnly",
    pathCost = 42,
    costList = {
      Steel = 15,
    },
    building = {
      isInert = true,
    },
  },

  ["ThingDef:Urn"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Ancient.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Urn",
    label = "urn",
    description = [[An ancient-style decorative container.]],
    minifiedDef = "MinifiedThing",
    thingCategories = {
      "BuildingsFurniture",
    },
    altitudeLayer = "Building",
    passability = "PassThroughOnly",
    fillPercent = 0.40,
    statBases = {
      MaxHitPoints = 40,
      WorkToBuild = 500,
      Mass = 5,
      Flammability = 1.0,
      Beauty = 5,
    },
    pathCost = 30,
    building = {
      isInert = true,
    },
  },

  ["ThingDef:SculptureBase"] = {
    _ = {
      ParentName = "BuildingBase",
      Name = "SculptureBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Buildings_Art.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    thingClass = "Building_Art",
    altitudeLayer = "Building",
    passability = "PassThroughOnly",
    pathCost = 50,
    useHitPoints = true,
    minifiedDef = "MinifiedThing",
    thingCategories = {
      "BuildingsArt",
    },
    statBases = {
      Flammability = 1.0,
      SellPriceFactor = 1.10,
      MeditationFocusStrength = 0.0,
    },
    comps = {
      {
        compClass = "CompQuality",
      },
      {
        _ = {
          Class = "CompProperties_Art",
        },
        nameMaker = "NamerArtSculpture",
        descriptionMaker = "ArtDescription_Sculpture",
        canBeEnjoyedAsArt = true,
      },
      {
        _ = {
          Class = "CompProperties_MeditationFocus",
        },
        statDef = "MeditationFocusStrength",
        focusTypes = {
          "Artistic",
        },
        offsets = {
          {
            _ = {
              Class = "FocusStrengthOffset_Quality",
            },
            curve = {
              points = {
                {0, 0.12},
                {1, 0.16},
                {2, 0.20},
                {3, 0.22},
                {4, 0.24},
                {5, 0.26},
                {6, 0.28},
              },
            },
          },
          {
            _ = {
              Class = "FocusStrengthOffset_BuildingDefsWithQuality",
            },
            defs = {
              "SculptureSmall",
              "SculptureLarge",
              "SculptureGrand",
            },
            radius = 9.9,
            maxBuildings = 8,
            focusPerQuality = {
              points = {
                {0, 0.0},
                {1, 0.0},
                {2, 0.01},
                {3, 0.01},
                {4, 0.01},
                {5, 0.02},
                {6, 0.02},
              },
            },
            explanationKey = "MeditationFocusPerSculpture",
            explanationKeyAbstract = "MeditationFocusPerSculptureAbstract",
          },
        },
      },
    },
    tradeTags = {
      "Art",
    },
    recipeMaker = {
      workSpeedStat = "GeneralLaborSpeed",
      workSkill = "Artistic",
      unfinishedThingDef = "UnfinishedSculpture",
      effectWorking = "Sculpt",
      soundWorking = "Recipe_Sculpt",
      recipeUsers = {
        "TableSculpting",
      },
      defaultIngredientFilter = {
        categories = {
          "Root",
        },
        disallowedThingDefs = {
          "Gold",
          "Silver",
          "Plasteel",
          "Jade",
          "Uranium",
        },
      },
    },
  },

  ["ThingDef:SculptureSmall"] = {
    _ = {
      ParentName = "SculptureBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Art.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "SculptureSmall",
    label = "small sculpture",
    description = [[A torso-sized piece of material sculpted into an artistic form.]],
    fillPercent = 0.35,
    statBases = {
      MaxHitPoints = 90,
      Mass = 3,
      Beauty = 50,
      WorkToMake = 18000,
    },
  },

  ["ThingDef:SculptureLarge"] = {
    _ = {
      ParentName = "SculptureBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Art.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "SculptureLarge",
    label = "large sculpture",
    description = [[A person-sized piece of material sculpted into an artistic form.]],
    fillPercent = 0.5,
    statBases = {
      MaxHitPoints = 150,
      Mass = 7,
      Beauty = 100,
      WorkToMake = 30000,
    },
  },

  ["ThingDef:SculptureGrand"] = {
    _ = {
      ParentName = "SculptureBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Art.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "SculptureGrand",
    label = "grand sculpture",
    description = [[A huge sculpture sized to dominate a room.]],
    fillPercent = 0.5,
    size = {2, 2},
    statBases = {
      MaxHitPoints = 300,
      Beauty = 400,
      Mass = 28,
      WorkToMake = 105000,
    },
  },

  ["ThingDef:Snowman"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Art.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Snowman",
    label = "snowman",
    description = [[A set of large snowballs piled and shaped to resemble a person. People make these for the fun of it.]],
    thingClass = "Building",
    altitudeLayer = "Building",
    passability = "PassThroughOnly",
    pathCost = 30,
    pathCostIgnoreRepeat = false,
    useHitPoints = true,
    fillPercent = 0.35,
    statBases = {
      MaxHitPoints = 50,
      Beauty = 4,
      WorkToBuild = 1000,
      MarketValue = 0,
    },
    comps = {
      {
        compClass = "CompMelter",
      },
    },
    building = {
      repairable = false,
      isInert = true,
      artificialForMeditationPurposes = false,
    },
  },

  ["ThingDef:BuildingBase"] = {
    _ = {
      Name = "BuildingBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Buildings_Base.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    category = "Building",
    thingClass = "Building",
    terrainAffordanceNeeded = "Light",
    leaveResourcesWhenKilled = true,
    statBases = {
      SellPriceFactor = 0.70,
    },
  },

  ["ThingDef:CrashedShipPartBase"] = {
    _ = {
      Abstract = true,
      Name = "CrashedShipPartBase",
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Exotic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    size = {6, 3},
    passability = "Impassable",
    fillPercent = 1,
    altitudeLayer = "Building",
    terrainAffordanceNeeded = "Light",
    leaveResourcesWhenKilled = false,
    statBases = {
      MaxHitPoints = 1200,
      Flammability = 0,
      Beauty = -200,
    },
    killedLeavings = {
      ChunkSlagSteel = 4,
      Steel = 60,
      ComponentIndustrial = 1,
      Plasteel = 10,
      ComponentSpacer = 1,
    },
    building = {
      combatPower = 250,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_WakeUpDormant",
        },
      },
    },
  },

  ["ThingDef:PsychicDronerShipPart"] = {
    _ = {
      ParentName = "CrashedShipPartBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Exotic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "PsychicDronerShipPart",
    label = "ship part (psychic droner)",
    description = [[An ancient ship part, torn off of a craft of unknown origin. It might be thousands of years old.\n\nThis one contains a psychic disturbance device. Using incomprehensible archotechnologies, it generates a psychic signal that drives people and animals mad within a wide radius around itself.]],
    comps = {
      {
        _ = {
          Class = "CompProperties_CausesGameCondition_PsychicEmanation",
        },
        conditionDef = "PsychicDroner",
        compClass = "CompCauseGameCondition_PsychicEmanation",
        worldRange = 1,
        droneLevelIncreaseInterval = 150000,
        droneLevel = 2,
      },
      {
        _ = {
          Class = "CompProperties_AnimalInsanityPulser",
        },
      },
    },
  },

  ["ThingDef:DefoliatorShipPart"] = {
    _ = {
      ParentName = "CrashedShipPartBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Exotic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "DefoliatorShipPart",
    label = "ship part (defoliator)",
    description = [[An ancient ship part, torn off of a craft of unknown origin. It might be thousands of years old.\n\nThis one contains a device which annihilates plant life near itself without directly affecting flesh creatures. These kinds of weapons are sometimes scattered across farmlands or forests to remove the enemy's food supply and hiding places without permanently ruining the territory. They're usually associated with orbital-drop mechanoid armies.]],
    comps = {
      {
        _ = {
          Class = "CompProperties_PlantHarmRadius",
        },
        radiusPerDayCurve = {
          points = {
            "0  , 5",
            "1.5, 18",
            "6  , 40",
            "20 , 100",
          },
        },
      },
    },
  },

  ["ThingDef:ShipChunk"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Exotic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "ShipChunk",
    label = "ship chunk",
    description = [[A chunk of a spacecraft. Can be deconstructed to yield useful resources.]],
    category = "Building",
    altitudeLayer = "Building",
    pathCost = 42,
    passability = "PassThroughOnly",
    fillPercent = 0.50,
    size = {2, 2},
    statBases = {
      MaxHitPoints = 300,
      Flammability = 0,
      Beauty = -20,
      WorkToBuild = 12000,
    },
    leaveResourcesWhenKilled = false,
    killedLeavings = {
      ChunkSlagSteel = 2,
      ComponentIndustrial = 1,
    },
    costList = {
      ComponentIndustrial = 11,
      Steel = 40,
    },
    building = {
      alwaysDeconstructible = true,
    },
  },

  ["ThingDef:FurnitureBase"] = {
    _ = {
      Name = "FurnitureBase",
      ParentName = "BuildingBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    minifiedDef = "MinifiedThing",
    thingCategories = {
      "BuildingsFurniture",
    },
  },

  ["ThingDef:FurnitureWithQualityBase"] = {
    _ = {
      Name = "FurnitureWithQualityBase",
      ParentName = "FurnitureBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    comps = {
      {
        compClass = "CompQuality",
      },
    },
  },

  ["ThingDef:ArtableFurnitureBase"] = {
    _ = {
      Name = "ArtableFurnitureBase",
      ParentName = "FurnitureWithQualityBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Art",
        },
        nameMaker = "NamerArtFurniture",
        descriptionMaker = "ArtDescription_Furniture",
        minQualityForArtistic = "Excellent",
      },
    },
  },

  ["ThingDef:ArtableFurnitureRegardlessOfQualityBase"] = {
    _ = {
      Name = "ArtableFurnitureRegardlessOfQualityBase",
      ParentName = "FurnitureWithQualityBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Art",
        },
        nameMaker = "NamerArtFurniture",
        descriptionMaker = "ArtDescription_Furniture",
        minQualityForArtistic = "Awful",
      },
    },
  },

  ["ThingDef:SleepingSpot"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "SleepingSpot",
    label = "sleeping spot",
    description = [[Designates a spot on the ground where people should sleep. Not comfortable.]],
    thingClass = "Building_Bed",
    altitudeLayer = "FloorEmplacement",
    statBases = {
      WorkToBuild = 0,
      Comfort = 0.4,
      SurgerySuccessChanceFactor = 0.7,
    },
    useHitPoints = false,
    size = {1, 2},
    passability = "Standable",
    building = {
      sowTag = "SupportPlantsOnly",
      artificialForMeditationPurposes = false,
      buildingTags = {
        "Bed",
      },
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_AssignableToPawn",
        },
        drawAssignmentOverlay = false,
        compClass = "CompAssignableToPawn_Bed",
      },
    },
  },

  ["ThingDef:DoubleSleepingSpot"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "DoubleSleepingSpot",
    label = "double sleeping spot",
    description = [[Designates a spot on the ground where two people should sleep together. Not comfortable.]],
    thingClass = "Building_Bed",
    altitudeLayer = "FloorEmplacement",
    statBases = {
      WorkToBuild = 0,
      Comfort = 0.4,
      SurgerySuccessChanceFactor = 0.7,
    },
    useHitPoints = false,
    size = {2, 2},
    passability = "Standable",
    building = {
      sowTag = "SupportPlantsOnly",
      artificialForMeditationPurposes = false,
      buildingTags = {
        "Bed",
      },
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_AssignableToPawn",
        },
        drawAssignmentOverlay = false,
        compClass = "CompAssignableToPawn_Bed",
      },
    },
  },

  ["ThingDef:BedBase"] = {
    _ = {
      ParentName = "FurnitureBase",
      Name = "BedBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    thingClass = "Building_Bed",
    altitudeLayer = "Building",
    comps = {
      {
        _ = {
          Class = "CompProperties_AssignableToPawn",
        },
        drawAssignmentOverlay = false,
        compClass = "CompAssignableToPawn_Bed",
      },
    },
    passability = "PassThroughOnly",
    building = {
      buildingTags = {
        "Bed",
      },
    },
  },

  ["ThingDef:BedWithQualityBase"] = {
    _ = {
      Name = "BedWithQualityBase",
      ParentName = "BedBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    comps = {
      {
        compClass = "CompQuality",
      },
    },
  },

  ["ThingDef:ArtableBedBase"] = {
    _ = {
      Name = "ArtableBedBase",
      ParentName = "BedWithQualityBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Art",
        },
        nameMaker = "NamerArtFurniture",
        descriptionMaker = "ArtDescription_Furniture",
        minQualityForArtistic = "Excellent",
      },
    },
  },

  ["ThingDef:Bed"] = {
    _ = {
      ParentName = "BedWithQualityBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Bed",
    label = "bed",
    description = [[A cozy mattress and sheets on a frame for resting.]],
    comps = {
      {
        _ = {
          Class = "CompProperties_AffectedByFacilities",
        },
        linkableFacilities = {
          "EndTable",
          "Dresser",
        },
      },
    },
    statBases = {
      MaxHitPoints = 140,
      Flammability = 1.0,
      Beauty = 1,
      WorkToBuild = 800,
      Mass = 30,
      BedRestEffectiveness = 1,
      Comfort = 0.75,
      ImmunityGainSpeedFactor = 1.07,
      SurgerySuccessChanceFactor = 1,
    },
    size = {1, 2},
    building = {
      bed_healPerDay = 4,
    },
    fillPercent = 0.4,
    pathCost = 42,
    researchPrerequisites = {
      "ComplexFurniture",
    },
  },

  ["ThingDef:DoubleBed"] = {
    _ = {
      ParentName = "ArtableBedBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "DoubleBed",
    label = "double bed",
    description = [[A simple double-wide bed that fits two people.]],
    comps = {
      {
        _ = {
          Class = "CompProperties_AffectedByFacilities",
        },
        linkableFacilities = {
          "EndTable",
          "Dresser",
        },
      },
    },
    statBases = {
      MaxHitPoints = 200,
      Flammability = 1.0,
      WorkToBuild = 1500,
      Mass = 50,
      Comfort = 0.75,
      Beauty = 2,
      BedRestEffectiveness = 1,
      ImmunityGainSpeedFactor = 1.07,
      SurgerySuccessChanceFactor = 1,
    },
    size = {2, 2},
    building = {
      bed_healPerDay = 4,
    },
    terrainAffordanceNeeded = "Light",
    fillPercent = 0.4,
    pathCost = 42,
    leaveResourcesWhenKilled = true,
    researchPrerequisites = {
      "ComplexFurniture",
    },
  },

  ["ThingDef:RoyalBed"] = {
    _ = {
      ParentName = "ArtableBedBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "RoyalBed",
    label = "royal bed",
    description = [[A luxurious gold-inlaid bed fit for the highborn. Very comfy and beautiful, it is a work of art in itself. Fits two.]],
    comps = {
      {
        _ = {
          Class = "CompProperties_AffectedByFacilities",
        },
        linkableFacilities = {
          "EndTable",
          "Dresser",
        },
      },
    },
    statBases = {
      MaxHitPoints = 200,
      Flammability = 1.0,
      WorkToBuild = 50000,
      Mass = 60,
      Beauty = 75,
      BedRestEffectiveness = 1.05,
      Comfort = 0.90,
      ImmunityGainSpeedFactor = 1.07,
      SurgerySuccessChanceFactor = 1,
    },
    size = {2, 2},
    costList = {
      Gold = 50,
    },
    building = {
      bed_healPerDay = 4,
    },
    terrainAffordanceNeeded = "Light",
    fillPercent = 0.4,
    pathCost = 42,
    leaveResourcesWhenKilled = true,
    researchPrerequisites = {
      "ComplexFurniture",
    },
  },

  ["ThingDef:HospitalBed"] = {
    _ = {
      ParentName = "BedWithQualityBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "HospitalBed",
    label = "hospital bed",
    description = [[A bed specially designed for use in hospitals. Adjustable for a patient and festooned with built-in equipment, it improves medical outcomes over normal beds.]],
    statBases = {
      MaxHitPoints = 150,
      WorkToBuild = 2800,
      Mass = 35,
      Flammability = 1.0,
      BedRestEffectiveness = 1,
      Comfort = 0.80,
      ImmunityGainSpeedFactor = 1.11,
      MedicalTendQualityOffset = 0.10,
      SurgerySuccessChanceFactor = 1.1,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_AffectedByFacilities",
        },
        linkableFacilities = {
          "VitalsMonitor",
          "EndTable",
          "Dresser",
        },
      },
    },
    size = {1, 2},
    costList = {
      Steel = 80,
      ComponentIndustrial = 5,
    },
    building = {
      bed_healPerDay = 10,
      bed_defaultMedical = true,
      buildingSizeCategory = "Small",
    },
    fillPercent = 0.4,
    pathCost = 42,
    leaveResourcesWhenKilled = true,
    researchPrerequisites = {
      "HospitalBed",
    },
  },

  ["ThingDef:Bedroll"] = {
    _ = {
      ParentName = "BedWithQualityBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Bedroll",
    label = "bedroll",
    description = [[A simple bed that lays on the floor, usually made of cloth or leather, often lined with fur. It is lightweight and can be rolled up for easy transport, but it is not quite as comfortable as a typical bed. Caravans can use bedrolls while traveling for better sleep.]],
    statBases = {
      MaxHitPoints = 75,
      Flammability = 1.0,
      Mass = 2.5,
      BedRestEffectiveness = 0.95,
      ImmunityGainSpeedFactor = 1.05,
      Comfort = 0.68,
      WorkToBuild = 600,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_AffectedByFacilities",
        },
        linkableFacilities = {
          "Dresser",
          "EndTable",
        },
      },
    },
    size = {1, 2},
    building = {
      bed_healPerDay = 4,
      bed_caravansCanUse = true,
    },
    pathCost = 14,
    passability = "Standable",
  },

  ["ThingDef:BedrollDouble"] = {
    _ = {
      ParentName = "BedWithQualityBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "BedrollDouble",
    label = "double bedroll",
    description = [[A simple double-wide bed that lays on the floor, usually made of cloth or leather, often lined with fur. It is lightweight and can be rolled up for easy transport, but it is not quite as comfortable as a typical bed. Caravans can use bedrolls while traveling for better sleep.]],
    statBases = {
      Flammability = 1.0,
      Mass = 4.5,
      BedRestEffectiveness = 0.95,
      ImmunityGainSpeedFactor = 1.05,
      Comfort = 0.68,
      WorkToBuild = 1100,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_AffectedByFacilities",
        },
        linkableFacilities = {
          "Dresser",
          "EndTable",
        },
      },
    },
    size = {2, 2},
    building = {
      bed_healPerDay = 4,
      bed_caravansCanUse = true,
    },
    pathCost = 14,
    passability = "Standable",
  },

  ["ThingDef:AnimalSleepingSpot"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "AnimalSleepingSpot",
    thingClass = "Building_Bed",
    label = "animal sleeping spot",
    description = [[Designates a spot on the ground where animals should sleep.]],
    size = {1, 1},
    passability = "Standable",
    useHitPoints = false,
    altitudeLayer = "FloorEmplacement",
    statBases = {
      WorkToBuild = 0,
      SurgerySuccessChanceFactor = 0.7,
    },
    building = {
      bed_humanlike = false,
      sowTag = "SupportPlantsOnly",
      artificialForMeditationPurposes = false,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_AssignableToPawn",
        },
        drawAssignmentOverlay = false,
        compClass = "CompAssignableToPawn_Bed",
      },
    },
  },

  ["ThingDef:AnimalSleepingBox"] = {
    _ = {
      ParentName = "FurnitureWithQualityBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "AnimalSleepingBox",
    thingClass = "Building_Bed",
    label = "animal sleeping box",
    description = [[A small box for animals to sleep in. Fits smaller animals like chickens, cats, or small dogs.]],
    fillPercent = 0.15,
    pathCost = 14,
    passability = "PassThroughOnly",
    building = {
      bed_humanlike = false,
      bed_maxBodySize = 0.55,
      bed_healPerDay = 4,
    },
    altitudeLayer = "Building",
    statBases = {
      MaxHitPoints = 75,
      Flammability = 1.0,
      WorkToBuild = 180,
      Mass = 3,
      BedRestEffectiveness = 0.93,
      Comfort = 0.60,
      ImmunityGainSpeedFactor = 1.05,
      SurgerySuccessChanceFactor = 1,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_AssignableToPawn",
        },
        drawAssignmentOverlay = false,
        compClass = "CompAssignableToPawn_Bed",
      },
    },
  },

  ["ThingDef:AnimalBed"] = {
    _ = {
      ParentName = "FurnitureWithQualityBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "AnimalBed",
    thingClass = "Building_Bed",
    label = "animal bed",
    description = [[A soft bed for animals to sleep on. Fits any animal.]],
    fillPercent = 0.15,
    pathCost = 14,
    passability = "PassThroughOnly",
    building = {
      bed_humanlike = false,
      bed_healPerDay = 4,
    },
    altitudeLayer = "Building",
    statBases = {
      MaxHitPoints = 140,
      Flammability = 1.0,
      WorkToBuild = 400,
      Mass = 5,
      BedRestEffectiveness = 1,
      Comfort = 0.75,
      ImmunityGainSpeedFactor = 1.07,
      SurgerySuccessChanceFactor = 1,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_AssignableToPawn",
        },
        drawAssignmentOverlay = false,
        compClass = "CompAssignableToPawn_Bed",
      },
    },
  },

  ["ThingDef:Stool"] = {
    _ = {
      ParentName = "FurnitureWithQualityBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Stool",
    label = "stool",
    description = [[A simple platform on which to sit. Not very comfortable, but much better than nothing. Can be used at tables, work stations, and elsewhere.]],
    altitudeLayer = "Building",
    statBases = {
      MaxHitPoints = 75,
      WorkToBuild = 450,
      Mass = 3,
      Flammability = 1.0,
      Beauty = 0,
      Comfort = 0.5,
    },
    pathCost = 30,
    fillPercent = 0.20,
    building = {
      isSittable = true,
    },
  },

  ["ThingDef:DiningChair"] = {
    _ = {
      ParentName = "ArtableFurnitureBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "DiningChair",
    label = "dining chair",
    description = [[A comfortable and attractive chair. Can be used at tables, work stations, and elsewhere.]],
    altitudeLayer = "Building",
    statBases = {
      MaxHitPoints = 100,
      WorkToBuild = 8000,
      Mass = 5,
      Flammability = 1.0,
      Beauty = 8,
      Comfort = 0.70,
    },
    pathCost = 30,
    fillPercent = 0.35,
    building = {
      isSittable = true,
    },
    researchPrerequisites = {
      "ComplexFurniture",
    },
  },

  ["ThingDef:Armchair"] = {
    _ = {
      ParentName = "FurnitureWithQualityBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Armchair",
    label = "armchair",
    description = [[A large, soft, comfy seat. Great for relaxation. Can be used at tables, work stations, and elsewhere.]],
    altitudeLayer = "Building",
    statBases = {
      MaxHitPoints = 120,
      WorkToBuild = 14000,
      Mass = 18,
      Flammability = 1.0,
      Beauty = 4,
      Comfort = 0.8,
    },
    researchPrerequisites = {
      "ComplexFurniture",
    },
    pathCost = 30,
    fillPercent = 0.40,
    building = {
      isSittable = true,
    },
  },

  ["ThingDef:TableBase"] = {
    _ = {
      Abstract = true,
      ParentName = "FurnitureWithQualityBase",
      Name = "TableBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    description = [[People eat off tables when chairs are placed facing them.]],
    thingClass = "Building",
    altitudeLayer = "Building",
    passability = "PassThroughOnly",
    pathCost = 42,
    fillPercent = 0.4,
    leaveResourcesWhenKilled = true,
  },

  ["ThingDef:TableGatherSpotBase"] = {
    _ = {
      Abstract = true,
      ParentName = "TableBase",
      Name = "TableGatherSpotBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    comps = {
      {
        compClass = "CompGatherSpot",
      },
    },
  },

  ["ThingDef:EndTable"] = {
    _ = {
      ParentName = "TableBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "EndTable",
    label = "end table",
    description = [[A small bedside table which makes nearby beds a little bit more comfortable. Must be placed directly adjacent to the head of the bed. Placing more than one end table near the same bed has no effect.]],
    statBases = {
      MaxHitPoints = 75,
      WorkToBuild = 1000,
      Mass = 5,
      Flammability = 1.0,
      Beauty = 3,
    },
    pathCost = 30,
    researchPrerequisites = {
      "ComplexFurniture",
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Facility",
        },
        statOffsets = {
          Comfort = 0.05,
        },
        maxSimultaneous = 1,
        mustBePlacedAdjacentCardinalToBedHead = true,
      },
    },
  },

  ["ThingDef:Table1x2c"] = {
    _ = {
      ParentName = "TableGatherSpotBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Table1x2c",
    label = "table (1x2)",
    statBases = {
      MaxHitPoints = 75,
      WorkToBuild = 750,
      Mass = 5,
      Flammability = 1.0,
      Beauty = 0.5,
    },
    size = {1, 2},
  },

  ["ThingDef:Table2x2c"] = {
    _ = {
      ParentName = "TableGatherSpotBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Table2x2c",
    label = "table (2x2)",
    statBases = {
      MaxHitPoints = 100,
      WorkToBuild = 1500,
      Mass = 10,
      Flammability = 1.0,
      Beauty = 1,
    },
    size = {2, 2},
  },

  ["ThingDef:Table2x4c"] = {
    _ = {
      ParentName = "TableGatherSpotBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Table2x4c",
    label = "table (2x4)",
    statBases = {
      MaxHitPoints = 150,
      WorkToBuild = 3000,
      Mass = 20,
      Flammability = 1.0,
      Beauty = 2,
    },
    size = {2, 4},
    building = {
      buildingSizeCategory = "Medium",
    },
  },

  ["ThingDef:Table3x3c"] = {
    _ = {
      ParentName = "TableGatherSpotBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Table3x3c",
    label = "table (3x3)",
    statBases = {
      MaxHitPoints = 175,
      WorkToBuild = 3300,
      Mass = 22,
      Flammability = 1.0,
      Beauty = 2,
    },
    size = {3, 3},
    building = {
      buildingSizeCategory = "Medium",
    },
  },

  ["ThingDef:PlantPot"] = {
    _ = {
      ParentName = "FurnitureWithQualityBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "PlantPot",
    label = "plant pot",
    description = [[Plant decorative flowers here to improve the mood of people nearby.]],
    thingClass = "Building_PlantGrower",
    altitudeLayer = "Building",
    passability = "PassThroughOnly",
    fillPercent = 0.20,
    statBases = {
      MaxHitPoints = 75,
      WorkToBuild = 250,
      Mass = 2,
      Flammability = 1.0,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Forbiddable",
        },
      },
    },
    leaveResourcesWhenKilled = false,
    building = {
      defaultPlantToGrow = "Plant_Daylily",
      sowTag = "Decorative",
    },
  },

  ["ThingDef:TorchLamp"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "TorchLamp",
    label = "torch lamp",
    description = [[A wooden torch for lighting an area. People need light to move and work at full speed. Can be automatically refueled with wood. Produces a small amount of heat.]],
    category = "Building",
    altitudeLayer = "Building",
    passability = "PassThroughOnly",
    pathCost = 14,
    fillPercent = 0.15,
    statBases = {
      MaxHitPoints = 75,
      WorkToBuild = 100,
      Flammability = 0,
      MeditationFocusStrength = 0.0,
    },
    costList = {
      WoodLog = 20,
    },
    building = {
      artificialForMeditationPurposes = false,
    },
    leaveResourcesWhenKilled = false,
    comps = {
      {
        _ = {
          Class = "CompProperties_Refuelable",
        },
        fuelConsumptionRate = 2.0,
        fuelCapacity = 20.0,
        fuelConsumptionPerTickInRain = 0.0006,
        fuelFilter = {
          thingDefs = {
            "WoodLog",
          },
        },
        initialFuelPercent = 1,
        showAllowAutoRefuelToggle = true,
      },
      {
        _ = {
          Class = "CompProperties_Glower",
        },
        glowRadius = 10,
        glowColor = {252, 187, 113, 0},
      },
      {
        _ = {
          Class = "CompProperties_HeatPusher",
        },
        compClass = "CompHeatPusherPowered",
        heatPerSecond = 3.5,
        heatPushMaxTemperature = 23,
      },
      {
        _ = {
          Class = "CompProperties_FireOverlay",
        },
        fireSize = 0.4,
        offset = {0, 0, 0.2},
      },
      {
        _ = {
          Class = "CompProperties_MeditationFocus",
        },
        statDef = "MeditationFocusStrength",
        focusTypes = {
          "Flame",
        },
        offsets = {
          {
            _ = {
              Class = "FocusStrengthOffset_Lit",
            },
            offset = 0.1,
          },
          {
            _ = {
              Class = "FocusStrengthOffset_BuildingDefsLit",
            },
            defs = {
              "Campfire",
              "TorchLamp",
              "Brazier",
            },
            offsetPerBuilding = 0.01,
            radius = 9.9,
            maxBuildings = 8,
            explanationKey = "MeditationFocusPerFlame",
            explanationKeyAbstract = "MeditationFocusPerFlameAbstract",
          },
        },
      },
    },
  },

  ["ThingDef:LampBase"] = {
    _ = {
      Abstract = true,
      Name = "LampBase",
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    thingClass = "Building",
    category = "Building",
    minifiedDef = "MinifiedThing",
    altitudeLayer = "Building",
    passability = "PassThroughOnly",
    fillPercent = 0.20,
    pathCost = 14,
    leaveResourcesWhenKilled = false,
    thingCategories = {
      "BuildingsFurniture",
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Flickable",
        },
      },
    },
    statBases = {
      MaxHitPoints = 50,
      WorkToBuild = 300,
      Flammability = 1.0,
    },
    researchPrerequisites = {
      "Electricity",
    },
  },

  ["ThingDef:StandingLampBase"] = {
    _ = {
      Abstract = true,
      Name = "StandingLampBase",
      ParentName = "LampBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    costList = {
      Steel = 20,
    },
    statBases = {
      Mass = 4,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTrader",
        basePowerConsumption = 30,
      },
    },
  },

  ["ThingDef:StandingLamp"] = {
    _ = {
      ParentName = "StandingLampBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "StandingLamp",
    label = "standing lamp",
    description = [[An electrical standing lamp that lights an area. People need light to move and work at full speed.]],
    comps = {
      {
        _ = {
          Class = "CompProperties_Glower",
        },
        glowRadius = 12,
        glowColor = {217, 217, 208, 0},
      },
    },
  },

  ["ThingDef:StandingLamp_Red"] = {
    _ = {
      ParentName = "StandingLampBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "StandingLamp_Red",
    label = "standing lamp (red)",
    description = [[A standing lamp that lights an area in red.]],
    comps = {
      {
        _ = {
          Class = "CompProperties_Glower",
        },
        glowRadius = 12,
        glowColor = {217, 80, 80, 0},
      },
    },
    researchPrerequisites = {
      _ = {
        Inherit = false,
      },
      "ColoredLights",
    },
  },

  ["ThingDef:StandingLamp_Green"] = {
    _ = {
      ParentName = "StandingLampBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "StandingLamp_Green",
    label = "standing lamp (green)",
    description = [[A standing lamp that lights an area in green.]],
    comps = {
      {
        _ = {
          Class = "CompProperties_Glower",
        },
        glowRadius = 12,
        glowColor = {80, 217, 80, 0},
      },
    },
    researchPrerequisites = {
      _ = {
        Inherit = false,
      },
      "ColoredLights",
    },
  },

  ["ThingDef:StandingLamp_Blue"] = {
    _ = {
      ParentName = "StandingLampBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "StandingLamp_Blue",
    label = "standing lamp (blue)",
    description = [[A standing lamp that lights an area in blue.]],
    comps = {
      {
        _ = {
          Class = "CompProperties_Glower",
        },
        glowRadius = 12,
        glowColor = {80, 80, 217, 0},
      },
    },
    researchPrerequisites = {
      _ = {
        Inherit = false,
      },
      "ColoredLights",
    },
  },

  ["ThingDef:SunLamp"] = {
    _ = {
      ParentName = "LampBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "SunLamp",
    label = "sun lamp",
    description = [[An industrial lamp which lights an area brightly enough to grow crops, but consumes a huge amount of power. Automatically turns itself off at night.]],
    thingClass = "Building_SunLamp",
    statBases = {
      WorkToBuild = 330,
      Mass = 4.5,
    },
    costList = {
      Steel = 40,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Glower",
        },
        overlightRadius = 7.0,
        glowRadius = 14,
        glowColor = {370, 370, 370, 0},
      },
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTrader",
        shortCircuitInRain = true,
        basePowerConsumption = 2900,
      },
      {
        _ = {
          Class = "CompProperties_Schedule",
        },
        startTime = 0.25,
        endTime = 0.8,
        offMessage = "Off for plant resting period",
      },
      {
        _ = {
          Class = "CompProperties_HeatPusher",
        },
        compClass = "CompHeatPusherPowered",
        heatPerSecond = 3,
      },
    },
  },

  ["ThingDef:Shelf"] = {
    _ = {
      ParentName = "FurnitureWithQualityBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Shelf",
    label = "shelf",
    description = [[A shelf for storing miscellaneous items. Items stored in this will not affect room beauty and they won't deteriorate, even if outside.]],
    thingClass = "Building_Storage",
    altitudeLayer = "Building",
    passability = "PassThroughOnly",
    fillPercent = 0.4,
    pathCost = 50,
    statBases = {
      MaxHitPoints = 100,
      Mass = 8,
      WorkToBuild = 600,
      Flammability = 1.0,
      Beauty = 0.5,
    },
    size = {2, 1},
    building = {
      preventDeteriorationOnTop = true,
      ignoreStoredThingsBeauty = true,
      defaultStorageSettings = {
        priority = "Important",
        filter = {
          categories = {
            "Weapons",
          },
        },
      },
    },
    researchPrerequisites = {
      "ComplexFurniture",
    },
  },

  ["ThingDef:Dresser"] = {
    _ = {
      ParentName = "ArtableFurnitureBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Furniture.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Dresser",
    label = "dresser",
    description = [[A dresser. Gives a small comfort bonus to all nearby beds. Placing more than one dresser near the same bed has no effect.]],
    altitudeLayer = "Building",
    passability = "PassThroughOnly",
    fillPercent = 0.4,
    pathCost = 42,
    statBases = {
      MaxHitPoints = 120,
      Mass = 15,
      WorkToBuild = 2000,
      Flammability = 1.0,
      Beauty = 5,
    },
    size = {2, 1},
    researchPrerequisites = {
      "ComplexFurniture",
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Facility",
        },
        statOffsets = {
          Comfort = 0.05,
        },
        maxSimultaneous = 1,
        maxDistance = 6,
      },
    },
  },

  ["ThingDef:HorseshoesPin"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Joy.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "HorseshoesPin",
    label = "horseshoes pin",
    description = [[A simple ancient game played with a horseshoes and a large pin in the ground. Players toss horseshoes to try to get them to land on the pin. It's relaxing, and trains shooting skills.]],
    minifiedDef = "MinifiedThing",
    altitudeLayer = "Building",
    thingCategories = {
      "BuildingsJoy",
    },
    statBases = {
      MaxHitPoints = 75,
      WorkToBuild = 100,
      Mass = 3,
      Flammability = 1.0,
      JoyGainFactor = 1,
    },
    building = {
      joyKind = "Gaming_Dexterity",
      artificialForMeditationPurposes = false,
    },
    pathCost = 14,
  },

  ["ThingDef:HoopstoneRing"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Joy.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "HoopstoneRing",
    label = "hoopstone ring",
    description = [[A simple ancient game played with stones and a large ring in the ground. Players try to toss stones through the ring from a distance. It's relaxing, and trains shooting skills.]],
    minifiedDef = "MinifiedThing",
    altitudeLayer = "Building",
    thingCategories = {
      "BuildingsJoy",
    },
    statBases = {
      MaxHitPoints = 100,
      WorkToBuild = 100,
      Mass = 4,
      Flammability = 1.0,
      JoyGainFactor = 1,
    },
    building = {
      joyKind = "Gaming_Dexterity",
      artificialForMeditationPurposes = false,
    },
    pathCost = 14,
  },

  ["ThingDef:GameOfUrBoard"] = {
    _ = {
      ParentName = "FurnitureWithQualityBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Joy.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "GameOfUrBoard",
    label = "Game-of-Ur board",
    description = [[Dating from 2500BC, this exciting yet infuriating board game can be played by one or two people. It trains intellectual skills.]],
    altitudeLayer = "Building",
    fillPercent = 0.20,
    building = {
      joyKind = "Gaming_Cerebral",
    },
    statBases = {
      MaxHitPoints = 90,
      WorkToBuild = 6000,
      Mass = 2,
      Flammability = 1.0,
      Beauty = 2,
      JoyGainFactor = 0.8,
    },
    pathCost = 14,
    passability = "PassThroughOnly",
  },

  ["ThingDef:ChessTable"] = {
    _ = {
      ParentName = "FurnitureWithQualityBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Joy.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "ChessTable",
    label = "chess table",
    description = [[The ancient game of kings. Fun for a few hours here and there, even playing alone. It trains intellectual skills.]],
    altitudeLayer = "Building",
    fillPercent = 0.40,
    building = {
      joyKind = "Gaming_Cerebral",
    },
    researchPrerequisites = {
      "ComplexFurniture",
    },
    statBases = {
      MaxHitPoints = 100,
      WorkToBuild = 8000,
      Mass = 5,
      Flammability = 1.0,
      Beauty = 4,
      JoyGainFactor = 1,
    },
    pathCost = 30,
    passability = "PassThroughOnly",
  },

  ["ThingDef:PokerTable"] = {
    _ = {
      ParentName = "FurnitureWithQualityBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Joy.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "PokerTable",
    label = "poker table",
    description = [[A table designed for playing gambling card games like poker. A great way to test your strategic skills and a bit of luck.]],
    altitudeLayer = "Building",
    fillPercent = 0.40,
    building = {
      joyKind = "Gaming_Cerebral",
      buildingSizeCategory = "Medium",
    },
    statBases = {
      MaxHitPoints = 250,
      WorkToBuild = 10000,
      Mass = 30,
      Flammability = 1.0,
      Beauty = 0,
      JoyGainFactor = 1.3,
    },
    size = {2, 2},
    costList = {
      Cloth = 50,
      WoodLog = 25,
    },
    pathCost = 42,
    passability = "PassThroughOnly",
    researchPrerequisites = {
      "ComplexFurniture",
    },
  },

  ["ThingDef:BilliardsTable"] = {
    _ = {
      ParentName = "FurnitureWithQualityBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Joy.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "BilliardsTable",
    label = "billiards table",
    description = [[A soft-topped bounded table for playing a variety of billiards-type games. It trains shooting ability.]],
    altitudeLayer = "Building",
    fillPercent = 0.40,
    terrainAffordanceNeeded = "Medium",
    building = {
      joyKind = "Gaming_Dexterity",
      buildingSizeCategory = "Medium",
    },
    statBases = {
      MaxHitPoints = 250,
      WorkToBuild = 12000,
      Mass = 60,
      Flammability = 1.0,
      Beauty = 0,
      JoyGainFactor = 1.3,
    },
    size = {2, 3},
    costList = {
      Cloth = 80,
      WoodLog = 30,
    },
    pathCost = 42,
    passability = "PassThroughOnly",
    researchPrerequisites = {
      "ComplexFurniture",
    },
  },

  ["ThingDef:TubeTelevision"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Joy.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "TubeTelevision",
    label = "tube television",
    description = [[A cathode ray tube display for showing moving pictures with sound. Even on the rimworlds, there is often an old transmitter running something at least marginally interesting.]],
    altitudeLayer = "Building",
    minifiedDef = "MinifiedThing",
    fillPercent = 0.40,
    thingCategories = {
      "BuildingsJoy",
    },
    statBases = {
      WorkToBuild = 10000,
      MaxHitPoints = 100,
      Mass = 14,
      Flammability = 1.0,
      JoyGainFactor = 1.2,
    },
    costList = {
      Steel = 80,
      ComponentIndustrial = 4,
    },
    pathCost = 42,
    passability = "PassThroughOnly",
    building = {
      joyKind = "Television",
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTrader",
        shortCircuitInRain = true,
        basePowerConsumption = 200,
      },
      {
        _ = {
          Class = "CompProperties_Flickable",
        },
      },
    },
    tradeTags = {
      "Television",
    },
    researchPrerequisites = {
      "TubeTelevision",
    },
  },

  ["ThingDef:FlatscreenTelevision"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Joy.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "FlatscreenTelevision",
    label = "flatscreen television",
    description = [[A high-tech flat-screen television with crystal-clear image and rich color. Picks up transmissions from ancient satellites and ubiquitous data cards.]],
    altitudeLayer = "Building",
    minifiedDef = "MinifiedThing",
    fillPercent = 0.35,
    thingCategories = {
      "BuildingsJoy",
    },
    costList = {
      Steel = 140,
      ComponentIndustrial = 16,
    },
    statBases = {
      WorkToBuild = 40000,
      MaxHitPoints = 80,
      Flammability = 1.0,
      Mass = 8,
      JoyGainFactor = 1.4,
    },
    pathCost = 50,
    passability = "PassThroughOnly",
    size = {2, 1},
    researchPrerequisites = {
      "FlatscreenTelevision",
    },
    building = {
      joyKind = "Television",
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTrader",
        shortCircuitInRain = true,
        basePowerConsumption = 330,
      },
      {
        _ = {
          Class = "CompProperties_Flickable",
        },
      },
    },
    tradeTags = {
      "Television",
    },
  },

  ["ThingDef:MegascreenTelevision"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Joy.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "MegascreenTelevision",
    label = "megascreen television",
    description = [[A huge, high-tech television. Gigantic, hyper-vibrant images almost leap out of the screen. Very entertaining. Picks up transmissions from ancient satellites and ubiquitous data cards.]],
    altitudeLayer = "Building",
    minifiedDef = "MinifiedThing",
    fillPercent = 0.35,
    thingCategories = {
      "BuildingsJoy",
    },
    costList = {
      Steel = 260,
      ComponentIndustrial = 22,
    },
    statBases = {
      WorkToBuild = 80000,
      MaxHitPoints = 85,
      Flammability = 1.0,
      Mass = 10,
      JoyGainFactor = 1.6,
    },
    pathCost = 50,
    passability = "PassThroughOnly",
    size = {3, 1},
    building = {
      joyKind = "Television",
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTrader",
        shortCircuitInRain = true,
        basePowerConsumption = 450,
      },
      {
        _ = {
          Class = "CompProperties_Flickable",
        },
      },
    },
    tradeTags = {
      "Television",
    },
  },

  ["ThingDef:Telescope"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Joy.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Telescope",
    label = "telescope",
    description = [[A telescope for doing amateur astronomy. It's a relaxing hobby for a certain kind of person. Can only be used outdoors.]],
    fillPercent = 0.15,
    altitudeLayer = "Building",
    hasInteractionCell = true,
    passability = "PassThroughOnly",
    pathCost = 30,
    minifiedDef = "MinifiedThing",
    thingCategories = {
      "BuildingsJoy",
    },
    building = {
      joyKind = "Telescope",
    },
    costList = {
      Steel = 50,
      ComponentIndustrial = 1,
    },
    statBases = {
      MaxHitPoints = 75,
      Flammability = 1.0,
      MarketValue = 350,
      Mass = 7.5,
      JoyGainFactor = 1.2,
    },
  },

  ["ThingDef:OrbitalTradeBeacon"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Misc.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "OrbitalTradeBeacon",
    label = "orbital trade beacon",
    thingClass = "Building_OrbitalTradeBeacon",
    altitudeLayer = "Building",
    minifiedDef = "MinifiedThing",
    thingCategories = {
      "BuildingsMisc",
    },
    statBases = {
      MaxHitPoints = 75,
      WorkToBuild = 800,
      Flammability = 0.5,
      Mass = 5,
    },
    description = [[Required for orbital trading. You can only sell goods to orbital traders if they're near an orbital trade beacon. Can be placed indoors.]],
    fillPercent = 0.15,
    costList = {
      Steel = 40,
      ComponentIndustrial = 1,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTrader",
        basePowerConsumption = 40,
      },
      {
        _ = {
          Class = "CompProperties_Flickable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Breakdownable",
        },
      },
    },
    leaveResourcesWhenKilled = false,
    pathCost = 14,
    researchPrerequisites = {
      "MicroelectronicsBasics",
    },
  },

  ["ThingDef:CommsConsole"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Misc.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "CommsConsole",
    label = "comms console",
    description = [[Allows radio contact with other factions and orbital traders.]],
    thingClass = "Building_CommsConsole",
    altitudeLayer = "Building",
    passability = "PassThroughOnly",
    pathCost = 50,
    fillPercent = 0.5,
    statBases = {
      MaxHitPoints = 250,
      WorkToBuild = 2200,
      Flammability = 0.6,
    },
    size = {3, 2},
    costList = {
      Steel = 120,
      ComponentIndustrial = 4,
    },
    hasInteractionCell = true,
    terrainAffordanceNeeded = "Medium",
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTrader",
        shortCircuitInRain = true,
        basePowerConsumption = 200,
      },
      {
        _ = {
          Class = "CompProperties_Flickable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Breakdownable",
        },
      },
    },
    researchPrerequisites = {
      "MicroelectronicsBasics",
    },
  },

  ["ThingDef:FirefoamPopper"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Misc.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "FirefoamPopper",
    label = "firefoam popper",
    description = [[When it detects fire, this safety device pops and sprays a fire-retardant foam in a circular field around itself. Can also be triggered manually.]],
    comps = {
      {
        _ = {
          Class = "CompProperties_Explosive",
        },
        explosiveRadius = 9.9,
        explosiveDamageType = "Extinguish",
        startWickHitPointsPercent = -1,
        startWickOnDamageTaken = {
          "Flame",
        },
        postExplosionSpawnThingDef = "Filth_FireFoam",
        postExplosionSpawnChance = 1,
        postExplosionSpawnThingCount = 1,
        applyDamageToExplosionCellsNeighbors = true,
        explosionEffect = "ExtinguisherExplosion",
      },
      {
        _ = {
          Class = "CompProperties_Usable",
        },
        useJob = "TriggerFirefoamPopper",
        useLabel = "Trigger firefoam popper",
      },
      {
        _ = {
          Class = "CompProperties_UseEffect",
        },
        compClass = "CompUseEffect_StartWick",
      },
      {
        _ = {
          Class = "CompProperties_ProximityFuse",
        },
        target = "Fire",
        radius = 3,
      },
    },
    altitudeLayer = "Building",
    minifiedDef = "MinifiedThing",
    thingCategories = {
      "BuildingsMisc",
    },
    statBases = {
      MaxHitPoints = 50,
      WorkToBuild = 1500,
      Mass = 10,
      Flammability = 1.0,
      Beauty = -8,
    },
    fillPercent = 0.30,
    costList = {
      Steel = 75,
      ComponentIndustrial = 1,
    },
    leaveResourcesWhenKilled = false,
    pathCost = 30,
    passability = "PassThroughOnly",
    researchPrerequisites = {
      "Firefoam",
    },
  },

  ["ThingDef:MoisturePump"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Misc.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "MoisturePump",
    label = "moisture pump",
    description = [[Very slowly equalizes moisture in nearby terrain, converting marshes or shallow water into dry ground, and soft sand into normal sand. Does not affect deep water.]],
    comps = {
      {
        _ = {
          Class = "CompProperties_Forbiddable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTrader",
        basePowerConsumption = 150,
      },
      {
        _ = {
          Class = "CompProperties_TerrainPumpDry",
        },
        soundWorking = "MoisturePump_Ambience",
        radius = 6.9,
        daysToRadius = 60,
      },
    },
    altitudeLayer = "Building",
    statBases = {
      MaxHitPoints = 50,
      WorkToBuild = 1500,
      Flammability = 1.0,
      Beauty = -8,
    },
    fillPercent = 0.15,
    costList = {
      Steel = 75,
      ComponentIndustrial = 4,
    },
    pathCost = 30,
    passability = "PassThroughOnly",
    researchPrerequisites = {
      "MoisturePump",
    },
  },

  ["ThingDef:GroundPenetratingScanner"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Misc.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "GroundPenetratingScanner",
    label = "ground-penetrating scanner",
    description = [[A sensor unit used by researchers to search for buried resources. The chance to find a resource depends on the operator's research ability. It consumes a lot of electricity. If you find a buried resource, you'll need to use deep drills to extract it. It doesn't work under a roof.]],
    costList = {
      Steel = 150,
      ComponentIndustrial = 4,
      ComponentSpacer = 1,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Forbiddable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTrader",
        basePowerConsumption = 700,
      },
      {
        _ = {
          Class = "CompProperties_Breakdownable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Flickable",
        },
      },
      {
        _ = {
          Class = "CompProperties_ScannerMineralsDeep",
        },
        scanSpeedStat = "ResearchSpeed",
        scanFindMtbDays = 3,
        scanFindGuaranteedDays = 6,
        soundWorking = "ScannerGroundPenetrating_Ambience",
      },
    },
    altitudeLayer = "Building",
    statBases = {
      MaxHitPoints = 200,
      WorkToBuild = 12000,
      Flammability = 0.5,
      Beauty = -8,
    },
    hasInteractionCell = true,
    fillPercent = 0.40,
    leaveResourcesWhenKilled = false,
    passability = "PassThroughOnly",
    pathCost = 50,
    size = {3, 3},
    terrainAffordanceNeeded = "Heavy",
    researchPrerequisites = {
      "GroundPenetratingScanner",
    },
  },

  ["ThingDef:LongRangeMineralScanner"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Misc.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "LongRangeMineralScanner",
    label = "long-range mineral scanner",
    description = [[A lateral sensor unit used by researchers to detect a specific type of mineral across the planet. The chance to find a resource depends on the operator's research ability. This sensor can be tuned to target a specific resource type. It consumes a lot of electricity. If you find a resource, you'll need to travel to collect it.]],
    costList = {
      Steel = 200,
      ComponentIndustrial = 6,
      ComponentSpacer = 2,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Forbiddable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTrader",
        basePowerConsumption = 700,
      },
      {
        _ = {
          Class = "CompProperties_Breakdownable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Flickable",
        },
      },
      {
        _ = {
          Class = "CompProperties_LongRangeMineralScanner",
        },
        scanSpeedStat = "ResearchSpeed",
        scanFindMtbDays = 4,
        scanFindGuaranteedDays = 8,
        soundWorking = "ScannerLongRangeMineral_Ambience",
      },
    },
    altitudeLayer = "Building",
    statBases = {
      MaxHitPoints = 250,
      WorkToBuild = 1000,
      Flammability = 0.5,
      Beauty = -8,
    },
    fillPercent = 0.40,
    leaveResourcesWhenKilled = false,
    passability = "PassThroughOnly",
    pathCost = 50,
    hasInteractionCell = true,
    size = {3, 3},
    terrainAffordanceNeeded = "Heavy",
    researchPrerequisites = {
      "LongRangeMineralScanner",
    },
  },

  ["ThingDef:PodLauncher"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Misc.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "PodLauncher",
    label = "pod launcher",
    description = [[A fueling port for launching one transport pod. Pod launchers can launch as a group - but the launchers must be placed adjacent to each other.]],
    size = {1, 2},
    altitudeLayer = "Building",
    passability = "Impassable",
    fillPercent = 1.0,
    terrainAffordanceNeeded = "Medium",
    statBases = {
      MaxHitPoints = 200,
      WorkToBuild = 3000,
      Flammability = 0.5,
    },
    costList = {
      Steel = 50,
      ComponentIndustrial = 1,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Refuelable",
        },
        fuelCapacity = 150.0,
        targetFuelLevelConfigurable = true,
        initialConfigurableTargetFuelLevel = 75,
        fuelFilter = {
          thingDefs = {
            "Chemfuel",
          },
        },
        consumeFuelOnlyWhenUsed = true,
        autoRefuelPercent = 1,
        showFuelGizmo = true,
        drawOutOfFuelOverlay = false,
        drawFuelGaugeInMap = true,
        showAllowAutoRefuelToggle = true,
      },
    },
    researchPrerequisites = {
      "TransportPod",
    },
  },

  ["ThingDef:TransportPod"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Misc.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "TransportPod",
    label = "transport pod",
    description = [[A launchable sub-orbital cargo pod capable of carrying people, items, or animals. Can be used for sending gifts, transporting people or supplies, surprise attacks, or reinforcing battles.]],
    size = {1, 1},
    altitudeLayer = "BuildingOnTop",
    passability = "PassThroughOnly",
    fillPercent = 0.5,
    terrainAffordanceNeeded = "Medium",
    statBases = {
      MaxHitPoints = 250,
      WorkToBuild = 1600,
      Flammability = 0.5,
    },
    costList = {
      Steel = 60,
      ComponentIndustrial = 1,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Transporter",
        },
        restEffectiveness = 0.8,
      },
      {
        _ = {
          Class = "CompProperties_Launchable",
        },
        skyfallerLeaving = "DropPodLeaving",
      },
    },
    researchPrerequisites = {
      "TransportPod",
    },
  },

  ["ThingDef:MultiAnalyzer"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Misc.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "MultiAnalyzer",
    label = "multi-analyzer",
    description = [[Increases research speed when placed near hi-tech research bench and unlocks new research projects. Each research bench can only use one multi-analyzer.]],
    researchPrerequisites = {
      "MultiAnalyzer",
    },
    size = {2, 2},
    altitudeLayer = "Building",
    passability = "PassThroughOnly",
    fillPercent = 0.5,
    minifiedDef = "MinifiedThing",
    terrainAffordanceNeeded = "Medium",
    thingCategories = {
      "BuildingsMisc",
    },
    statBases = {
      MaxHitPoints = 200,
      WorkToBuild = 10000,
      Mass = 60,
      Flammability = 1.0,
    },
    costList = {
      Steel = 40,
      Plasteel = 50,
      Gold = 20,
      ComponentIndustrial = 8,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTrader",
        shortCircuitInRain = true,
        basePowerConsumption = 200,
      },
      {
        _ = {
          Class = "CompProperties_Flickable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Facility",
        },
        statOffsets = {
          ResearchSpeedFactor = 0.1,
        },
        maxSimultaneous = 1,
      },
    },
  },

  ["ThingDef:VitalsMonitor"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Misc.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "VitalsMonitor",
    label = "vitals monitor",
    description = [[Increases medical tend quality, surgery success chance, and immunity gain speed when placed directly adjacent to a hospital bed. Only works for hospital beds - normal beds will not benefit. Attaching more than one vitals monitor to the same bed will have no effect.]],
    researchPrerequisites = {
      "VitalsMonitor",
    },
    altitudeLayer = "Building",
    passability = "PassThroughOnly",
    fillPercent = 0.2,
    statBases = {
      MaxHitPoints = 100,
      WorkToBuild = 6000,
      Mass = 20,
      Flammability = 0.7,
    },
    size = {1, 1},
    costList = {
      Steel = 50,
      ComponentIndustrial = 3,
    },
    minifiedDef = "MinifiedThing",
    thingCategories = {
      "BuildingsMisc",
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTrader",
        shortCircuitInRain = true,
        basePowerConsumption = 80,
      },
      {
        _ = {
          Class = "CompProperties_Flickable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Facility",
        },
        statOffsets = {
          MedicalTendQualityOffset = 0.07,
          ImmunityGainSpeedFactor = 0.02,
          SurgerySuccessChanceFactor = 0.05,
        },
        maxSimultaneous = 1,
        mustBePlacedAdjacent = true,
      },
    },
  },

  ["ThingDef:ToolCabinet"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Misc.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "ToolCabinet",
    label = "tool cabinet",
    description = [[Increases work speed when placed near a workbench. One workbench use to up to two tool cabinets.]],
    altitudeLayer = "Building",
    passability = "PassThroughOnly",
    fillPercent = 0.5,
    pathCost = 42,
    statBases = {
      MaxHitPoints = 100,
      WorkToBuild = 1800,
      Mass = 20,
      Flammability = 0.5,
    },
    size = {2, 1},
    costList = {
      Steel = 200,
    },
    researchPrerequisites = {
      "ComplexFurniture",
    },
    minifiedDef = "MinifiedThing",
    thingCategories = {
      "BuildingsMisc",
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Facility",
        },
        statOffsets = {
          WorkTableWorkSpeedFactor = 0.06,
        },
        maxSimultaneous = 2,
      },
    },
  },

  ["ThingDef:Grave"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Misc.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Grave",
    label = "grave",
    description = [[A decent final resting place. Colonists will visit full graves to gain meditative joy.]],
    thingClass = "Building_Grave",
    altitudeLayer = "FloorEmplacement",
    useHitPoints = false,
    size = {1, 2},
    statBases = {
      WorkToBuild = 800,
      MeditationFocusStrength = 0.06,
    },
    passability = "Standable",
    building = {
      isInert = true,
      preventDeteriorationInside = true,
      artificialForMeditationPurposes = false,
      fixedStorageSettings = {
        filter = {
          categories = {
            "Corpses",
          },
        },
      },
      defaultStorageSettings = {
        priority = "Important",
        filter = {
          categories = {
            "CorpsesHumanlike",
          },
        },
      },
    },
    terrainAffordanceNeeded = "Diggable",
    comps = {
      {
        _ = {
          Class = "CompProperties_AssignableToPawn",
        },
        drawAssignmentOverlay = false,
        compClass = "CompAssignableToPawn_Grave",
      },
      {
        _ = {
          Class = "CompProperties_MeditationFocus",
        },
        statDef = "MeditationFocusStrength",
        focusTypes = {
          "Morbid",
        },
        offsets = {
          {
            _ = {
              Class = "FocusStrengthOffset_GraveFull",
            },
            offset = 0.10,
          },
          {
            _ = {
              Class = "FocusStrengthOffset_GraveCorpseRelationship",
            },
            offset = 0.10,
          },
          {
            _ = {
              Class = "FocusStrengthOffset_NearbyGraves",
            },
            defs = {
              "Grave",
              "Sarcophagus",
            },
            offsetPerBuilding = 0.01,
            radius = 9.9,
            maxBuildings = 4,
            focusPerFullGrave = 0.01,
            explanationKey = "MeditationFocusPerGrave",
            explanationKeyAbstract = "MeditationFocusPerGraveAbstract",
          },
        },
      },
    },
  },

  ["ThingDef:Sarcophagus"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Misc.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Sarcophagus",
    label = "sarcophagus",
    description = [[An ornamented burial receptacle for the honored dead.]],
    thingClass = "Building_Sarcophagus",
    size = {1, 2},
    pathCost = 42,
    fillPercent = 0.5,
    building = {
      preventDeteriorationInside = true,
      fixedStorageSettings = {
        filter = {
          categories = {
            "Corpses",
          },
        },
      },
      defaultStorageSettings = {
        priority = "Important",
        filter = {
          categories = {
            "CorpsesHumanlike",
          },
          specialFiltersToDisallow = {
            "AllowCorpsesStranger",
          },
        },
      },
    },
    statBases = {
      WorkToBuild = 2400,
      MaxHitPoints = 250,
      Flammability = 1.0,
      MeditationFocusStrength = 0.10,
      Beauty = 0,
    },
    comps = {
      {
        compClass = "CompQuality",
      },
      {
        _ = {
          Class = "CompProperties_Art",
        },
        nameMaker = "NamerArtSarcophagusPlate",
        descriptionMaker = "ArtDescription_SarcophagusPlate",
        mustBeFullGrave = true,
      },
      {
        _ = {
          Class = "CompProperties_AssignableToPawn",
        },
        drawAssignmentOverlay = false,
        compClass = "CompAssignableToPawn_Grave",
      },
      {
        _ = {
          Class = "CompProperties_MeditationFocus",
        },
        statDef = "MeditationFocusStrength",
        focusTypes = {
          "Morbid",
        },
        offsets = {
          {
            _ = {
              Class = "FocusStrengthOffset_GraveFull",
            },
            offset = 0.10,
          },
          {
            _ = {
              Class = "FocusStrengthOffset_GraveCorpseRelationship",
            },
            offset = 0.10,
          },
          {
            _ = {
              Class = "FocusStrengthOffset_NearbyGraves",
            },
            defs = {
              "Grave",
              "Sarcophagus",
            },
            offsetPerBuilding = 0.01,
            radius = 9.9,
            maxBuildings = 4,
            focusPerFullGrave = 0.01,
            explanationKey = "MeditationFocusPerGrave",
            explanationKeyAbstract = "MeditationFocusPerGraveAbstract",
          },
        },
      },
    },
    altitudeLayer = "Building",
    passability = "PassThroughOnly",
    terrainAffordanceNeeded = "Light",
    researchPrerequisites = {
      "ComplexFurniture",
    },
  },

  ["ThingDef:CryptosleepCasket"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Misc.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "CryptosleepCasket",
    label = "cryptosleep casket",
    description = [[A self-powered sarcophagus designed to keep a person in a state of suspended animation for many years.]],
    thingClass = "Building_CryptosleepCasket",
    researchPrerequisites = {
      "Cryptosleep",
    },
    altitudeLayer = "Building",
    passability = "PassThroughOnly",
    pathCost = 42,
    fillPercent = 0.5,
    statBases = {
      WorkToBuild = 3200,
      MaxHitPoints = 250,
      Flammability = 0.5,
    },
    size = {1, 2},
    hasInteractionCell = true,
    costList = {
      Steel = 180,
      Uranium = 5,
      ComponentIndustrial = 4,
      ComponentSpacer = 1,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Explosive",
        },
        explosiveRadius = 2.66,
        explosiveDamageType = "Flame",
      },
      {
        _ = {
          Class = "CompProperties_EmptyStateGraphic",
        },
        graphicData = {
          texPath = "Things/Building/Ship/ShipCryptosleepCasketOpenDoor",
          graphicClass = "Graphic_Multi",
          drawSize = {1, 2},
        },
      },
    },
    terrainAffordanceNeeded = "Medium",
  },

  ["ThingDef:AncientCryptosleepCasket"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Misc.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "AncientCryptosleepCasket",
    label = "ancient cryptosleep casket",
    description = [[This cryptosleep casket looks like it has been here for a very long time. Who knows what it might contain?]],
    thingClass = "Building_AncientCryptosleepCasket",
    altitudeLayer = "Building",
    passability = "PassThroughOnly",
    pathCost = 42,
    fillPercent = 0.5,
    statBases = {
      MaxHitPoints = 250,
      Flammability = 1.0,
    },
    size = {1, 2},
    hasInteractionCell = true,
    costList = {
      Steel = 180,
      Uranium = 5,
    },
    killedLeavings = {
      ChunkSlagSteel = 1,
      Steel = 25,
      Uranium = 3,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Explosive",
        },
        explosiveRadius = 2.66,
        explosiveDamageType = "Flame",
      },
      {
        _ = {
          Class = "CompProperties_EmptyStateGraphic",
        },
        graphicData = {
          texPath = "Things/Building/Ship/ShipCryptosleepCasketOpenDoor",
          graphicClass = "Graphic_Multi",
          drawSize = {1, 2},
        },
      },
    },
    leaveResourcesWhenKilled = false,
    terrainAffordanceNeeded = "Medium",
  },

  ["ThingDef:MarriageSpot"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Misc.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "MarriageSpot",
    label = "marriage spot",
    description = [[Designates a spot where marriage ceremonies will take place. Spectators can watch from either side.]],
    thingClass = "Building_MarriageSpot",
    altitudeLayer = "FloorEmplacement",
    statBases = {
      WorkToBuild = 0,
    },
    useHitPoints = false,
    size = {2, 1},
    passability = "Standable",
    building = {
      sowTag = "SupportPlantsOnly",
      artificialForMeditationPurposes = false,
    },
  },

  ["ThingDef:PartySpot"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Misc.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "PartySpot",
    label = "party spot",
    description = [[Designates a spot for throwing parties.]],
    altitudeLayer = "FloorEmplacement",
    statBases = {
      WorkToBuild = 0,
    },
    useHitPoints = false,
    passability = "Standable",
    building = {
      sowTag = "SupportPlantsOnly",
      artificialForMeditationPurposes = false,
    },
  },

  ["ThingDef:CaravanPackingSpot"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Misc.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "CaravanPackingSpot",
    label = "caravan packing spot",
    description = [[Designates a spot for forming caravans. Put this near your stockpiles to speed up the caravan loading process.]],
    altitudeLayer = "FloorEmplacement",
    statBases = {
      WorkToBuild = 0,
    },
    useHitPoints = false,
    passability = "Standable",
    building = {
      sowTag = "SupportPlantsOnly",
      artificialForMeditationPurposes = false,
    },
  },

  ["ThingDef:SteleBase"] = {
    _ = {
      Name = "SteleBase",
      ParentName = "BuildingBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Buildings_Misc.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    altitudeLayer = "Building",
    passability = "PassThroughOnly",
    fillPercent = 0.50,
    pathCost = 50,
    researchPrerequisites = {
      "ComplexFurniture",
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Art",
        },
        nameMaker = "NamerArtFurniture",
        descriptionMaker = "ArtDescription_Furniture",
        minQualityForArtistic = "Awful",
      },
    },
  },

  ["ThingDef:SteleLarge"] = {
    _ = {
      ParentName = "SteleBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Misc.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "SteleLarge",
    label = "large stele",
    description = [[A tall, thick slab with engravings on the sides. Steles have been used since ancient times to memorialize individuals, battles, and other important events.]],
    size = {2, 2},
    statBases = {
      MaxHitPoints = 200,
      WorkToBuild = 8000,
      Beauty = 15,
      MeditationFocusStrength = 0.15,
    },
    terrainAffordanceNeeded = "Medium",
    comps = {
      {
        _ = {
          Class = "CompProperties_MeditationFocus",
        },
        statDef = "MeditationFocusStrength",
        focusTypes = {
          "Artistic",
        },
      },
    },
  },

  ["ThingDef:SteleGrand"] = {
    _ = {
      ParentName = "SteleBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Misc.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "SteleGrand",
    label = "grand stele",
    description = [[A towering slab with extensive engravings on the sides. Steles have been used since ancient times to memorialize individuals, battles, and other important events.]],
    size = {3, 3},
    statBases = {
      MaxHitPoints = 400,
      WorkToBuild = 16000,
      Beauty = 30,
      MeditationFocusStrength = 0.18,
    },
    terrainAffordanceNeeded = "Heavy",
    comps = {
      {
        _ = {
          Class = "CompProperties_MeditationFocus",
        },
        statDef = "MeditationFocusStrength",
        focusTypes = {
          "Artistic",
        },
      },
    },
  },

  ["ThingDef:BuildingNaturalBase"] = {
    _ = {
      Name = "BuildingNaturalBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Buildings_Natural.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    category = "Building",
    building = {
      artificialForMeditationPurposes = false,
    },
  },

  ["ThingDef:RockBase"] = {
    _ = {
      Name = "RockBase",
      ParentName = "BuildingNaturalBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Buildings_Natural.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    thingClass = "Mineable",
    altitudeLayer = "Building",
    passability = "Impassable",
    fillPercent = 1,
    statBases = {
      Flammability = 0,
    },
    building = {
      isInert = true,
      isNaturalRock = true,
      deconstructible = false,
    },
  },

  ["ThingDef:CollapsedRocks"] = {
    _ = {
      ParentName = "RockBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Natural.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "CollapsedRocks",
    label = "collapsed rocks",
    description = [[Collapsed rocks, packed tightly enough to hold up a roof.]],
    statBases = {
      MaxHitPoints = 500,
    },
    building = {
      isNaturalRock = false,
    },
  },

  ["ThingDef:MineableSteel"] = {
    _ = {
      ParentName = "RockBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Natural.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "MineableSteel",
    label = "compacted steel",
    description = [[The remains of some ancient, collapsed structure. Rich in steel.]],
    statBases = {
      MaxHitPoints = 1500,
    },
    building = {
      isResourceRock = true,
      mineableThing = "Steel",
      mineableYield = 40,
    },
  },

  ["ThingDef:MineableSilver"] = {
    _ = {
      ParentName = "RockBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Natural.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "MineableSilver",
    label = "silver ore",
    description = [[Rock containing bits of silver.]],
    statBases = {
      MaxHitPoints = 1500,
    },
    building = {
      isResourceRock = true,
      mineableThing = "Silver",
      mineableYield = 40,
    },
  },

  ["ThingDef:MineableGold"] = {
    _ = {
      ParentName = "RockBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Natural.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "MineableGold",
    label = "gold ore",
    description = [[Rock containing bits of gold.]],
    statBases = {
      MaxHitPoints = 1500,
    },
    building = {
      isResourceRock = true,
      mineableThing = "Gold",
      mineableYield = 40,
    },
  },

  ["ThingDef:MineableUranium"] = {
    _ = {
      ParentName = "RockBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Natural.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "MineableUranium",
    label = "uranium ore",
    description = [[Rock containing bits of uranium.]],
    statBases = {
      MaxHitPoints = 4000,
    },
    building = {
      isResourceRock = true,
      mineableThing = "Uranium",
      mineableYield = 40,
    },
  },

  ["ThingDef:MineablePlasteel"] = {
    _ = {
      ParentName = "RockBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Natural.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "MineablePlasteel",
    label = "compacted plasteel",
    description = [[Ancient compacted rubble rich in plasteel.]],
    statBases = {
      MaxHitPoints = 8000,
    },
    building = {
      isResourceRock = true,
      mineableThing = "Plasteel",
      mineableYield = 40,
    },
  },

  ["ThingDef:MineableJade"] = {
    _ = {
      ParentName = "RockBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Natural.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "MineableJade",
    label = "jade",
    description = [[Rock containing bits of jade.]],
    statBases = {
      MaxHitPoints = 1500,
    },
    building = {
      isResourceRock = true,
      mineableThing = "Jade",
      mineableYield = 40,
    },
  },

  ["ThingDef:MineableComponentsIndustrial"] = {
    _ = {
      ParentName = "RockBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Natural.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "MineableComponentsIndustrial",
    label = "compacted machinery",
    description = [[Ancient machinery, compacted over time. Can be mined for useful components.]],
    statBases = {
      MaxHitPoints = 2000,
    },
    building = {
      isResourceRock = true,
      mineableThing = "ComponentIndustrial",
      mineableYield = 2,
    },
  },

  ["ThingDef:SteamGeyser"] = {
    _ = {
      ParentName = "BuildingNaturalBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Natural.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "SteamGeyser",
    label = "steam geyser",
    description = [[A natural source of high-pressure steam. Geothermal generators can harness the steam power. Rooms built over this will rapidly cook.]],
    thingClass = "Building_SteamGeyser",
    altitudeLayer = "Floor",
    useHitPoints = false,
    size = {2, 2},
    building = {
      isEdifice = false,
      deconstructible = false,
    },
  },

  ["ThingDef:Hive"] = {
    _ = {
      ParentName = "BuildingNaturalBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Natural.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Hive",
    label = "hive",
    description = [[A hive of giant insects. If activated, it will spawn additional insects and hives over time, as well as valuable insect jelly.]],
    thingClass = "Hive",
    altitudeLayer = "Building",
    fillPercent = 0.5,
    statBases = {
      MaxHitPoints = 130,
      Flammability = 1.0,
    },
    pathCost = 42,
    passability = "PassThroughOnly",
    killedLeavings = {
      InsectJelly = 30,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_CanBeDormant",
        },
        startsDormant = true,
        canWakeUpFogged = false,
      },
      {
        _ = {
          Class = "CompProperties_WakeUpDormant",
        },
      },
      {
        _ = {
          Class = "CompProperties_SpawnerPawn",
        },
        spawnablePawnKinds = {
          "Megascarab",
          "Spelopede",
          "Megaspider",
        },
        lordJob = "LordJob_DefendAndExpandHive",
        spawnSound = "Hive_Spawn",
        initialPawnsPoints = 200,
        maxSpawnedPawnsPoints = 500,
      },
      {
        _ = {
          Class = "CompProperties_SelfhealHitpoints",
        },
        ticksPerHeal = 6000,
      },
      {
        _ = {
          Class = "CompProperties_SpawnerHives",
        },
      },
      {
        _ = {
          Class = "CompProperties_Spawner",
        },
        thingToSpawn = "InsectJelly",
        spawnCount = 20,
        spawnIntervalRange = { ["<"]=26000, [">"]=30000 },
        spawnMaxAdjacent = 40,
        spawnForbidden = true,
        saveKeysPrefix = "jelly",
      },
      {
        _ = {
          Class = "CompProperties_Spawner",
        },
        thingToSpawn = "GlowPod",
        spawnCount = 1,
        spawnIntervalRange = { ["<"]=30000, [">"]=60000 },
        spawnMaxAdjacent = 1,
        saveKeysPrefix = "pod",
        inheritFaction = true,
      },
      {
        _ = {
          Class = "CompProperties_HeatPusher",
        },
        heatPerSecond = 6,
        heatPushMaxTemperature = 38,
      },
      {
        _ = {
          Class = "CompProperties_SpawnerFilth",
        },
        filthDef = "Filth_Slime",
        spawnCountOnSpawn = 10,
        spawnMtbHours = 4,
        spawnRadius = 5,
      },
      {
        _ = {
          Class = "CompProperties_Maintainable",
        },
        ticksHealthy = 60000,
        ticksNeedsMaintenance = 60000,
        damagePerTickRare = 10,
      },
    },
  },

  ["ThingDef:GlowPod"] = {
    _ = {
      ParentName = "BuildingNaturalBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Natural.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "GlowPod",
    label = "glow pod",
    description = [[A bioluminescent pod produced by giant insects. Glows under its own light for a long time, then dies.]],
    thingClass = "Building",
    minifiedDef = "MinifiedThing",
    altitudeLayer = "Building",
    passability = "PassThroughOnly",
    fillPercent = 0.20,
    leaveResourcesWhenKilled = false,
    thingCategories = {
      "BuildingsSpecial",
    },
    statBases = {
      MaxHitPoints = 50,
      Mass = 4,
      Flammability = 1.0,
      MarketValue = 50,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Glower",
        },
        glowRadius = 6,
        glowColor = {113, 141, 117, 0},
      },
      {
        _ = {
          Class = "CompProperties_Lifespan",
        },
        lifespanTicks = 1200000,
      },
    },
  },

  ["ThingDef:RaisedRocks"] = {
    _ = {
      ParentName = "RockBase",
      Name = "RaisedRocks",
      DefCategory = "ThingDef",
      FileName = "Buildings_Natural.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "RaisedRocks",
    label = "raised rocks",
    description = [[A fragile wall made of rubble. It will collapse in time.]],
    leaveResourcesWhenKilled = false,
    building = {
      isNaturalRock = false,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Lifespan",
        },
        lifespanTicks = 10000,
        expireEffect = "RaisedRock_Collapse",
      },
    },
  },

  ["ThingDef:PowerConduit"] = {
    _ = {
      ParentName = "BuildingBase",
      Name = "PowerConduit",
      DefCategory = "ThingDef",
      FileName = "Buildings_Power.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "PowerConduit",
    label = "power conduit",
    description = [[A bundle of electrical cables for moving power around. Can be placed under walls and other buildings.]],
    thingClass = "Building",
    category = "Building",
    building = {
      isInert = true,
      isEdifice = false,
    },
    altitudeLayer = "Conduits",
    passability = "Standable",
    leaveResourcesWhenKilled = false,
    statBases = {
      MaxHitPoints = 80,
      WorkToBuild = 35,
      Flammability = 0.7,
      Beauty = -2,
    },
    costList = {
      Steel = 1,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTransmitter",
        transmitsPower = true,
      },
    },
    terrainAffordanceNeeded = "Light",
    researchPrerequisites = {
      "Electricity",
    },
  },

  ["ThingDef:WaterproofConduit"] = {
    _ = {
      ParentName = "PowerConduit",
      DefCategory = "ThingDef",
      FileName = "Buildings_Power.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "WaterproofConduit",
    label = "waterproof conduit",
    description = [[Insulated electrical cables for transmitting power under shallow water.]],
    terrainAffordanceNeeded = "ShallowWater",
    costList = {
      Steel = 10,
    },
  },

  ["ThingDef:PowerSwitch"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Power.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "PowerSwitch",
    label = "power switch",
    description = [[Switches power on/off.]],
    thingClass = "Building_PowerSwitch",
    category = "Building",
    altitudeLayer = "Building",
    passability = "Standable",
    leaveResourcesWhenKilled = false,
    statBases = {
      MaxHitPoints = 120,
      WorkToBuild = 200,
      Flammability = 0.5,
      Beauty = -2,
    },
    costList = {
      Steel = 15,
      ComponentIndustrial = 1,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTransmitter",
        transmitsPower = true,
      },
      {
        _ = {
          Class = "CompProperties_Flickable",
        },
      },
    },
    researchPrerequisites = {
      "Electricity",
    },
  },

  ["ThingDef:WoodFiredGenerator"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Power.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "WoodFiredGenerator",
    label = "wood-fired generator",
    description = [[Produces power by consuming wood. Must be periodically loaded with wood fuel by hand.]],
    thingClass = "Building",
    altitudeLayer = "Building",
    passability = "PassThroughOnly",
    pathCost = 50,
    fillPercent = 1.0,
    statBases = {
      MaxHitPoints = 300,
      WorkToBuild = 2500,
      Flammability = 1.0,
      Beauty = -20,
    },
    size = {2, 2},
    costList = {
      Steel = 100,
      ComponentIndustrial = 2,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerPlant",
        basePowerConsumption = -1000,
        transmitsPower = true,
        soundAmbientProducingPower = "WoodFiredGenerator_Ambience",
      },
      {
        _ = {
          Class = "CompProperties_Flickable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Refuelable",
        },
        fuelConsumptionRate = 22.0,
        fuelCapacity = 75.0,
        fuelFilter = {
          thingDefs = {
            "WoodLog",
          },
        },
        showAllowAutoRefuelToggle = true,
      },
      {
        _ = {
          Class = "CompProperties_Glower",
        },
        glowRadius = 6,
        glowColor = {217, 112, 33, 0},
      },
      {
        _ = {
          Class = "CompProperties_HeatPusher",
        },
        compClass = "CompHeatPusherPowered",
        heatPerSecond = 6,
      },
      {
        _ = {
          Class = "CompProperties_Breakdownable",
        },
      },
    },
    terrainAffordanceNeeded = "Medium",
    researchPrerequisites = {
      "Electricity",
    },
  },

  ["ThingDef:ChemfuelPoweredGenerator"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Power.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "ChemfuelPoweredGenerator",
    label = "chemfuel powered generator",
    description = [[Produces power by consuming chemfuel. Must be periodically refueled by hand.]],
    thingClass = "Building",
    altitudeLayer = "Building",
    passability = "PassThroughOnly",
    pathCost = 50,
    fillPercent = 1.0,
    statBases = {
      MaxHitPoints = 300,
      WorkToBuild = 2500,
      Flammability = 1.0,
      Beauty = -20,
    },
    size = {2, 2},
    costList = {
      Steel = 100,
      ComponentIndustrial = 3,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerPlant",
        basePowerConsumption = -1000,
        transmitsPower = true,
        soundAmbientProducingPower = "ChemfuelFiredGenerator_Ambience",
      },
      {
        _ = {
          Class = "CompProperties_Flickable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Refuelable",
        },
        fuelConsumptionRate = 4.5,
        fuelCapacity = 30.0,
        fuelFilter = {
          thingDefs = {
            "Chemfuel",
          },
        },
        showAllowAutoRefuelToggle = true,
      },
      {
        _ = {
          Class = "CompProperties_Glower",
        },
        glowRadius = 6,
        glowColor = {80, 112, 180, 0},
      },
      {
        _ = {
          Class = "CompProperties_HeatPusher",
        },
        compClass = "CompHeatPusherPowered",
        heatPerSecond = 6,
      },
      {
        _ = {
          Class = "CompProperties_Breakdownable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Explosive",
        },
        explosiveRadius = 0,
        explosiveExpandPerFuel = 0.95,
        explosiveDamageType = "Flame",
        destroyThingOnExplosionSize = 2,
        startWickHitPointsPercent = 0.333,
        preExplosionSpawnThingDef = "Filth_Fuel",
        preExplosionSpawnChance = 1,
        wickTicks = { ["<"]=70, [">"]=150 },
      },
    },
    terrainAffordanceNeeded = "Medium",
    researchPrerequisites = {
      "Electricity",
    },
  },

  ["ThingDef:WindTurbine"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Power.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "WindTurbine",
    thingClass = "Building",
    label = "wind turbine",
    description = [[A wind-powered electrical generator. Requires a large clear space in front and behind for optimal air flow.]],
    altitudeLayer = "Building",
    passability = "Impassable",
    fillPercent = 0.5,
    statBases = {
      MaxHitPoints = 150,
      WorkToBuild = 3300,
      Flammability = 0.5,
      Beauty = -12,
    },
    size = {7, 2},
    terrainAffordanceNeeded = "Heavy",
    costList = {
      Steel = 100,
      ComponentIndustrial = 2,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerPlantWind",
        basePowerConsumption = -2300,
        transmitsPower = true,
      },
      {
        _ = {
          Class = "CompProperties_Breakdownable",
        },
      },
    },
    researchPrerequisites = {
      "Electricity",
    },
  },

  ["ThingDef:Battery"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Power.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Battery",
    label = "battery",
    description = [[Stores electricity for later use. Charged batteries explode when exposed to rain or fire.]],
    thingClass = "Building_Battery",
    altitudeLayer = "Building",
    passability = "PassThroughOnly",
    pathCost = 50,
    fillPercent = 0.40,
    minifiedDef = "MinifiedThing",
    thingCategories = {
      "BuildingsPower",
    },
    statBases = {
      MaxHitPoints = 100,
      WorkToBuild = 800,
      Mass = 20,
      Flammability = 1.0,
      Beauty = -15,
    },
    size = {1, 2},
    costList = {
      Steel = 70,
      ComponentIndustrial = 2,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Battery",
        },
        storedEnergyMax = 600,
        efficiency = 0.5,
        shortCircuitInRain = true,
        transmitsPower = true,
      },
      {
        _ = {
          Class = "CompProperties_Breakdownable",
        },
      },
    },
    terrainAffordanceNeeded = "Medium",
    researchPrerequisites = {
      "Batteries",
    },
  },

  ["ThingDef:SolarGenerator"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Power.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "SolarGenerator",
    label = "solar generator",
    description = [[Produces electricity from sunlight. Does not work in the dark or under artificial light.]],
    thingClass = "Building",
    altitudeLayer = "Building",
    passability = "PassThroughOnly",
    pathCost = 50,
    fillPercent = 0.5,
    statBases = {
      MaxHitPoints = 300,
      WorkToBuild = 2500,
      Flammability = 0.7,
    },
    size = {4, 4},
    costList = {
      Steel = 100,
      ComponentIndustrial = 3,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerPlantSolar",
        basePowerConsumption = -1,
        transmitsPower = true,
      },
      {
        _ = {
          Class = "CompProperties_Breakdownable",
        },
      },
    },
    terrainAffordanceNeeded = "Medium",
    researchPrerequisites = {
      "SolarPanels",
    },
  },

  ["ThingDef:GeothermalGenerator"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Power.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "GeothermalGenerator",
    label = "geothermal generator",
    description = [[Produces electricity from geothermal steam geysers. Must be placed on a steam geyser.]],
    thingClass = "Building",
    altitudeLayer = "Building",
    passability = "Impassable",
    fillPercent = 1,
    statBases = {
      MaxHitPoints = 500,
      WorkToBuild = 12000,
      Flammability = 0.5,
      Beauty = -30,
    },
    size = {6, 6},
    costList = {
      Steel = 340,
      ComponentIndustrial = 8,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerPlantSteam",
        basePowerConsumption = -3600,
        transmitsPower = true,
      },
      {
        _ = {
          Class = "CompProperties_Breakdownable",
        },
      },
    },
    terrainAffordanceNeeded = "Heavy",
    researchPrerequisites = {
      "GeothermalPower",
    },
  },

  ["ThingDef:WatermillGenerator"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Power.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "WatermillGenerator",
    label = "watermill generator",
    description = [[Produces electricity from a river. Must be placed with its wheel in moving water. If watermills are placed too close together, the turbulence they generate will interfere and reduce power generation.]],
    thingClass = "Building",
    altitudeLayer = "Building",
    passability = "Impassable",
    fillPercent = 1,
    statBases = {
      MaxHitPoints = 400,
      WorkToBuild = 4000,
      Flammability = 1.0,
      Beauty = -20,
    },
    size = {5, 6},
    costList = {
      WoodLog = 280,
      Steel = 80,
      ComponentIndustrial = 3,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerPlantWater",
        basePowerConsumption = -1100,
        transmitsPower = true,
        soundAmbientProducingPower = "WaterMill_Ambience",
      },
      {
        _ = {
          Class = "CompProperties_Breakdownable",
        },
      },
    },
    terrainAffordanceNeeded = {},
    researchPrerequisites = {
      "WatermillGenerator",
    },
  },

  ["ThingDef:CraftingSpot"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Production.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "CraftingSpot",
    label = "crafting spot",
    description = [[A place for crafting simple items like knives or bows. Production here is slow because of the lack of tools.]],
    thingClass = "Building_WorkTable",
    altitudeLayer = "FloorEmplacement",
    statBases = {
      WorkToBuild = 0,
      WorkTableWorkSpeedFactor = 0.5,
    },
    useHitPoints = false,
    size = {1, 1},
    passability = "Standable",
    hasInteractionCell = true,
    building = {
      sowTag = "SupportPlantsOnly",
      artificialForMeditationPurposes = false,
      buildingTags = {
        "Production",
      },
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_AffectedByFacilities",
        },
        linkableFacilities = {
          "ToolCabinet",
        },
      },
      {
        compClass = "CompReportWorkSpeed",
      },
    },
  },

  ["ThingDef:ButcherSpot"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Production.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "ButcherSpot",
    label = "butcher spot",
    description = [[A place for butchering animals. Due to the lack of equipment, butchering here yields only 70% of the meat and leather of each creature.]],
    thingClass = "Building_WorkTable",
    altitudeLayer = "FloorEmplacement",
    statBases = {
      WorkToBuild = 0,
      WorkTableEfficiencyFactor = 0.7,
    },
    useHitPoints = false,
    size = {1, 1},
    passability = "Standable",
    hasInteractionCell = true,
    building = {
      sowTag = "SupportPlantsOnly",
      artificialForMeditationPurposes = false,
      buildingTags = {
        "Production",
      },
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_AffectedByFacilities",
        },
        linkableFacilities = {
          "ToolCabinet",
        },
      },
      {
        compClass = "CompReportWorkSpeed",
      },
    },
  },

  ["ThingDef:BenchBase"] = {
    _ = {
      Name = "BenchBase",
      ParentName = "BuildingBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Buildings_Production.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    minifiedDef = "MinifiedThing",
    terrainAffordanceNeeded = "Medium",
    thingCategories = {
      "BuildingsProduction",
    },
    statBases = {
      Mass = 20,
    },
    comps = {
      {
        compClass = "CompReportWorkSpeed",
      },
    },
    building = {
      buildingTags = {
        "Production",
      },
    },
  },

  ["ThingDef:TableSculpting"] = {
    _ = {
      ParentName = "BenchBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Production.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "TableSculpting",
    label = "art bench",
    description = [[A workbench equipped for creating art.]],
    thingClass = "Building_WorkTable",
    costList = {
      Steel = 50,
    },
    altitudeLayer = "Building",
    fillPercent = 0.5,
    useHitPoints = true,
    statBases = {
      WorkToBuild = 2500,
      MaxHitPoints = 180,
      Flammability = 1.0,
      Cleanliness = -5,
    },
    size = {3, 1},
    passability = "PassThroughOnly",
    pathCost = 50,
    hasInteractionCell = true,
    comps = {
      {
        _ = {
          Class = "CompProperties_AffectedByFacilities",
        },
        linkableFacilities = {
          "ToolCabinet",
        },
      },
    },
  },

  ["ThingDef:TableButcher"] = {
    _ = {
      ParentName = "BenchBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Production.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "TableButcher",
    label = "butcher table",
    description = [[A heavy table for butchering dead creatures into pieces of raw meat.]],
    thingClass = "Building_WorkTable",
    costList = {
      WoodLog = 20,
    },
    altitudeLayer = "Building",
    fillPercent = 0.5,
    useHitPoints = true,
    statBases = {
      WorkToBuild = 2000,
      MaxHitPoints = 180,
      Flammability = 1.0,
      Cleanliness = -15,
    },
    size = {3, 1},
    passability = "PassThroughOnly",
    pathCost = 50,
    hasInteractionCell = true,
    comps = {
      {
        _ = {
          Class = "CompProperties_AffectedByFacilities",
        },
        linkableFacilities = {
          "ToolCabinet",
        },
      },
    },
  },

  ["ThingDef:HandTailoringBench"] = {
    _ = {
      ParentName = "BenchBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Production.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "HandTailoringBench",
    label = "hand tailor bench",
    description = [[A workbench for tailoring clothes by hand. Works at 50% of the speed of an electric tailoring bench.]],
    thingClass = "Building_WorkTable",
    altitudeLayer = "Building",
    fillPercent = 0.5,
    useHitPoints = true,
    statBases = {
      WorkToBuild = 2000,
      MaxHitPoints = 180,
      Flammability = 1.0,
      WorkTableWorkSpeedFactor = 0.5,
    },
    size = {3, 1},
    passability = "PassThroughOnly",
    pathCost = 50,
    hasInteractionCell = true,
    comps = {
      {
        _ = {
          Class = "CompProperties_AffectedByFacilities",
        },
        linkableFacilities = {
          "ToolCabinet",
        },
      },
    },
    researchPrerequisites = {
      "ComplexClothing",
    },
  },

  ["ThingDef:ElectricTailoringBench"] = {
    _ = {
      ParentName = "BenchBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Production.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "ElectricTailoringBench",
    label = "electric tailor bench",
    description = [[A workbench with a sewing machine for rapid tailoring of clothes. Can work without electricity at 50% of normal speed.]],
    thingClass = "Building_WorkTable",
    costList = {
      Steel = 50,
      ComponentIndustrial = 2,
    },
    altitudeLayer = "Building",
    fillPercent = 0.5,
    useHitPoints = true,
    statBases = {
      WorkToBuild = 2500,
      MaxHitPoints = 180,
      Flammability = 1.0,
    },
    size = {3, 1},
    passability = "PassThroughOnly",
    pathCost = 50,
    hasInteractionCell = true,
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTrader",
        shortCircuitInRain = true,
        basePowerConsumption = 120,
      },
      {
        _ = {
          Class = "CompProperties_Flickable",
        },
      },
      {
        _ = {
          Class = "CompProperties_AffectedByFacilities",
        },
        linkableFacilities = {
          "ToolCabinet",
        },
      },
      {
        _ = {
          Class = "CompProperties_Breakdownable",
        },
      },
    },
    researchPrerequisites = {
      "ComplexClothing",
      "Electricity",
    },
  },

  ["ThingDef:FueledSmithy"] = {
    _ = {
      ParentName = "BenchBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Production.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "FueledSmithy",
    label = "fueled smithy",
    description = [[A wood-fueled station for smithing non-mechanical weapons and tools.]],
    thingClass = "Building_WorkTable",
    costList = {
      Steel = 100,
    },
    altitudeLayer = "Building",
    fillPercent = 0.5,
    useHitPoints = true,
    statBases = {
      WorkToBuild = 3000,
      MaxHitPoints = 180,
      Flammability = 1.0,
      Cleanliness = -3,
    },
    size = {3, 1},
    passability = "PassThroughOnly",
    pathCost = 50,
    hasInteractionCell = true,
    comps = {
      {
        _ = {
          Class = "CompProperties_Refuelable",
        },
        fuelConsumptionRate = 80.0,
        fuelCapacity = 50.0,
        fuelFilter = {
          thingDefs = {
            "WoodLog",
          },
        },
        consumeFuelOnlyWhenUsed = true,
        showAllowAutoRefuelToggle = true,
      },
      {
        _ = {
          Class = "CompProperties_AffectedByFacilities",
        },
        linkableFacilities = {
          "ToolCabinet",
        },
      },
    },
    researchPrerequisites = {
      "Smithing",
    },
  },

  ["ThingDef:ElectricSmithy"] = {
    _ = {
      ParentName = "BenchBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Production.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "ElectricSmithy",
    label = "electric smithy",
    description = [[An electric-powered station for smithing non-mechanical weapons and tools.]],
    thingClass = "Building_WorkTable",
    costList = {
      Steel = 100,
      ComponentIndustrial = 3,
    },
    altitudeLayer = "Building",
    fillPercent = 0.5,
    useHitPoints = true,
    statBases = {
      WorkToBuild = 3000,
      MaxHitPoints = 180,
      Flammability = 1.0,
      Cleanliness = -3,
    },
    size = {3, 1},
    passability = "PassThroughOnly",
    pathCost = 50,
    hasInteractionCell = true,
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTrader",
        shortCircuitInRain = true,
        basePowerConsumption = 210,
      },
      {
        _ = {
          Class = "CompProperties_Flickable",
        },
      },
      {
        _ = {
          Class = "CompProperties_AffectedByFacilities",
        },
        linkableFacilities = {
          "ToolCabinet",
        },
      },
      {
        _ = {
          Class = "CompProperties_HeatPusher",
        },
        compClass = "CompHeatPusherPowered",
        heatPerSecond = 4,
      },
    },
    researchPrerequisites = {
      "Smithing",
      "Electricity",
    },
  },

  ["ThingDef:TableMachining"] = {
    _ = {
      ParentName = "BenchBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Production.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "TableMachining",
    label = "machining table",
    description = [[A work station for assembling machinery like guns and ammunition, or breaking down dead mechanoids.]],
    thingClass = "Building_WorkTable",
    costList = {
      Steel = 150,
      ComponentIndustrial = 5,
    },
    altitudeLayer = "Building",
    fillPercent = 0.5,
    useHitPoints = true,
    statBases = {
      WorkToBuild = 3000,
      MaxHitPoints = 180,
      Flammability = 1.0,
      Cleanliness = -2,
    },
    size = {3, 1},
    passability = "PassThroughOnly",
    pathCost = 50,
    hasInteractionCell = true,
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTrader",
        shortCircuitInRain = true,
        basePowerConsumption = 350,
      },
      {
        _ = {
          Class = "CompProperties_Flickable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Glower",
        },
        glowRadius = 5,
        glowColor = {73, 123, 138, 0},
      },
      {
        _ = {
          Class = "CompProperties_AffectedByFacilities",
        },
        linkableFacilities = {
          "ToolCabinet",
        },
      },
      {
        _ = {
          Class = "CompProperties_Breakdownable",
        },
      },
    },
    researchPrerequisites = {
      "Machining",
    },
  },

  ["ThingDef:ElectricStove"] = {
    _ = {
      ParentName = "BenchBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Production.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "ElectricStove",
    label = "electric stove",
    description = [[An electrically-powered stove with an attached countertop for preparing meals.]],
    thingClass = "Building_WorkTable_HeatPush",
    costList = {
      Steel = 80,
      ComponentIndustrial = 2,
    },
    altitudeLayer = "Building",
    fillPercent = 0.5,
    useHitPoints = true,
    statBases = {
      WorkToBuild = 2000,
      MaxHitPoints = 180,
      Flammability = 1.0,
    },
    size = {3, 1},
    passability = "PassThroughOnly",
    pathCost = 50,
    hasInteractionCell = true,
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTrader",
        shortCircuitInRain = true,
        basePowerConsumption = 350,
      },
      {
        _ = {
          Class = "CompProperties_Flickable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Breakdownable",
        },
      },
      {
        _ = {
          Class = "CompProperties_HeatPusher",
        },
        compClass = "CompHeatPusherPowered",
        heatPerSecond = 3,
      },
    },
    building = {
      isMealSource = true,
      heatPerTickWhileWorking = 0.10,
    },
    researchPrerequisites = {
      "Electricity",
    },
  },

  ["ThingDef:FueledStove"] = {
    _ = {
      ParentName = "BenchBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Production.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "FueledStove",
    label = "fueled stove",
    description = [[A wood-fueled stove with an attached countertop for preparing meals.]],
    thingClass = "Building_WorkTable_HeatPush",
    costList = {
      Steel = 80,
    },
    altitudeLayer = "Building",
    fillPercent = 0.5,
    useHitPoints = true,
    statBases = {
      WorkToBuild = 2000,
      MaxHitPoints = 180,
      Flammability = 1.0,
    },
    size = {3, 1},
    passability = "PassThroughOnly",
    pathCost = 50,
    hasInteractionCell = true,
    comps = {
      {
        _ = {
          Class = "CompProperties_Refuelable",
        },
        fuelConsumptionRate = 160.0,
        fuelCapacity = 50.0,
        fuelFilter = {
          thingDefs = {
            "WoodLog",
          },
        },
        consumeFuelOnlyWhenUsed = true,
        showAllowAutoRefuelToggle = true,
      },
      {
        _ = {
          Class = "CompProperties_HeatPusher",
        },
        compClass = "CompHeatPusherPowered",
        heatPerSecond = 4,
      },
    },
    building = {
      isMealSource = true,
      heatPerTickWhileWorking = 0.10,
    },
  },

  ["ThingDef:TableStonecutter"] = {
    _ = {
      ParentName = "BenchBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Production.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "TableStonecutter",
    label = "stonecutter's table",
    description = [[A work table with saws and chisels for cutting stone chunks into usable blocks.]],
    thingClass = "Building_WorkTable_HeatPush",
    costList = {
      Steel = 30,
    },
    altitudeLayer = "Building",
    fillPercent = 0.5,
    useHitPoints = true,
    statBases = {
      WorkToBuild = 2000,
      MaxHitPoints = 180,
      Flammability = 1.0,
      Cleanliness = -5,
    },
    size = {3, 1},
    passability = "PassThroughOnly",
    pathCost = 50,
    hasInteractionCell = true,
    terrainAffordanceNeeded = "Heavy",
    comps = {
      {
        _ = {
          Class = "CompProperties_AffectedByFacilities",
        },
        linkableFacilities = {
          "ToolCabinet",
        },
      },
    },
    researchPrerequisites = {
      "Stonecutting",
    },
  },

  ["ThingDef:Brewery"] = {
    _ = {
      ParentName = "BenchBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Production.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Brewery",
    label = "brewery",
    description = [[A work station with all the equipment needed to mix wort for beer production. Wort must be fermented to finally become beer.]],
    thingClass = "Building_WorkTable",
    costList = {
      WoodLog = 120,
      Steel = 30,
    },
    altitudeLayer = "Building",
    fillPercent = 0.5,
    useHitPoints = true,
    statBases = {
      WorkToBuild = 2000,
      MaxHitPoints = 180,
      Flammability = 1.0,
    },
    size = {3, 1},
    passability = "PassThroughOnly",
    pathCost = 50,
    hasInteractionCell = true,
    researchPrerequisites = {
      "Brewing",
    },
  },

  ["ThingDef:DrugLab"] = {
    _ = {
      ParentName = "BenchBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Production.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "DrugLab",
    label = "drug lab",
    description = [[A work bench equipped with containers, heaters, and measurement devices for producing various drugs.]],
    thingClass = "Building_WorkTable",
    costList = {
      Steel = 75,
      ComponentIndustrial = 6,
    },
    altitudeLayer = "Building",
    fillPercent = 0.5,
    useHitPoints = true,
    statBases = {
      WorkToBuild = 3500,
      MaxHitPoints = 120,
      Flammability = 1.0,
    },
    size = {3, 1},
    passability = "PassThroughOnly",
    pathCost = 50,
    hasInteractionCell = true,
    comps = {
      {
        _ = {
          Class = "CompProperties_AffectedByFacilities",
        },
        linkableFacilities = {
          "ToolCabinet",
        },
      },
    },
    researchPrerequisites = {
      "DrugProduction",
    },
  },

  ["ThingDef:ElectricSmelter"] = {
    _ = {
      ParentName = "BenchBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Production.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "ElectricSmelter",
    label = "electric smelter",
    description = [[Extracts usable metal from slag chunks and other mixed metal items. Consumes a lot of power.]],
    thingClass = "Building_WorkTable_HeatPush",
    costList = {
      Steel = 170,
      ComponentIndustrial = 2,
    },
    altitudeLayer = "Building",
    fillPercent = 0.5,
    useHitPoints = true,
    statBases = {
      WorkToBuild = 3500,
      MaxHitPoints = 180,
      Flammability = 1.0,
    },
    size = {3, 1},
    passability = "PassThroughOnly",
    pathCost = 50,
    hasInteractionCell = true,
    terrainAffordanceNeeded = "Heavy",
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTrader",
        basePowerConsumption = 700,
        shortCircuitInRain = true,
      },
      {
        _ = {
          Class = "CompProperties_Flickable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Glower",
        },
        glowRadius = 6,
        glowColor = {217, 112, 33, 0},
      },
      {
        _ = {
          Class = "CompProperties_HeatPusher",
        },
        compClass = "CompHeatPusherPowered",
        heatPerSecond = 9,
      },
      {
        _ = {
          Class = "CompProperties_Breakdownable",
        },
      },
    },
    building = {
      heatPerTickWhileWorking = 0.32,
    },
    researchPrerequisites = {
      "Electricity",
    },
  },

  ["ThingDef:BiofuelRefinery"] = {
    _ = {
      ParentName = "BenchBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Production.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "BiofuelRefinery",
    label = "biofuel refinery",
    description = [[Refines biological matter like wood or plant matter into chemfuel.]],
    thingClass = "Building_WorkTable",
    altitudeLayer = "Building",
    passability = "PassThroughOnly",
    pathCost = 50,
    statBases = {
      MaxHitPoints = 200,
      WorkToBuild = 2000,
      Flammability = 1.0,
    },
    minifiedDef = {},
    thingCategories = {
      _ = {
        Inherit = false,
      },
    },
    size = {3, 2},
    costList = {
      Steel = 150,
      ComponentIndustrial = 3,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTrader",
        basePowerConsumption = 170,
        shortCircuitInRain = true,
      },
      {
        _ = {
          Class = "CompProperties_Flickable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Breakdownable",
        },
      },
    },
    fillPercent = 0.5,
    hasInteractionCell = true,
    terrainAffordanceNeeded = "Heavy",
    researchPrerequisites = {
      "BiofuelRefining",
    },
  },

  ["ThingDef:FabricationBench"] = {
    _ = {
      ParentName = "BenchBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Production.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "FabricationBench",
    label = "fabrication bench",
    description = [[A workbench equipped with advanced tools for producing technological marvels from simpler materials.]],
    thingClass = "Building_WorkTable",
    altitudeLayer = "Building",
    passability = "PassThroughOnly",
    pathCost = 50,
    statBases = {
      MaxHitPoints = 300,
      WorkToBuild = 5000,
      Flammability = 1.0,
    },
    minifiedDef = {},
    thingCategories = {
      _ = {
        Inherit = false,
      },
    },
    size = {5, 2},
    costList = {
      Steel = 200,
      ComponentIndustrial = 12,
      ComponentSpacer = 2,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_AffectedByFacilities",
        },
        linkableFacilities = {
          "ToolCabinet",
        },
      },
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTrader",
        basePowerConsumption = 250,
        shortCircuitInRain = true,
      },
      {
        _ = {
          Class = "CompProperties_Flickable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Breakdownable",
        },
      },
    },
    fillPercent = 0.5,
    hasInteractionCell = true,
    terrainAffordanceNeeded = "Heavy",
    researchPrerequisites = {
      "Fabrication",
    },
  },

  ["ThingDef:SimpleResearchBench"] = {
    _ = {
      ParentName = "BenchBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Production.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "SimpleResearchBench",
    label = "simple research bench",
    description = [[A simple bench with writing implements and simple measurement devices. Researchers work here to discover new things.]],
    thingClass = "Building_ResearchBench",
    size = {3, 2},
    costList = {
      Steel = 25,
    },
    altitudeLayer = "Building",
    passability = "PassThroughOnly",
    pathCost = 50,
    statBases = {
      MaxHitPoints = 250,
      WorkToBuild = 2800,
      Flammability = 1.0,
      ResearchSpeedFactor = 0.75,
    },
    fillPercent = 0.5,
    hasInteractionCell = true,
  },

  ["ThingDef:HiTechResearchBench"] = {
    _ = {
      ParentName = "BenchBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Production.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "HiTechResearchBench",
    label = "hi-tech research bench",
    description = [[A high-tech bench with computers and electronic measurement equipment. Allows more rapid research, and unlocks advanced research projects.]],
    thingClass = "Building_ResearchBench",
    size = {5, 2},
    minifiedDef = {},
    thingCategories = {
      _ = {
        Inherit = false,
      },
    },
    costList = {
      Steel = 100,
      ComponentIndustrial = 10,
    },
    altitudeLayer = "Building",
    passability = "PassThroughOnly",
    pathCost = 50,
    statBases = {
      MaxHitPoints = 250,
      WorkToBuild = 5000,
      Flammability = 1.0,
      ResearchSpeedFactor = 1.0,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTrader",
        basePowerConsumption = 250,
        shortCircuitInRain = true,
      },
      {
        _ = {
          Class = "CompProperties_Flickable",
        },
      },
      {
        _ = {
          Class = "CompProperties_AffectedByFacilities",
        },
        linkableFacilities = {
          "MultiAnalyzer",
        },
      },
    },
    fillPercent = 0.5,
    hasInteractionCell = true,
    terrainAffordanceNeeded = "Heavy",
    researchPrerequisites = {
      "MicroelectronicsBasics",
    },
  },

  ["ThingDef:ElectricCrematorium"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Production.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "ElectricCrematorium",
    label = "electric crematorium",
    description = [[A huge stone crematorium which vaporizes corpses with extremely high temperatures.]],
    thingClass = "Building_WorkTable_HeatPush",
    costList = {
      Steel = 20,
      ComponentIndustrial = 2,
    },
    altitudeLayer = "Building",
    useHitPoints = true,
    statBases = {
      WorkToBuild = 4500,
      MaxHitPoints = 300,
      Cleanliness = -20,
      Beauty = -10,
    },
    size = {3, 2},
    fillPercent = 1,
    passability = "Impassable",
    hasInteractionCell = true,
    terrainAffordanceNeeded = "Heavy",
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTrader",
        basePowerConsumption = 250,
        shortCircuitInRain = true,
      },
      {
        _ = {
          Class = "CompProperties_Flickable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Glower",
        },
        glowRadius = 6,
        glowColor = {217, 112, 33, 0},
      },
      {
        _ = {
          Class = "CompProperties_HeatPusher",
        },
        compClass = "CompHeatPusherPowered",
        heatPerSecond = 12,
      },
    },
    building = {
      heatPerTickWhileWorking = 0.32,
      buildingTags = {
        "Production",
      },
    },
    researchPrerequisites = {
      "Electricity",
    },
  },

  ["ThingDef:HydroponicsBasin"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Production.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "HydroponicsBasin",
    label = "hydroponics basin",
    description = [[An artificial nutrient bath for growing plants. The nutrients pumps must work continuously; the plants will die if power is cut.]],
    thingClass = "Building_PlantGrower",
    altitudeLayer = "LowPlant",
    passability = "PassThroughOnly",
    pathCost = 30,
    fillPercent = 0.30,
    statBases = {
      WorkToBuild = 2800,
      MaxHitPoints = 180,
      Flammability = 0.5,
      Cleanliness = -3,
    },
    size = {1, 4},
    costList = {
      Steel = 100,
      ComponentIndustrial = 1,
    },
    building = {
      defaultPlantToGrow = "Plant_Rice",
      sowTag = "Hydroponic",
      buildingTags = {
        "Production",
      },
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Forbiddable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTrader",
        basePowerConsumption = 70,
      },
      {
        _ = {
          Class = "CompProperties_Flickable",
        },
      },
    },
    researchPrerequisites = {
      "Hydroponics",
    },
    terrainAffordanceNeeded = "Medium",
  },

  ["ThingDef:FermentingBarrel"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Production.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "FermentingBarrel",
    label = "fermenting barrel",
    description = [[A barrel for fermenting raw wort into beer.]],
    thingClass = "Building_FermentingBarrel",
    minifiedDef = "MinifiedThing",
    altitudeLayer = "Building",
    passability = "PassThroughOnly",
    fillPercent = 0.45,
    pathCost = 42,
    thingCategories = {
      "BuildingsProduction",
    },
    statBases = {
      WorkToBuild = 600,
      Mass = 10,
      MaxHitPoints = 100,
      Flammability = 1.0,
    },
    costList = {
      Steel = 10,
      WoodLog = 30,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_TemperatureRuinable",
        },
        minSafeTemperature = -1,
        maxSafeTemperature = 32,
        progressPerDegreePerTick = 0.00001,
      },
    },
    building = {
      buildingTags = {
        "Production",
      },
    },
    researchPrerequisites = {
      "Brewing",
    },
  },

  ["ThingDef:DeepDrill"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Production.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "DeepDrill",
    label = "deep drill",
    description = [[A deep-crust drilling rig for extracting minerals from deep under the surface. Use a ground-penetrating scanner to detect the resources. This drill will yield stone chunks if no resources are present. Can be repositioned freely.]],
    size = {1, 1},
    altitudeLayer = "Building",
    passability = "PassThroughOnly",
    pathCost = 50,
    fillPercent = 0.5,
    hasInteractionCell = true,
    terrainAffordanceNeeded = "Light",
    minifiedDef = "MinifiedThing",
    building = {
      buildingTags = {
        "Production",
      },
    },
    thingCategories = {
      "BuildingsProduction",
    },
    costList = {
      Steel = 100,
      ComponentIndustrial = 2,
    },
    researchPrerequisites = {
      "DeepDrilling",
    },
    statBases = {
      MaxHitPoints = 300,
      WorkToBuild = 10000,
      Flammability = 0.5,
      Beauty = -25,
      Mass = 35,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Forbiddable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Flickable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTrader",
        basePowerConsumption = 200,
      },
      {
        _ = {
          Class = "CompProperties_DeepDrill",
        },
      },
      {
        _ = {
          Class = "CompProperties_CreatesInfestations",
        },
      },
    },
  },

  ["ThingDef:NutrientPasteDispenser"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Production.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "NutrientPasteDispenser",
    label = "nutrient paste dispenser",
    description = [[A machine that synthesizes edible nutrient paste from organic feedstocks placed in adjacent hoppers. It consumes less ingredients and time than any other meal production method - but nobody likes eating nutrient paste. Accepts raw food, but not rough plant matter like hay.]],
    thingClass = "Building_NutrientPasteDispenser",
    altitudeLayer = "Building",
    passability = "Impassable",
    fillPercent = 1,
    statBases = {
      WorkToBuild = 2200,
      MaxHitPoints = 350,
      Flammability = 0.5,
    },
    building = {
      isMealSource = true,
      buildingTags = {
        "Production",
      },
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTrader",
        basePowerConsumption = 200,
      },
      {
        _ = {
          Class = "CompProperties_Flickable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Breakdownable",
        },
      },
    },
    size = {3, 4},
    costList = {
      Steel = 90,
      ComponentIndustrial = 3,
    },
    hasInteractionCell = true,
    terrainAffordanceNeeded = "Heavy",
    researchPrerequisites = {
      "NutrientPaste",
    },
  },

  ["ThingDef:Hopper"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Production.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Hopper",
    label = "hopper",
    description = [[Holds resources for use by machines like nutrient paste dispensers.]],
    thingClass = "Building_Storage",
    altitudeLayer = "Building",
    passability = "PassThroughOnly",
    fillPercent = 0.5,
    pathCost = 42,
    building = {
      fixedStorageSettings = {
        priority = "Important",
        filter = {
          categories = {
            "FoodRaw",
          },
          specialFiltersToDisallow = {
            "AllowPlantFood",
          },
        },
      },
      defaultStorageSettings = {
        priority = "Important",
        filter = {
          categories = {
            "FoodRaw",
          },
          disallowedThingDefs = {
            "Meat_Human",
            "Meat_Megaspider",
          },
        },
      },
      buildingTags = {
        "Production",
      },
    },
    statBases = {
      WorkToBuild = 300,
      MaxHitPoints = 100,
      Flammability = 0.5,
    },
    costList = {
      Steel = 15,
    },
    researchPrerequisites = {
      "NutrientPaste",
    },
  },

  ["ThingDef:Sandbags"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Security.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Sandbags",
    label = "sandbags",
    description = [[Bags of locally-sourced dirt or sand, stacked for use as cover. Sandbags are ugly, but provide better cover than other low objects.]],
    thingClass = "Building",
    category = "Building",
    altitudeLayer = "Building",
    pathCost = 42,
    pathCostIgnoreRepeat = true,
    passability = "PassThroughOnly",
    fillPercent = 0.57,
    statBases = {
      MaxHitPoints = 300,
      Beauty = -10,
      WorkToBuild = 180,
      Flammability = 0,
    },
    building = {
      isInert = true,
    },
    terrainAffordanceNeeded = "Light",
  },

  ["ThingDef:Barricade"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Security.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Barricade",
    label = "barricade",
    description = [[A waist-high barrier for use as cover from incoming shots. Barricades are ugly, but provide better cover than other low objects.]],
    thingClass = "Building",
    category = "Building",
    altitudeLayer = "Building",
    pathCost = 42,
    pathCostIgnoreRepeat = true,
    passability = "PassThroughOnly",
    fillPercent = 0.57,
    statBases = {
      MaxHitPoints = 300,
      Beauty = -3,
      WorkToBuild = 320,
      Flammability = 1,
    },
    building = {
      isInert = true,
    },
    terrainAffordanceNeeded = "Heavy",
  },

  ["ThingDef:TrapSpike"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Security.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "TrapSpike",
    label = "spike trap",
    description = [[Five spikes under tension, connected to a touch-activated trigger. When the victim disturbs the trigger, the spikes spring forth and strike the victim. Since it is hidden in the surrounding terrain, it cannot be placed adjacent to other traps. Animals can sense these when calm.]],
    thingClass = "Building_TrapDamager",
    altitudeLayer = "Building",
    minifiedDef = "MinifiedThing",
    thingCategories = {
      "BuildingsSecurity",
    },
    statBases = {
      Mass = 2.5,
      MaxHitPoints = 40,
      WorkToBuild = 3200,
      Flammability = 1,
      Beauty = -18,
      Cleanliness = -5,
      TrapMeleeDamage = 100,
      TrapSpringChance = 1.0,
    },
    building = {
      isTrap = true,
    },
  },

  ["ThingDef:TrapIEDBase"] = {
    _ = {
      Name = "TrapIEDBase",
      ParentName = "BuildingBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Buildings_Security.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    thingClass = "Building_TrapExplosive",
    altitudeLayer = "Building",
    minifiedDef = "MinifiedThing",
    leaveResourcesWhenKilled = false,
    thingCategories = {
      "BuildingsSecurity",
    },
    statBases = {
      Mass = 2,
      MaxHitPoints = 40,
      WorkToBuild = 1400,
      Flammability = 1,
      Beauty = -4,
      TrapSpringChance = 1.0,
    },
    building = {
      isTrap = true,
    },
    researchPrerequisites = {
      "IEDs",
    },
  },

  ["ThingDef:TrapIED_HighExplosive"] = {
    _ = {
      ParentName = "TrapIEDBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Security.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "TrapIED_HighExplosive",
    label = "IED trap",
    description = [[A pair of high-explosive shells connected to a trigger which detonates on touch or bullet impact. Since it is hidden in the surrounding terrain, it cannot be placed adjacent to other traps. Animals can sense these when calm.]],
    costList = {
      Shell_HighExplosive = 2,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Explosive",
        },
        explosiveRadius = 3.9,
        explosiveDamageType = "Bomb",
        startWickHitPointsPercent = 0.2,
        wickTicks = 15,
        startWickOnDamageTaken = {
          "Bullet",
          "Arrow",
          "ArrowHighVelocity",
        },
      },
    },
  },

  ["ThingDef:TrapIED_Incendiary"] = {
    _ = {
      ParentName = "TrapIEDBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Security.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "TrapIED_Incendiary",
    label = "IED incendiary trap",
    description = [[A pair of incendiary shells connected to a trigger which detonates on touch or bullet impact. Since it is hidden in the surrounding terrain, it cannot be placed adjacent to other traps. Animals can sense these when calm.]],
    costList = {
      Shell_Incendiary = 2,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Explosive",
        },
        explosiveRadius = 3.9,
        explosiveDamageType = "Flame",
        startWickHitPointsPercent = 0.2,
        wickTicks = 15,
        startWickOnDamageTaken = {
          "Bullet",
          "Arrow",
          "ArrowHighVelocity",
        },
      },
    },
  },

  ["ThingDef:TrapIED_EMP"] = {
    _ = {
      ParentName = "TrapIEDBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Security.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "TrapIED_EMP",
    label = "IED EMP trap",
    description = [[A pair of EMP shells connected to a trigger which detonates on touch or bullet impact. The explosion can paralyze mechanoids for a few seconds. Since it is hidden in the surrounding terrain, it cannot be placed adjacent to other traps. Animals can sense these when calm.]],
    costList = {
      Shell_EMP = 2,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Explosive",
        },
        explosiveRadius = 10.9,
        explosiveDamageType = "EMP",
        startWickHitPointsPercent = 0.2,
        wickTicks = 15,
        startWickOnDamageTaken = {
          "Bullet",
          "Arrow",
          "ArrowHighVelocity",
        },
      },
    },
  },

  ["ThingDef:TrapIED_Smoke"] = {
    _ = {
      ParentName = "TrapIEDBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Security.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "TrapIED_Smoke",
    label = "IED Smoke trap",
    description = [[A pair of smoke shells connected to a trigger which detonates on touch or bullet impact. Since it is hidden in the surrounding terrain, it cannot be placed adjacent to other traps. Animals can sense these when calm.]],
    costList = {
      Shell_Smoke = 2,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Explosive",
        },
        explosiveRadius = 8.6,
        explosiveDamageType = "Smoke",
        startWickHitPointsPercent = 0.2,
        postExplosionSpawnThingDef = "Gas_Smoke",
        postExplosionSpawnChance = 1,
        postExplosionSpawnThingCount = 1,
        wickTicks = 15,
        startWickOnDamageTaken = {
          "Bullet",
          "Arrow",
          "ArrowHighVelocity",
        },
      },
    },
  },

  ["ThingDef:TrapIED_Firefoam"] = {
    _ = {
      ParentName = "TrapIEDBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Security.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "TrapIED_Firefoam",
    label = "IED firefoam trap",
    description = [[A pair of firefoam shells connected to a trigger which detonates on touch or bullet impact. Since it is hidden in the surrounding terrain, it cannot be placed adjacent to other traps. Animals can sense these when calm.]],
    costList = {
      Shell_Firefoam = 2,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Explosive",
        },
        explosiveRadius = 9.9,
        explosiveDamageType = "Extinguish",
        startWickHitPointsPercent = 0.2,
        postExplosionSpawnThingDef = "Filth_FireFoam",
        postExplosionSpawnChance = 1,
        postExplosionSpawnThingCount = 3,
        applyDamageToExplosionCellsNeighbors = true,
        explosionEffect = "ExtinguisherExplosion",
        wickTicks = 15,
        startWickOnDamageTaken = {
          "Bullet",
          "Arrow",
          "ArrowHighVelocity",
        },
      },
    },
  },

  ["ThingDef:TrapIED_AntigrainWarhead"] = {
    _ = {
      ParentName = "TrapIEDBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Security.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "TrapIED_AntigrainWarhead",
    label = "IED antigrain warhead trap",
    description = [[An antimatter-powered antigrain warhead connected to a trigger which detonates on touch or bullet impact. Since it is hidden in the surrounding terrain, it cannot be placed adjacent to other traps. Animals can sense these when calm.]],
    costList = {
      Shell_AntigrainWarhead = 1,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Explosive",
        },
        explosiveRadius = 14.9,
        explosiveDamageType = "BombSuper",
        startWickHitPointsPercent = 0.2,
        chanceToStartFire = 0.22,
        damageFalloff = true,
        explosionEffect = "GiantExplosion",
        explosionSound = "Explosion_GiantBomb",
        wickTicks = 15,
        startWickOnDamageTaken = {
          "Bullet",
          "Arrow",
          "ArrowHighVelocity",
        },
      },
    },
  },

  ["ThingDef:BaseWeaponTurret"] = {
    _ = {
      Abstract = true,
      Name = "BaseWeaponTurret",
      ParentName = "BaseWeapon",
      DefCategory = "ThingDef",
      FileName = "Buildings_Security_Turrets.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    tradeability = "None",
    useHitPoints = false,
    weaponTags = {
      "TurretGun",
    },
  },

  ["ThingDef:BaseArtilleryWeapon"] = {
    _ = {
      Abstract = true,
      Name = "BaseArtilleryWeapon",
      ParentName = "BaseWeaponTurret",
      DefCategory = "ThingDef",
      FileName = "Buildings_Security_Turrets.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    weaponTags = {
      _ = {
        Inherit = false,
      },
      "Artillery",
    },
  },

  ["ThingDef:BaseArtilleryBuilding"] = {
    _ = {
      Name = "BaseArtilleryBuilding",
      ParentName = "BuildingBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Buildings_Security_Turrets.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    thingClass = "Building_TurretGun",
    minifiedDef = "MinifiedThing",
    altitudeLayer = "Building",
    hasInteractionCell = true,
    size = {2, 2},
    passability = "PassThroughOnly",
    pathCost = 50,
    fillPercent = 0.4,
    thingCategories = {
      "BuildingsSecurity",
    },
    terrainAffordanceNeeded = "Light",
    costList = {
      Steel = 150,
      ComponentIndustrial = 6,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Forbiddable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Mannable",
        },
        manWorkType = "Violent",
      },
    },
    statBases = {
      MaxHitPoints = 180,
      Flammability = 0.7,
      WorkToBuild = 2000,
      Mass = 30,
      Beauty = -20,
    },
    building = {
      turretBurstWarmupTime = 4.0,
      turretBurstCooldownTime = 28.0,
      buildingTags = {
        "Artillery",
      },
    },
    researchPrerequisites = {
      "Mortars",
    },
  },

  ["ThingDef:Turret_MiniTurret"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Security_Turrets.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Turret_MiniTurret",
    label = "mini-turret",
    description = [[A portable automatic turret. Requires steel to refurbish its barrel after heavy use. May explode when damaged. Its dumb AI brain can't be directly controlled, so beware of friendly fire.]],
    thingClass = "Building_TurretGun",
    minifiedDef = "MinifiedThing",
    altitudeLayer = "Building",
    thingCategories = {
      "BuildingsSecurity",
    },
    statBases = {
      MaxHitPoints = 100,
      Flammability = 0.7,
      WorkToBuild = 1800,
      Mass = 8,
      Beauty = -20,
      ShootingAccuracyTurret = 0.96,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Explosive",
        },
        wickTicks = 240,
        explosiveRadius = 3.9,
        explosiveDamageType = "Bomb",
        chanceNeverExplodeFromDamage = 0.5,
      },
      {
        _ = {
          Class = "CompProperties_Forbiddable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTrader",
        basePowerConsumption = 80,
      },
      {
        _ = {
          Class = "CompProperties_Flickable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Breakdownable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Refuelable",
        },
        fuelLabel = "Shots until barrel change",
        fuelGizmoLabel = "Barrel durability",
        outOfFuelMessage = "Cannot shoot: Needs new barrel",
        fuelFilter = {
          thingDefs = {
            "Steel",
          },
        },
        fuelCapacity = 60,
        fuelMultiplier = 0.75,
        initialFuelPercent = 1,
        autoRefuelPercent = 0.5,
        showFuelGizmo = true,
        minimumFueledThreshold = 1,
        factorByDifficulty = true,
        consumeFuelOnlyWhenUsed = true,
        fuelIconPath = "UI/Overlays/Barrel",
      },
    },
    passability = "PassThroughOnly",
    pathCost = 50,
    fillPercent = 0.4,
    costList = {
      Steel = 70,
      ComponentIndustrial = 3,
    },
    terrainAffordanceNeeded = "Light",
    building = {
      combatPower = 45,
      turretGunDef = "Gun_MiniTurret",
      turretBurstCooldownTime = 4.8,
    },
    researchPrerequisites = {
      "GunTurrets",
    },
  },

  ["ThingDef:Bullet_MiniTurret"] = {
    _ = {
      ParentName = "BaseBullet",
      DefCategory = "ThingDef",
      FileName = "Buildings_Security_Turrets.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Bullet_MiniTurret",
    label = "mini-turret bullet",
    projectile = {
      damageDef = "Bullet",
      damageAmountBase = 11,
      speed = 70,
    },
  },

  ["ThingDef:Gun_MiniTurret"] = {
    _ = {
      ParentName = "BaseWeaponTurret",
      DefCategory = "ThingDef",
      FileName = "Buildings_Security_Turrets.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Gun_MiniTurret",
    label = "mini-turret gun",
    description = [[A simple automatic gun made to be mounted on a turret.]],
    statBases = {
      AccuracyTouch = 0.70,
      AccuracyShort = 0.64,
      AccuracyMedium = 0.41,
      AccuracyLong = 0.22,
      RangedWeapon_Cooldown = 4.8,
      DeteriorationRate = 0,
      Mass = 5,
      Flammability = 0,
    },
    verbs = {
      {
        verbClass = "Verb_Shoot",
        defaultProjectile = "Bullet_MiniTurret",
        warmupTime = 0,
        range = 28.9,
        ticksBetweenBurstShots = 8,
        burstShotCount = 2,
        consumeFuelPerShot = 1,
      },
    },
  },

  ["ThingDef:AutocannonTurret"] = {
    _ = {
      ParentName = "BuildingBase",
      Name = "AutocannonTurret",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Buildings_Security_Turrets.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    thingClass = "Building_TurretGun",
    altitudeLayer = "Building",
    size = {2, 2},
    statBases = {
      MaxHitPoints = 380,
      Flammability = 0.7,
      WorkToBuild = 15000,
      Mass = 100,
      Beauty = -20,
    },
    passability = "PassThroughOnly",
    pathCost = 50,
    fillPercent = 0.5,
    terrainAffordanceNeeded = "Heavy",
  },

  ["ThingDef:Turret_Autocannon"] = {
    _ = {
      ParentName = "AutocannonTurret",
      DefCategory = "ThingDef",
      FileName = "Buildings_Security_Turrets.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Turret_Autocannon",
    label = "autocannon turret",
    description = [[A heavy automatic turret. Its large-caliber shells do heavy damage over significant ranges, but its barrel must be refurbished after use. It cannot fire at close-up targets, and may explode when damaged.]],
    statBases = {
      ShootingAccuracyTurret = 0.96,
    },
    costList = {
      Steel = 350,
      Plasteel = 40,
      ComponentIndustrial = 6,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Explosive",
        },
        wickTicks = 240,
        explosiveRadius = 5.9,
        explosiveDamageType = "Bomb",
        chanceNeverExplodeFromDamage = 0.5,
      },
      {
        _ = {
          Class = "CompProperties_Forbiddable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTrader",
        basePowerConsumption = 150,
      },
      {
        _ = {
          Class = "CompProperties_Flickable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Breakdownable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Refuelable",
        },
        fuelLabel = "Shots until barrel change",
        fuelGizmoLabel = "Barrel durability",
        outOfFuelMessage = "Cannot shoot: Needs new barrel",
        fuelFilter = {
          thingDefs = {
            "Steel",
          },
        },
        fuelCapacity = 90,
        fuelMultiplier = 0.5,
        initialFuelPercent = 1,
        autoRefuelPercent = 0.5,
        showFuelGizmo = true,
        minimumFueledThreshold = 1,
        factorByDifficulty = true,
        consumeFuelOnlyWhenUsed = true,
        fuelIconPath = "UI/Overlays/Barrel",
      },
    },
    building = {
      turretGunDef = "Gun_AutocannonTurret",
      turretBurstCooldownTime = 3.5,
    },
    researchPrerequisites = {
      "HeavyTurrets",
    },
  },

  ["ThingDef:Bullet_AutocannonTurret"] = {
    _ = {
      ParentName = "BaseBullet",
      DefCategory = "ThingDef",
      FileName = "Buildings_Security_Turrets.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Bullet_AutocannonTurret",
    label = "autocannon shell",
    projectile = {
      damageDef = "Bullet",
      damageAmountBase = 25,
      speed = 88,
    },
  },

  ["ThingDef:Gun_AutocannonTurret"] = {
    _ = {
      ParentName = "BaseWeaponTurret",
      DefCategory = "ThingDef",
      FileName = "Buildings_Security_Turrets.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Gun_AutocannonTurret",
    label = "autocannon",
    description = [[A self-loading large-bore cannon designed to attach to a turret.]],
    statBases = {
      AccuracyTouch = 0.25,
      AccuracyShort = 0.65,
      AccuracyMedium = 0.60,
      AccuracyLong = 0.45,
      RangedWeapon_Cooldown = 3.5,
      DeteriorationRate = 0,
      Mass = 40,
      Flammability = 0,
    },
    verbs = {
      {
        verbClass = "Verb_Shoot",
        defaultProjectile = "Bullet_AutocannonTurret",
        warmupTime = 0,
        minRange = 8.9,
        range = 32.9,
        ticksBetweenBurstShots = 17,
        burstShotCount = 3,
        consumeFuelPerShot = 1,
      },
    },
  },

  ["ThingDef:Turret_Sniper"] = {
    _ = {
      ParentName = "AutocannonTurret",
      DefCategory = "ThingDef",
      FileName = "Buildings_Security_Turrets.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Turret_Sniper",
    label = "uranium slug turret",
    description = [[An armor-piercing turret. Its ultra-dense uranium shells can punch through heavy armor, but it requires new uranium slugs to be loaded after use. It's more accurate at longer ranges, and can't fire at all close up. May explode when damaged.]],
    statBases = {
      ShootingAccuracyTurret = 0.98,
    },
    costList = {
      Steel = 300,
      Plasteel = 30,
      Uranium = 60,
      ComponentIndustrial = 6,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Explosive",
        },
        wickTicks = 240,
        explosiveRadius = 5.9,
        explosiveDamageType = "Bomb",
        chanceNeverExplodeFromDamage = 0.5,
      },
      {
        _ = {
          Class = "CompProperties_Forbiddable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTrader",
        basePowerConsumption = 150,
      },
      {
        _ = {
          Class = "CompProperties_Flickable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Breakdownable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Refuelable",
        },
        fuelLabel = "Shots until rearm",
        fuelGizmoLabel = "Uranium slugs",
        outOfFuelMessage = "Cannot shoot: No slugs",
        fuelFilter = {
          thingDefs = {
            "Uranium",
          },
        },
        fuelCapacity = 30,
        fuelMultiplier = 0.3333,
        initialFuelPercent = 1,
        autoRefuelPercent = 0.5,
        showFuelGizmo = true,
        minimumFueledThreshold = 1,
        factorByDifficulty = true,
        consumeFuelOnlyWhenUsed = true,
        fuelIconPath = "UI/Overlays/Barrel",
      },
    },
    building = {
      turretGunDef = "Gun_TurretSniper",
      turretBurstCooldownTime = 3.2,
    },
    researchPrerequisites = {
      "SniperTurret",
    },
  },

  ["ThingDef:Bullet_TurretSniper"] = {
    _ = {
      ParentName = "BaseBullet",
      DefCategory = "ThingDef",
      FileName = "Buildings_Security_Turrets.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Bullet_TurretSniper",
    label = "uranium slug",
    projectile = {
      damageDef = "Bullet",
      damageAmountBase = 50,
      speed = 120,
    },
  },

  ["ThingDef:Gun_TurretSniper"] = {
    _ = {
      ParentName = "BaseWeaponTurret",
      DefCategory = "ThingDef",
      FileName = "Buildings_Security_Turrets.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Gun_TurretSniper",
    label = "uranium slug cannon",
    description = [[A self-loading uranium slug cannon designed to attach to a turret.]],
    statBases = {
      AccuracyTouch = 0.20,
      AccuracyShort = 0.30,
      AccuracyMedium = 0.40,
      AccuracyLong = 0.95,
      RangedWeapon_Cooldown = 4.0,
      DeteriorationRate = 0,
      Mass = 40,
      Flammability = 0,
    },
    verbs = {
      {
        verbClass = "Verb_Shoot",
        defaultProjectile = "Bullet_TurretSniper",
        warmupTime = 0,
        minRange = 11.9,
        range = 45.9,
        burstShotCount = 1,
        consumeFuelPerShot = 1,
      },
    },
  },

  ["ThingDef:Turret_Mortar"] = {
    _ = {
      ParentName = "BaseArtilleryBuilding",
      DefCategory = "ThingDef",
      FileName = "Buildings_Security_Turrets.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Turret_Mortar",
    label = "mortar",
    description = [[A manned mortar that launches all kinds of shells. While it can inflict devastating damage, the mortar's inherent inaccuracy makes it more useful for attacking large fortifications than groups of enemies in the field.]],
    comps = {
      {
        _ = {
          Class = "CompProperties_Explosive",
        },
        wickTicks = 240,
        explosiveRadius = 4.9,
        explosiveDamageType = "Bomb",
      },
    },
    terrainAffordanceNeeded = "Heavy",
    building = {
      turretGunDef = "Artillery_Mortar",
      buildingTags = {
        "Artillery_BaseDestroyer",
        "Artillery_MannedMortar",
      },
    },
  },

  ["ThingDef:Artillery_Mortar"] = {
    _ = {
      ParentName = "BaseArtilleryWeapon",
      DefCategory = "ThingDef",
      FileName = "Buildings_Security_Turrets.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Artillery_Mortar",
    label = "mortar",
    description = [[Mortar launcher. Lobs bombs over walls. Very inaccurate but long-ranged.]],
    weaponTags = {
      "Artillery_BaseDestroyer",
    },
    verbs = {
      {
        verbClass = "Verb_Shoot",
        warmupTime = 4.0,
        forcedMissRadius = 13,
        requireLineOfSight = false,
        minRange = 29.9,
        range = 500,
        burstShotCount = 1,
        targetParams = {
          canTargetLocations = true,
        },
      },
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_ChangeableProjectile",
        },
      },
    },
    building = {
      fixedStorageSettings = {
        filter = {
          categories = {
            "MortarShells",
          },
        },
      },
      defaultStorageSettings = {
        filter = {
          categories = {
            "MortarShells",
          },
          disallowedThingDefs = {
            "Shell_Firefoam",
            "Shell_AntigrainWarhead",
          },
        },
      },
    },
  },

  ["ThingDef:Ship_Beam"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Ship.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Ship_Beam",
    label = "ship structural beam",
    description = [[A structural beam around which a starship can be constructed. Includes all the necessary conduits and transit pipes for communications, power, and materials transport.]],
    thingClass = "Building",
    altitudeLayer = "Building",
    passability = "Impassable",
    fillPercent = 1,
    statBases = {
      WorkToBuild = 8000,
      MaxHitPoints = 400,
      Flammability = 0,
    },
    size = {2, 6},
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTransmitter",
        transmitsPower = true,
      },
      {
        _ = {
          Class = "CompProperties_ShipPart",
        },
      },
    },
    costList = {
      Steel = 200,
      Plasteel = 40,
      ComponentIndustrial = 3,
      ComponentSpacer = 1,
    },
    terrainAffordanceNeeded = "Heavy",
    researchPrerequisites = {
      "ShipBasics",
    },
  },

  ["ThingDef:Ship_CryptosleepCasket"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Ship.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Ship_CryptosleepCasket",
    label = "ship cryptosleep casket",
    description = [[A cryptosleep casket hardened against the dangers of space. Capable of maintaining a person in cryptosleep for centuries and surviving atmospheric re-entry.]],
    thingClass = "Building_CryptosleepCasket",
    researchPrerequisites = {
      "ShipCryptosleep",
    },
    altitudeLayer = "Building",
    passability = "PassThroughOnly",
    pathCost = 42,
    fillPercent = 0.5,
    statBases = {
      WorkToBuild = 8000,
      MaxHitPoints = 200,
      Flammability = 0,
    },
    size = {1, 2},
    hasInteractionCell = true,
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTransmitter",
        transmitsPower = true,
      },
      {
        _ = {
          Class = "CompProperties_ShipPart",
        },
      },
      {
        _ = {
          Class = "CompProperties_Explosive",
        },
        explosiveRadius = 2.66,
        explosiveDamageType = "Flame",
      },
      {
        _ = {
          Class = "CompProperties_EmptyStateGraphic",
        },
        graphicData = {
          texPath = "Things/Building/Ship/ShipCryptosleepCasketOpenDoor",
          graphicClass = "Graphic_Multi",
          drawSize = {1, 2},
        },
      },
    },
    building = {
      isPlayerEjectable = true,
    },
    costList = {
      Steel = 120,
      Uranium = 14,
      ComponentIndustrial = 3,
      ComponentSpacer = 3,
    },
    terrainAffordanceNeeded = "Heavy",
  },

  ["ThingDef:Ship_ComputerCore"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Ship.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Ship_ComputerCore",
    label = "ship computer core",
    description = [[A computer core housing a machine persona who can guide a starship through any challenge during a multi-decade starflight.]],
    thingClass = "Building_ShipComputerCore",
    researchPrerequisites = {
      "ShipComputerCore",
    },
    altitudeLayer = "Building",
    passability = "Impassable",
    fillPercent = 1,
    statBases = {
      WorkToBuild = 16000,
      MaxHitPoints = 150,
      Flammability = 0,
    },
    size = {2, 2},
    comps = {
      {
        _ = {
          Class = "CompProperties_ShipPart",
        },
      },
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTransmitter",
        transmitsPower = true,
      },
    },
    costList = {
      Steel = 150,
      ComponentSpacer = 4,
      Gold = 70,
      AIPersonaCore = 1,
    },
    terrainAffordanceNeeded = "Heavy",
  },

  ["ThingDef:Ship_Reactor"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Ship.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Ship_Reactor",
    label = "ship reactor",
    description = [[Powers a ship on its journey between stars. Takeoff requires a long powerup process that is likely to attract raiders.]],
    thingClass = "Building_ShipReactor",
    researchPrerequisites = {
      "ShipReactor",
    },
    altitudeLayer = "Building",
    passability = "Impassable",
    fillPercent = 1,
    statBases = {
      WorkToBuild = 65000,
      MaxHitPoints = 500,
      Flammability = 0,
    },
    size = {6, 7},
    costList = {
      Steel = 350,
      Plasteel = 280,
      Uranium = 70,
      ComponentSpacer = 8,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerPlant",
        basePowerConsumption = -1000,
        transmitsPower = true,
      },
      {
        _ = {
          Class = "CompProperties_ShipPart",
        },
      },
      {
        _ = {
          Class = "CompProperties_Hibernatable",
        },
        incidentTargetWhileStarting = "Map_RaidBeacon",
        sustainerActive = "ShipReactor_Ambience",
      },
    },
    terrainAffordanceNeeded = "Heavy",
  },

  ["ThingDef:Ship_Engine"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Ship.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Ship_Engine",
    label = "ship engine",
    description = [[A reactionless Johnson-Tanaka drive capable of launching a ship into orbit, and crawling across the vast expanses between stars.]],
    thingClass = "Building",
    researchPrerequisites = {
      "ShipEngine",
    },
    altitudeLayer = "Building",
    passability = "Impassable",
    fillPercent = 1,
    statBases = {
      WorkToBuild = 50000,
      MaxHitPoints = 400,
      Flammability = 0,
    },
    size = {3, 4},
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTransmitter",
        transmitsPower = true,
      },
      {
        _ = {
          Class = "CompProperties_ShipPart",
        },
      },
    },
    costList = {
      Steel = 260,
      Plasteel = 140,
      Uranium = 70,
      ComponentSpacer = 6,
    },
    terrainAffordanceNeeded = "Heavy",
  },

  ["ThingDef:Ship_SensorCluster"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Ship.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Ship_SensorCluster",
    label = "sensor cluster",
    description = [[A multi-function sensor module. Can scan and signal across the void for communications, threat detection, deception, jamming, and other purposes.]],
    thingClass = "Building",
    researchPrerequisites = {
      "ShipSensorCluster",
    },
    altitudeLayer = "Building",
    passability = "Impassable",
    fillPercent = 1,
    statBases = {
      WorkToBuild = 30000,
      MaxHitPoints = 100,
      Flammability = 0,
    },
    size = {2, 2},
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTransmitter",
        transmitsPower = true,
      },
      {
        _ = {
          Class = "CompProperties_ShipPart",
        },
      },
    },
    costList = {
      Steel = 140,
      Gold = 4,
      ComponentIndustrial = 6,
      ComponentSpacer = 6,
    },
    terrainAffordanceNeeded = "Heavy",
  },

  ["ThingDef:PsychicEmanator"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Special.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "PsychicEmanator",
    label = "psychic emanator",
    description = [[An ancient device that projects a soothing psychic field around itself. This improves the mood of anyone nearby. Works through walls.]],
    thingCategories = {
      "BuildingsSpecial",
    },
    costList = {
      Steel = 50,
      ComponentSpacer = 6,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTrader",
        basePowerConsumption = 200,
      },
      {
        _ = {
          Class = "CompProperties_MoteEmitter",
        },
        mote = "Mote_PsychicEmanatorEffect",
        emissionInterval = 350,
      },
      {
        _ = {
          Class = "CompProperties_Breakdownable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Flickable",
        },
      },
    },
    altitudeLayer = "Building",
    statBases = {
      MarketValue = 1300,
      MaxHitPoints = 100,
      Flammability = 0,
      Beauty = 0,
      Mass = 15,
      WorkToBuild = 2000,
    },
    fillPercent = 0.2,
    leaveResourcesWhenKilled = false,
    pathCost = 30,
    passability = "PassThroughOnly",
    minifiedDef = "MinifiedThing",
    tradeability = "Sellable",
    tradeTags = {
      "ExoticBuilding",
    },
  },

  ["ThingDef:VanometricPowerCell"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Special.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "VanometricPowerCell",
    label = "vanometric power cell",
    description = [[Generates free energy, forever, without using fuel. This technology is developed by archotechs, and is beyond even most glitterworld societies. While nobody knows exactly how it works, scholars believe it somehow extracts energy directly from fluctuations in the quantum foam.]],
    altitudeLayer = "Building",
    pathCost = 42,
    fillPercent = 0.4,
    passability = "PassThroughOnly",
    leaveResourcesWhenKilled = false,
    terrainAffordanceNeeded = "Medium",
    thingCategories = {
      "BuildingsSpecial",
    },
    statBases = {
      MarketValue = 1200,
      MaxHitPoints = 200,
      Flammability = 0,
      Mass = 15,
    },
    size = {1, 2},
    costList = {
      Steel = 100,
      ComponentSpacer = 6,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerPlant",
        basePowerConsumption = -1000,
        transmitsPower = true,
      },
      {
        _ = {
          Class = "CompProperties_Glower",
        },
        glowRadius = 3,
        glowColor = {227, 233, 168, 0},
      },
    },
    minifiedDef = "MinifiedThing",
    tradeability = "Sellable",
    tradeTags = {
      "ExoticBuilding",
    },
  },

  ["ThingDef:InfiniteChemreactor"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Special.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "InfiniteChemreactor",
    label = "infinite chemreactor",
    description = [[Slowly generates chemfuel by a complex series of chemical reactions, using atoms extracted from the air.]],
    thingCategories = {
      "BuildingsSpecial",
    },
    costList = {
      Steel = 200,
      ComponentSpacer = 6,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTrader",
        basePowerConsumption = 300,
      },
      {
        _ = {
          Class = "CompProperties_Breakdownable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Flickable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Spawner",
        },
        requiresPower = true,
        thingToSpawn = "Chemfuel",
        spawnCount = 75,
        spawnIntervalRange = {
          min = 600000,
          max = 600000,
        },
        writeTimeLeftToSpawn = true,
        showMessageIfOwned = true,
      },
      {
        _ = {
          Class = "CompProperties_Explosive",
        },
        explosiveRadius = 8,
        explosiveDamageType = "Flame",
      },
    },
    altitudeLayer = "Building",
    statBases = {
      MarketValue = 1500,
      MaxHitPoints = 200,
      Flammability = 1.0,
      Beauty = -10,
      Mass = 35,
      WorkToBuild = 8000,
    },
    size = {2, 2},
    fillPercent = 1.0,
    leaveResourcesWhenKilled = false,
    terrainAffordanceNeeded = "Medium",
    passability = "Impassable",
    minifiedDef = "MinifiedThing",
    tradeability = "Sellable",
    tradeTags = {
      "ExoticBuilding",
    },
  },

  ["ThingDef:DoorBase"] = {
    _ = {
      ParentName = "BuildingBase",
      Name = "DoorBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Buildings_Structure.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    thingClass = "Building_Door",
    category = "Building",
    altitudeLayer = "DoorMoveable",
    fillPercent = 1,
    useHitPoints = true,
    statBases = {
      MaxHitPoints = 160,
      Flammability = 1.0,
    },
    leaveResourcesWhenKilled = false,
    terrainAffordanceNeeded = "Light",
    building = {
      isInert = true,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Forbiddable",
        },
      },
    },
  },

  ["ThingDef:Door"] = {
    _ = {
      ParentName = "DoorBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Structure.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Door",
    label = "door",
    description = [[Divides rooms. Simple doors must be manually opened, which slows people down. The amount of slowdown depends on what the door is made of.]],
    statBases = {
      WorkToBuild = 850,
    },
  },

  ["ThingDef:Autodoor"] = {
    _ = {
      ParentName = "DoorBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Structure.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Autodoor",
    label = "autodoor",
    description = [[Divides rooms. Powered operation allows people to move through the door without slowing down.]],
    statBases = {
      WorkToBuild = 1100,
    },
    costList = {
      Steel = 40,
      ComponentIndustrial = 2,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTrader",
        basePowerConsumption = 50,
      },
      {
        _ = {
          Class = "CompProperties_Breakdownable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Flickable",
        },
      },
    },
    researchPrerequisites = {
      "Autodoors",
    },
  },

  ["ThingDef:Wall"] = {
    _ = {
      ParentName = "BuildingBase",
      Name = "Wall",
      DefCategory = "ThingDef",
      FileName = "Buildings_Structure.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Wall",
    label = "wall",
    description = [[An impassable wall. Capable of holding up a roof.]],
    thingClass = "Building",
    category = "Building",
    statBases = {
      MaxHitPoints = 300,
      WorkToBuild = 135,
      Flammability = 1.0,
      MeditationFocusStrength = 0.22,
    },
    leaveResourcesWhenKilled = false,
    altitudeLayer = "Building",
    passability = "Impassable",
    fillPercent = 1,
    terrainAffordanceNeeded = "Heavy",
    building = {
      isInert = true,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_MeditationFocus",
        },
        statDef = "MeditationFocusStrength",
        focusTypes = {
          "Minimal",
        },
      },
    },
  },

  ["ThingDef:Column"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Structure.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Column",
    label = "column",
    description = [[A column capable of holding a roof. Does not block sight or movement and looks quite nice.]],
    altitudeLayer = "Building",
    passability = "PassThroughOnly",
    fillPercent = 0.25,
    pathCost = 0,
    statBases = {
      MaxHitPoints = 160,
      WorkToBuild = 750,
      Mass = 10,
      Flammability = 1.0,
      Beauty = 5,
    },
    building = {
      isInert = true,
    },
  },

  ["ThingDef:Campfire"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Temperature.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Campfire",
    label = "campfire",
    description = [[Cooks meals and produces heat, and burns out after a few days. As with all heat sources, it must be placed indoors so it has a closed space to heat. Refuelable.]],
    thingClass = "Building_WorkTable",
    category = "Building",
    altitudeLayer = "Building",
    passability = "PassThroughOnly",
    pathCost = 42,
    fillPercent = 0.20,
    statBases = {
      MaxHitPoints = 80,
      WorkToBuild = 200,
      Flammability = 0,
      WorkTableWorkSpeedFactor = 0.5,
      MeditationFocusStrength = 0.0,
    },
    costList = {
      WoodLog = 20,
    },
    leaveResourcesWhenKilled = false,
    comps = {
      {
        _ = {
          Class = "CompProperties_Refuelable",
        },
        fuelConsumptionRate = 10.0,
        fuelCapacity = 20.0,
        fuelConsumptionPerTickInRain = 0.0006,
        fuelFilter = {
          thingDefs = {
            "WoodLog",
          },
        },
        initialFuelPercent = 1,
        showAllowAutoRefuelToggle = true,
      },
      {
        _ = {
          Class = "CompProperties_Glower",
        },
        glowRadius = 10,
        glowColor = {252, 187, 113, 0},
      },
      {
        _ = {
          Class = "CompProperties_HeatPusher",
        },
        compClass = "CompHeatPusherPowered",
        heatPerSecond = 21,
        heatPushMaxTemperature = 28,
      },
      {
        _ = {
          Class = "CompProperties_FireOverlay",
        },
        fireSize = 1,
      },
      {
        compClass = "CompGatherSpot",
      },
      {
        _ = {
          Class = "CompProperties_MeditationFocus",
        },
        statDef = "MeditationFocusStrength",
        focusTypes = {
          "Flame",
        },
        offsets = {
          {
            _ = {
              Class = "FocusStrengthOffset_Lit",
            },
            offset = 0.12,
          },
          {
            _ = {
              Class = "FocusStrengthOffset_BuildingDefsLit",
            },
            defs = {
              "Campfire",
              "TorchLamp",
              "Brazier",
            },
            offsetPerBuilding = 0.02,
            radius = 9.9,
            maxBuildings = 8,
            explanationKey = "MeditationFocusPerFlame",
            explanationKeyAbstract = "MeditationFocusPerFlameAbstract",
          },
        },
      },
    },
    hasInteractionCell = true,
    building = {
      isMealSource = true,
      artificialForMeditationPurposes = false,
    },
  },

  ["ThingDef:PassiveCooler"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Temperature.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "PassiveCooler",
    label = "passive cooler",
    description = [[A traditional unpowered cooler that works by water evaporation. Must be regularly replenished with wood. Not efficient enough to refrigerate food.]],
    category = "Building",
    altitudeLayer = "Building",
    passability = "PassThroughOnly",
    pathCost = 30,
    fillPercent = 0.40,
    statBases = {
      MaxHitPoints = 80,
      WorkToBuild = 200,
      Flammability = 1,
    },
    costList = {
      WoodLog = 50,
    },
    leaveResourcesWhenKilled = false,
    comps = {
      {
        _ = {
          Class = "CompProperties_HeatPusher",
        },
        compClass = "CompHeatPusherPowered",
        heatPerSecond = -11,
        heatPushMinTemperature = 17,
      },
      {
        _ = {
          Class = "CompProperties_Refuelable",
        },
        fuelConsumptionRate = 10.0,
        fuelCapacity = 50.0,
        fuelFilter = {
          thingDefs = {
            "WoodLog",
          },
        },
        initialFuelPercent = 1,
        showAllowAutoRefuelToggle = true,
      },
    },
    researchPrerequisites = {
      "PassiveCooler",
    },
  },

  ["ThingDef:Heater"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Temperature.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Heater",
    label = "heater",
    description = [[A device that converts electricity into heat. It can automatically turn itself on or off to reach a specific target temperature.]],
    thingClass = "Building_Heater",
    minifiedDef = "MinifiedThing",
    altitudeLayer = "Building",
    passability = "PassThroughOnly",
    pathCost = 30,
    fillPercent = 0.4,
    thingCategories = {
      "BuildingsTemperature",
    },
    statBases = {
      WorkToBuild = 1000,
      MaxHitPoints = 100,
      Mass = 6,
      Flammability = 0.5,
    },
    costList = {
      Steel = 50,
      ComponentIndustrial = 1,
    },
    terrainAffordanceNeeded = "Light",
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTrader",
        basePowerConsumption = 175,
        shortCircuitInRain = true,
      },
      {
        _ = {
          Class = "CompProperties_Flickable",
        },
      },
      {
        _ = {
          Class = "CompProperties_TempControl",
        },
        energyPerSecond = 21,
      },
      {
        _ = {
          Class = "CompProperties_Glower",
        },
        glowRadius = 3,
        glowColor = {255, 150, 100, 0},
      },
      {
        _ = {
          Class = "CompProperties_Breakdownable",
        },
      },
    },
    researchPrerequisites = {
      "Electricity",
    },
  },

  ["ThingDef:Cooler"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Temperature.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Cooler",
    label = "cooler",
    description = [[An air-cooling machine that fits into a wall. Cool air comes out one side, while hot exhaust comes out the other. Can be used to cool down rooms during summer, or to create a walk-in freezer.]],
    thingClass = "Building_Cooler",
    altitudeLayer = "Building",
    passability = "Impassable",
    fillPercent = 1,
    statBases = {
      WorkToBuild = 1600,
      MaxHitPoints = 100,
      Flammability = 0.7,
    },
    costList = {
      Steel = 90,
      ComponentIndustrial = 3,
    },
    terrainAffordanceNeeded = "Medium",
    comps = {
      {
        _ = {
          Class = "CompProperties_Power",
        },
        compClass = "CompPowerTrader",
        basePowerConsumption = 200,
      },
      {
        _ = {
          Class = "CompProperties_Flickable",
        },
      },
      {
        _ = {
          Class = "CompProperties_TempControl",
        },
        energyPerSecond = -21,
      },
      {
        _ = {
          Class = "CompProperties_Breakdownable",
        },
      },
    },
    researchPrerequisites = {
      "AirConditioning",
    },
  },

  ["ThingDef:Vent"] = {
    _ = {
      ParentName = "BuildingBase",
      DefCategory = "ThingDef",
      FileName = "Buildings_Temperature.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Vent",
    label = "vent",
    description = [[A vent for equalizing the temperature between two rooms without allowing people to walk between them.]],
    thingClass = "Building_Vent",
    altitudeLayer = "Building",
    passability = "Impassable",
    fillPercent = 1,
    statBases = {
      WorkToBuild = 400,
      MaxHitPoints = 100,
      Flammability = 1.0,
    },
    costList = {
      Steel = 30,
    },
    terrainAffordanceNeeded = "Medium",
    researchPrerequisites = {
      "ComplexFurniture",
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Flickable",
        },
        commandTexture = "UI/Commands/Vent",
        commandLabelKey = "CommandDesignateOpenCloseVentLabel",
        commandDescKey = "CommandDesignateOpenCloseVentDesc",
      },
    },
  },

  ["ThingDef:ArtifactBase"] = {
    _ = {
      ParentName = "ResourceBase",
      Name = "ArtifactBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Items_Artifacts.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    thingClass = "ThingWithComps",
    thingCategories = {
      "Artifacts",
    },
    tradeTags = {
      "Artifact",
    },
    statBases = {
      Mass = 0.5,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Usable",
        },
        useJob = "UseArtifact",
        useLabel = "Activate",
      },
      {
        _ = {
          Class = "CompProperties_UseEffect",
        },
        compClass = "CompUseEffect_DestroySelf",
      },
    },
  },

  ["ThingDef:PsychicAnimalPulser"] = {
    _ = {
      ParentName = "ArtifactBase",
      DefCategory = "ThingDef",
      FileName = "Items_Artifacts.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "PsychicAnimalPulser",
    label = "psychic animal pulser",
    description = [[A one-use broad-wave psychic effector. The psychic pulse fills lower minds with terrifying imagery, driving all animals in the region into a manhunting rage. Animals currently under your control will not be affected.]],
    stackLimit = 1,
    useHitPoints = true,
    statBases = {
      MarketValue = 700,
      MaxHitPoints = 80,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Targetable",
        },
        compClass = "CompTargetable_AllAnimalsOnTheMap",
        psychicSensitiveTargetsOnly = true,
        doCameraShake = true,
        moteOnTarget = "Mote_PsycastPsychicEffect",
        moteOnUsed = "Mote_PsycastAreaEffect",
        moteOnUsedScale = 10,
        ignorePlayerFactionPawns = true,
      },
      {
        compClass = "CompTargetEffect_Manhunter",
      },
      {
        _ = {
          Class = "CompProperties_TargetEffect_GoodwillImpact",
        },
        goodwillImpact = -200,
      },
      {
        _ = {
          Class = "CompProperties_UseEffectArtifact",
        },
        sound = "PsychicAnimalPulserCast",
      },
    },
  },

  ["ThingDef:PsychicSoothePulser"] = {
    _ = {
      ParentName = "ArtifactBase",
      DefCategory = "ThingDef",
      FileName = "Items_Artifacts.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "PsychicSoothePulser",
    label = "psychic soothe pulser",
    description = [[A one-use broad-wave psychic effector. The psychic pulse induces self-satisfying perceptual distortions, giving a temporary mood boost to everyone in the region.]],
    stackLimit = 1,
    useHitPoints = true,
    statBases = {
      MarketValue = 600,
      MaxHitPoints = 80,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Targetable",
        },
        compClass = "CompTargetable_AllPawnsOnTheMap",
        psychicSensitiveTargetsOnly = true,
        doCameraShake = true,
        moteOnTarget = "Mote_PsycastPsychicEffect",
        moteOnUsed = "Mote_PsycastAreaEffect",
        moteOnUsedScale = 10,
      },
      {
        compClass = "CompTargetEffect_MoodBoost",
      },
      {
        _ = {
          Class = "CompProperties_UseEffectArtifact",
        },
        sound = "PsychicSoothePulserCast",
      },
    },
  },

  ["ThingDef:ResourceVerbBase"] = {
    _ = {
      Name = "ResourceVerbBase",
      ParentName = "ResourceBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Items_Exotic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    comps = {
      {
        compClass = "CompEquippable",
      },
    },
  },

  ["ThingDef:AIPersonaCore"] = {
    _ = {
      ParentName = "ResourceBase",
      DefCategory = "ThingDef",
      FileName = "Items_Exotic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "AIPersonaCore",
    label = "persona core",
    description = [[A hyper-advanced computer core that houses a peak-human-equivalent machine persona. In its isolated state, the core is dormant. Installed in a proper support structure, however, it can become a mind of great power.]],
    stackLimit = 1,
    useHitPoints = true,
    statBases = {
      MarketValue = 4000,
      MaxHitPoints = 100,
      Mass = 2,
      Flammability = 0.2,
    },
    thingCategories = {
      "Items",
    },
    tradeability = "Sellable",
    tradeTags = {
      "ExoticMisc",
    },
  },

  ["ThingDef:MechSerumBase"] = {
    _ = {
      ParentName = "ResourceBase",
      Name = "MechSerumBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Items_Exotic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    thingClass = "ThingWithComps",
    useHitPoints = true,
    statBases = {
      MaxHitPoints = 80,
      Mass = 0.2,
      DeteriorationRate = 2.0,
      Flammability = 0.2,
    },
    tradeTags = {
      "ExoticMisc",
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_UseEffectPlaySound",
        },
        soundOnUsed = "MechSerumUsed",
      },
    },
  },

  ["ThingDef:MechSerumHealer"] = {
    _ = {
      ParentName = "MechSerumBase",
      DefCategory = "ThingDef",
      FileName = "Items_Exotic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "MechSerumHealer",
    label = "healer mech serum",
    description = [[A one-use super-dose of mechanites tuned to heal health conditions. The mechanites will target and heal the single worst health condition affecting someone at any given time. Works even on health conditions that would otherwise be incurable. The mechanites can even transmute themselves into organic matter, forming new limbs or organs as needed.]],
    stackLimit = 10,
    statBases = {
      MarketValue = 1300,
    },
    thingCategories = {
      "Items",
    },
    tradeability = "Sellable",
    comps = {
      {
        _ = {
          Class = "CompProperties_Usable",
        },
        useJob = "UseItem",
        useLabel = "Use healer mech serum",
        useDuration = 600,
      },
      {
        _ = {
          Class = "CompProperties_UseEffect",
        },
        compClass = "CompUseEffect_FixWorstHealthCondition",
      },
      {
        _ = {
          Class = "CompProperties_UseEffect",
        },
        compClass = "CompUseEffect_DestroySelf",
      },
    },
  },

  ["ThingDef:MechSerumResurrector"] = {
    _ = {
      ParentName = "MechSerumBase",
      DefCategory = "ThingDef",
      FileName = "Items_Exotic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "MechSerumResurrector",
    label = "resurrector mech serum",
    description = [[A one-use super-dose of mechanites tuned to resurrect the dead. Administered to a corpse, mechanites repair broken-down tissues and kickstart the body back to life. Unfortunately, the resurrected sometimes come back with brain damage, blindness, or progressive psychosis. Outcomes are better when the mechanites are administered to a fresher body. If a body is preserved, it can even be resurrected long after death.]],
    stackLimit = 10,
    statBases = {
      MarketValue = 1700,
    },
    thingCategories = {
      "Items",
    },
    tradeability = "Sellable",
    comps = {
      {
        _ = {
          Class = "CompProperties_Usable",
        },
        useJob = "UseItem",
        useLabel = "Use resurrector mech serum",
        useDuration = 0,
      },
      {
        _ = {
          Class = "CompProperties_Targetable",
        },
        compClass = "CompTargetable_SingleCorpse",
        fleshCorpsesOnly = true,
        nonDessicatedCorpsesOnly = true,
      },
      {
        compClass = "CompTargetEffect_Resurrect",
      },
    },
  },

  ["ThingDef:TechprofSubpersonaCore"] = {
    _ = {
      ParentName = "ResourceBase",
      DefCategory = "ThingDef",
      FileName = "Items_Exotic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "TechprofSubpersonaCore",
    label = "techprof subpersona core",
    thingClass = "ThingWithComps",
    description = [[A small AI core housing a low-grade subpersona specialized in teaching technology. When used, the AI will teach you the technology you're currently researching, instantly and for free. Can only be used once.]],
    stackLimit = 1,
    useHitPoints = true,
    statBases = {
      MarketValue = 1000,
      MaxHitPoints = 100,
      Mass = 2.0,
      Flammability = 0.2,
    },
    thingCategories = {
      "Items",
    },
    tradeability = "Sellable",
    tradeTags = {
      "ExoticMisc",
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Usable",
        },
        useJob = "UseItem",
        useLabel = "Use techprof subpersona core",
      },
      {
        _ = {
          Class = "CompProperties_UseEffect",
        },
        compClass = "CompUseEffect_FinishRandomResearchProject",
      },
      {
        _ = {
          Class = "CompProperties_UseEffect",
        },
        compClass = "CompUseEffect_DestroySelf",
      },
    },
  },

  ["ThingDef:ThrumboHorn"] = {
    _ = {
      ParentName = "ResourceVerbBase",
      DefCategory = "ThingDef",
      FileName = "Items_Exotic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "ThrumboHorn",
    label = "thrumbo horn",
    description = [[A thrumbo's horn. It's razor-sharp, rock-hard, and priceless in most markets. This is a true trophy, as well as a deadly melee weapon.]],
    statBases = {
      MarketValue = 800,
      MaxHitPoints = 150,
      Mass = 3,
      Flammability = 0.4,
      DeteriorationRate = 0.5,
    },
    stackLimit = 10,
    tools = {
      {
        label = "point",
        capacities = {
          "Scratch",
          "Stab",
        },
        power = 28,
        cooldownTime = 2.6,
        DPS = 10.769,
      },
      {
        label = "base",
        capacities = {
          "Blunt",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
    },
    thingCategories = {
      "Items",
    },
    tradeTags = {
      "ExoticMisc",
    },
  },

  ["ThingDef:ElephantTusk"] = {
    _ = {
      ParentName = "ResourceVerbBase",
      DefCategory = "ThingDef",
      FileName = "Items_Exotic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "ElephantTusk",
    label = "elephant tusk",
    description = [[An elephant's tusk. It is very durable and valuable. While somewhat unwieldy as a melee weapon, it can still be deadly.]],
    statBases = {
      MarketValue = 80,
      MaxHitPoints = 150,
      Mass = 1.8,
      Flammability = 0.9,
      DeteriorationRate = 0.5,
    },
    stackLimit = 10,
    tools = {
      {
        label = "point",
        capacities = {
          "Scratch",
          "Stab",
        },
        power = 18.2,
        cooldownTime = 2.6,
        DPS = 7.0,
      },
      {
        label = "base",
        capacities = {
          "Blunt",
        },
        power = 9,
        cooldownTime = 2,
        chanceFactor = 0.5,
        DPS = 4.5,
      },
    },
    thingCategories = {
      "Items",
    },
    tradeTags = {
      "ExoticMisc",
    },
  },

  ["ThingDef:MealBase"] = {
    _ = {
      Name = "MealBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Items_Food.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    thingClass = "ThingWithComps",
    category = "Item",
    useHitPoints = true,
    statBases = {
      MaxHitPoints = 50,
      Flammability = 1.0,
      Beauty = 0,
      Mass = 0.44,
      DeteriorationRate = 10,
    },
    altitudeLayer = "Item",
    stackLimit = 10,
    thingCategories = {
      "FoodMeals",
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Forbiddable",
        },
      },
      {
        _ = {
          Class = "CompProperties_Ingredients",
        },
      },
      {
        _ = {
          Class = "CompProperties_FoodPoisonable",
        },
      },
    },
    pathCost = 14,
    ingestible = {
      foodType = {
        "Meal",
      },
      optimalityOffsetHumanlikes = 16,
    },
  },

  ["ThingDef:MealSurvivalPack"] = {
    _ = {
      ParentName = "MealBase",
      DefCategory = "ThingDef",
      FileName = "Items_Food.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "MealSurvivalPack",
    label = "packaged survival meal",
    description = [[A high-quality packaged meal, manufactured for use in survival situations. While it never rots, it can still deteriorate if left outside. Great for traveling.]],
    statBases = {
      DeteriorationRate = 0.25,
      MarketValue = 24,
      Mass = 0.3,
      WorkToMake = 450,
      Nutrition = 0.9,
    },
    ingestible = {
      preferability = "MealSimple",
      optimalityOffsetHumanlikes = -5,
      optimalityOffsetFeedingAnimals = -10,
    },
  },

  ["ThingDef:MealNutrientPaste"] = {
    _ = {
      ParentName = "MealBase",
      DefCategory = "ThingDef",
      FileName = "Items_Food.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "MealNutrientPaste",
    label = "nutrient paste meal",
    description = [[A synthetic mixture of protein, carbohydrates, and vitamins, amino acids and minerals. Everything the body needs, and absolutely disgusting.]],
    statBases = {
      MarketValue = 10,
      Nutrition = 0.9,
    },
    ingestible = {
      preferability = "MealAwful",
      tasteThought = "AteAwfulMeal",
    },
    tradeability = "Buyable",
    comps = {
      {
        _ = {
          Class = "CompProperties_Rottable",
        },
        daysToRotStart = 0.75,
        rotDestroys = true,
      },
    },
  },

  ["ThingDef:MealCooked"] = {
    _ = {
      ParentName = "MealBase",
      Name = "MealCooked",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Items_Food.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    tradeability = "Buyable",
    comps = {
      {
        _ = {
          Class = "CompProperties_Rottable",
        },
        daysToRotStart = 4,
        rotDestroys = true,
      },
    },
  },

  ["ThingDef:MealSimple"] = {
    _ = {
      ParentName = "MealCooked",
      DefCategory = "ThingDef",
      FileName = "Items_Food.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "MealSimple",
    label = "simple meal",
    description = [[A simple meal quickly cooked from one main ingredient.]],
    statBases = {
      MarketValue = 15,
      WorkToMake = 300,
      Nutrition = 0.9,
    },
    ingestible = {
      preferability = "MealSimple",
    },
  },

  ["ThingDef:MealFine"] = {
    _ = {
      ParentName = "MealCooked",
      DefCategory = "ThingDef",
      FileName = "Items_Food.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "MealFine",
    label = "fine meal",
    description = [[A complex dish assembled with care from a variety of ingredients.]],
    statBases = {
      MarketValue = 20,
      WorkToMake = 450,
      Nutrition = 0.9,
    },
    ingestible = {
      preferability = "MealFine",
      tasteThought = "AteFineMeal",
    },
  },

  ["ThingDef:MealLavish"] = {
    _ = {
      ParentName = "MealCooked",
      DefCategory = "ThingDef",
      FileName = "Items_Food.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "MealLavish",
    label = "lavish meal",
    description = [[A masterpiece of the culinary arts, this meal nourishes the body, mind, and soul.]],
    statBases = {
      MarketValue = 40,
      WorkToMake = 800,
      Nutrition = 1,
    },
    ingestible = {
      preferability = "MealLavish",
      tasteThought = "AteLavishMeal",
    },
  },

  ["ThingDef:Kibble"] = {
    _ = {
      ParentName = "OrganicProductBase",
      DefCategory = "ThingDef",
      FileName = "Items_Food.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Kibble",
    label = "kibble",
    description = [[Animal feed made from mixed meat and plant sources. Humans can eat it, but they really, really don't like it.]],
    thingCategories = {
      "Foods",
    },
    statBases = {
      MarketValue = 1.1,
      Mass = 0.015,
      Nutrition = 0.05,
      FoodPoisonChanceFixedHuman = 0.02,
    },
    ingestible = {
      foodType = {
        "Kibble",
      },
      preferability = "RawBad",
      tasteThought = "AteKibble",
      optimalityOffsetHumanlikes = -30,
      optimalityOffsetFeedingAnimals = 15,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Ingredients",
        },
      },
    },
  },

  ["ThingDef:Pemmican"] = {
    _ = {
      ParentName = "OrganicProductBase",
      DefCategory = "ThingDef",
      FileName = "Items_Food.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Pemmican",
    label = "pemmican",
    description = [[A preserved mashed mixture of fat and plant food. Tastes bland, but not offensive. It lasts a very long time without refrigeration. Great for traveling.]],
    thingClass = "ThingWithComps",
    thingCategories = {
      "Foods",
    },
    statBases = {
      MarketValue = 1.4,
      Mass = 0.018,
      Flammability = 0.6,
      WorkToMake = 700,
      DeteriorationRate = 2,
      Nutrition = 0.05,
    },
    ingestible = {
      foodType = {
        "Meal",
      },
      preferability = "MealSimple",
      optimalityOffsetHumanlikes = 6,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Rottable",
        },
        daysToRotStart = 70,
        rotDestroys = true,
      },
      {
        _ = {
          Class = "CompProperties_Ingredients",
        },
      },
      {
        _ = {
          Class = "CompProperties_FoodPoisonable",
        },
      },
    },
  },

  ["ThingDef:Chocolate"] = {
    _ = {
      ParentName = "ResourceBase",
      DefCategory = "ThingDef",
      FileName = "Items_Luxury.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Chocolate",
    label = "chocolate",
    description = [[A delicious preparation of cocoa seeds ground together with sugar and vanilla. It fulfills the need for recreation, but it is not very nutritious.]],
    statBases = {
      MaxHitPoints = 60,
      MarketValue = 3,
      Mass = 0.075,
      Flammability = 1.0,
      DeteriorationRate = 8,
      Nutrition = 0.1,
    },
    thingCategories = {
      "Foods",
    },
    ingestible = {
      preferability = "DesperateOnly",
      foodType = {
        "Processed",
      },
      joy = 0.10,
      joyKind = "Gluttonous",
    },
  },

  ["ThingDef:Milk"] = {
    _ = {
      ParentName = "OrganicProductBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_AnimalProduct.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Milk",
    label = "milk",
    description = [[Milk from an animal.]],
    statBases = {
      MarketValue = 3.1,
      Mass = 0.045,
      MaxHitPoints = 60,
      Flammability = 0.2,
      Nutrition = 0.05,
      FoodPoisonChanceFixedHuman = 0.02,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Rottable",
        },
        daysToRotStart = 14,
        rotDestroys = true,
      },
    },
    ingestible = {
      preferability = "RawTasty",
      foodType = {
        "AnimalProduct",
        "Fluid",
      },
    },
    thingCategories = {
      "AnimalProductRaw",
    },
  },

  ["ThingDef:InsectJelly"] = {
    _ = {
      ParentName = "OrganicProductBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_AnimalProduct.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "InsectJelly",
    label = "insect jelly",
    description = [[Jelly stored and used as food by oversized insects. It is smooth, rich, and fulfills the recreation need of those who consume it. Because of its unique biological properties, it can nourish almost any creature and never rots.]],
    statBases = {
      MarketValue = 8.0,
      Mass = 0.025,
      Nutrition = 0.05,
      FoodPoisonChanceFixedHuman = 0.02,
    },
    ingestible = {
      foodType = {
        "AnimalProduct",
      },
      preferability = "MealFine",
      joy = 0.08,
      joyKind = "Gluttonous",
      canAutoSelectAsFoodForCaravan = false,
    },
    thingCategories = {
      "AnimalProductRaw",
    },
  },

  ["ThingDef:EggBase"] = {
    _ = {
      Abstract = true,
      Name = "EggBase",
      ParentName = "OrganicProductBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_AnimalProduct.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    ingestible = {
      foodType = {
        "AnimalProduct",
      },
      tasteThought = "AteRawFood",
    },
    statBases = {
      Mass = 0.15,
      MaxHitPoints = 20,
      DeteriorationRate = 2,
      Flammability = 0.7,
      Nutrition = 0.25,
      FoodPoisonChanceFixedHuman = 0.02,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Rottable",
        },
        daysToRotStart = 15,
        rotDestroys = true,
        disableIfHatcher = true,
      },
    },
  },

  ["ThingDef:EggUnfertBase"] = {
    _ = {
      Abstract = true,
      Name = "EggUnfertBase",
      ParentName = "EggBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_AnimalProduct.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    ingestible = {
      preferability = "RawBad",
    },
    thingCategories = {
      "EggsUnfertilized",
    },
  },

  ["ThingDef:EggFertBase"] = {
    _ = {
      Abstract = true,
      Name = "EggFertBase",
      ParentName = "EggBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_AnimalProduct.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    ingestible = {
      preferability = "DesperateOnly",
    },
    thingCategories = {
      "EggsFertilized",
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_TemperatureRuinable",
        },
        minSafeTemperature = 0,
        maxSafeTemperature = 50,
        progressPerDegreePerTick = 0.00003,
      },
    },
  },

  ["ThingDef:EggChickenUnfertilized"] = {
    _ = {
      ParentName = "EggUnfertBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_AnimalProduct.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "EggChickenUnfertilized",
    label = "chicken egg (unfert.)",
    description = [[An unfertilized chicken egg. It can be eaten raw, but it's much, much better cooked.]],
    statBases = {
      MarketValue = 7.0,
    },
  },

  ["ThingDef:EggChickenFertilized"] = {
    _ = {
      ParentName = "EggFertBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_AnimalProduct.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "EggChickenFertilized",
    label = "chicken egg (fert.)",
    description = [[A fertilized chicken egg. If all goes well, it should hatch into a chick. It can be eaten raw, but it's much better cooked.]],
    statBases = {
      MarketValue = 7.0,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Hatcher",
        },
        hatcherDaystoHatch = 3.5,
        hatcherPawn = "Chicken",
      },
    },
  },

  ["ThingDef:EggCobraFertilized"] = {
    _ = {
      ParentName = "EggFertBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_AnimalProduct.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "EggCobraFertilized",
    label = "cobra egg (fert.)",
    description = [[A fertilized cobra egg. If all goes well, it should hatch into a baby cobra. It can be eaten raw, but it's much better cooked.]],
    statBases = {
      MarketValue = 40.0,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Hatcher",
        },
        hatcherDaystoHatch = 4.5,
        hatcherPawn = "Cobra",
      },
    },
  },

  ["ThingDef:EggIguanaFertilized"] = {
    _ = {
      ParentName = "EggFertBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_AnimalProduct.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "EggIguanaFertilized",
    label = "iguana egg (fert.)",
    description = [[A fertilized iguana egg. If all goes well, it should hatch into a baby iguana. It can be eaten raw, but it's much better cooked.]],
    statBases = {
      MarketValue = 25.0,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Hatcher",
        },
        hatcherDaystoHatch = 3.5,
        hatcherPawn = "Iguana",
      },
    },
  },

  ["ThingDef:EggTortoiseFertilized"] = {
    _ = {
      ParentName = "EggFertBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_AnimalProduct.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "EggTortoiseFertilized",
    label = "tortoise egg (fert.)",
    description = [[A fertilized tortoise egg. If all goes well, it should hatch into a baby tortoise. It can be eaten raw, but it's much better cooked.]],
    statBases = {
      MarketValue = 23.0,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Hatcher",
        },
        hatcherDaystoHatch = 3.5,
        hatcherPawn = "Tortoise",
      },
    },
  },

  ["ThingDef:EggCassowaryFertilized"] = {
    _ = {
      ParentName = "EggFertBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_AnimalProduct.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "EggCassowaryFertilized",
    label = "cassowary egg (fert.)",
    description = [[A fertilized cassowary egg. If all goes well, it should hatch into a baby cassowary. It can be eaten raw, but it's much better cooked.]],
    statBases = {
      MarketValue = 19.0,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Hatcher",
        },
        hatcherDaystoHatch = 7,
        hatcherPawn = "Cassowary",
      },
    },
  },

  ["ThingDef:EggEmuFertilized"] = {
    _ = {
      ParentName = "EggFertBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_AnimalProduct.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "EggEmuFertilized",
    label = "emu egg (fert.)",
    description = [[A fertilized emu egg. If all goes well, it should hatch into a baby emu. It can be eaten raw, but it's much better cooked.]],
    statBases = {
      MarketValue = 18.0,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Hatcher",
        },
        hatcherDaystoHatch = 6,
        hatcherPawn = "Emu",
      },
    },
  },

  ["ThingDef:EggOstrichFertilized"] = {
    _ = {
      ParentName = "EggFertBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_AnimalProduct.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "EggOstrichFertilized",
    label = "ostrich egg (fert.)",
    description = [[A fertilized ostrich egg. If all goes well, it should hatch into a baby ostrich. It can be eaten raw, but it's much better cooked.]],
    statBases = {
      MarketValue = 23.0,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Hatcher",
        },
        hatcherDaystoHatch = 8,
        hatcherPawn = "Ostrich",
      },
    },
  },

  ["ThingDef:EggTurkeyFertilized"] = {
    _ = {
      ParentName = "EggFertBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_AnimalProduct.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "EggTurkeyFertilized",
    label = "turkey egg (fert.)",
    description = [[A fertilized turkey egg. If all goes well, it should hatch into a baby turkey. It can be eaten raw, but it's much better cooked.]],
    statBases = {
      MarketValue = 11.0,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Hatcher",
        },
        hatcherDaystoHatch = 5,
        hatcherPawn = "Turkey",
      },
    },
  },

  ["ThingDef:EggDuckUnfertilized"] = {
    _ = {
      ParentName = "EggUnfertBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_AnimalProduct.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "EggDuckUnfertilized",
    label = "duck egg (unfert.)",
    description = [[An unfertilized duck egg. It can be eaten raw, but it's much, much better cooked.]],
    statBases = {
      MarketValue = 7.0,
    },
  },

  ["ThingDef:EggDuckFertilized"] = {
    _ = {
      ParentName = "EggFertBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_AnimalProduct.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "EggDuckFertilized",
    label = "duck egg (fert.)",
    description = [[A fertilized duck egg. If all goes well, it should hatch into a duckling. It can be eaten raw, but it's much better cooked.]],
    statBases = {
      MarketValue = 7.0,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Hatcher",
        },
        hatcherDaystoHatch = 3.5,
        hatcherPawn = "Duck",
      },
    },
  },

  ["ThingDef:EggGooseUnfertilized"] = {
    _ = {
      ParentName = "EggUnfertBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_AnimalProduct.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "EggGooseUnfertilized",
    label = "goose egg (unfert.)",
    description = [[An unfertilized goose egg. It can be eaten raw, but it's much, much better cooked.]],
    statBases = {
      MarketValue = 9.0,
    },
  },

  ["ThingDef:EggGooseFertilized"] = {
    _ = {
      ParentName = "EggFertBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_AnimalProduct.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "EggGooseFertilized",
    label = "goose egg (fert.)",
    description = [[A fertilized goose egg. If all goes well, it should hatch into a baby goose. It can be eaten raw, but it's much better cooked.]],
    statBases = {
      MarketValue = 11.0,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Hatcher",
        },
        hatcherDaystoHatch = 6.5,
        hatcherPawn = "Goose",
      },
    },
  },

  ["ThingDef:ResourceBase"] = {
    _ = {
      Name = "ResourceBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Base.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    thingClass = "ThingWithComps",
    category = "Item",
    useHitPoints = true,
    altitudeLayer = "Item",
    stackLimit = 75,
    statBases = {
      Beauty = -4,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Forbiddable",
        },
      },
    },
    pathCost = 14,
  },

  ["ThingDef:MedicineBase"] = {
    _ = {
      ParentName = "ResourceBase",
      Name = "MedicineBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Manufactured.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    thingClass = "Medicine",
    stackLimit = 25,
    statBases = {
      MaxHitPoints = 60,
    },
    thingCategories = {
      "Medicine",
    },
  },

  ["ThingDef:MedicineHerbal"] = {
    _ = {
      ParentName = "MedicineBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Manufactured.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "MedicineHerbal",
    label = "herbal medicine",
    description = [[A pack of herbal concoctions extracted from the healroot plant. It is less potent than industrial pharmaceuticals, but much better than nothing.]],
    statBases = {
      MarketValue = 10,
      Mass = 0.35,
      Flammability = 1.3,
      MedicalPotency = 0.60,
      MedicalQualityMax = 0.70,
      DeteriorationRate = 6,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Rottable",
        },
        daysToRotStart = 150,
        rotDestroys = true,
      },
    },
  },

  ["ThingDef:MedicineIndustrial"] = {
    _ = {
      ParentName = "MedicineBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Manufactured.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "MedicineIndustrial",
    label = "medicine",
    description = [[A kit of industrial-era medical equipment. It contains basic drugs, tools for suturing and bone setting, diagnostic devices, and various pads and fluids.]],
    statBases = {
      MarketValue = 18,
      Mass = 0.50,
      Flammability = 0.7,
      MedicalPotency = 1.00,
      MedicalQualityMax = 1.00,
      DeteriorationRate = 2,
      WorkToMake = 700,
    },
    costList = {
      MedicineHerbal = 1,
      Neutroamine = 1,
      Cloth = 3,
    },
    recipeMaker = {
      workSpeedStat = "DrugSynthesisSpeed",
      workSkill = "Intellectual",
      recipeUsers = {
        "DrugLab",
      },
      researchPrerequisite = "MedicineProduction",
      skillRequirements = {
        Crafting = 4,
        Intellectual = 4,
      },
    },
  },

  ["ThingDef:MedicineUltratech"] = {
    _ = {
      ParentName = "MedicineBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Manufactured.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "MedicineUltratech",
    label = "glitterworld medicine",
    description = [[A kit of advanced ultra-tech medical supplies, probably manufactured on a distant glitterworld. It contains advanced polymorphic drugs, nanite diagnostic and healing assisters, a mini-imager, and various multi-use tools.]],
    statBases = {
      MarketValue = 50,
      Mass = 0.50,
      Flammability = 0.7,
      MedicalPotency = 1.60,
      MedicalQualityMax = 1.30,
      DeteriorationRate = 2.0,
    },
    tradeTags = {
      "ExoticMisc",
    },
  },

  ["ThingDef:ComponentIndustrial"] = {
    _ = {
      ParentName = "ResourceBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Manufactured.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "ComponentIndustrial",
    label = "component",
    description = [[Miscellaneous gears, capacitors, circuit boards, tubes, wheels, sensors, wires, chips, processors, and other electronic and industrial parts. Necessary for assembling complex machines or electronics.]],
    stackLimit = 50,
    statBases = {
      MaxHitPoints = 70,
      MarketValue = 32,
      Mass = 0.6,
      Flammability = 0.6,
      DeteriorationRate = 2.0,
    },
    thingCategories = {
      "Manufactured",
    },
  },

  ["ThingDef:ComponentSpacer"] = {
    _ = {
      ParentName = "ResourceBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Manufactured.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "ComponentSpacer",
    label = "advanced component",
    description = [[Advanced computing and energy-directing machinery, miniaturized and hardened for the most demanding applications.]],
    stackLimit = 50,
    statBases = {
      MaxHitPoints = 70,
      MarketValue = 200,
      Mass = 0.6,
      Flammability = 0.6,
      DeteriorationRate = 2.0,
    },
    thingCategories = {
      "Manufactured",
    },
    tradeTags = {
      "ExoticMisc",
    },
  },

  ["ThingDef:Neutroamine"] = {
    _ = {
      ParentName = "ResourceBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Manufactured.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Neutroamine",
    label = "neutroamine",
    description = [[A synthetic precursor chemical. While it is useless on its own, many drugs require neutroamine as an ingredient.]],
    stackLimit = 150,
    statBases = {
      MaxHitPoints = 50,
      MarketValue = 6,
      Mass = 0.02,
      Flammability = 0.7,
      DeteriorationRate = 1.0,
    },
    thingCategories = {
      "Manufactured",
    },
  },

  ["ThingDef:Chemfuel"] = {
    _ = {
      ParentName = "ResourceBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Manufactured.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Chemfuel",
    label = "chemfuel",
    description = [[A volatile liquid chemical. Used to fuel engines and rockets, or to transmute into propellant for projectiles, or as an incendiary weapon.]],
    stackLimit = 150,
    statBases = {
      MaxHitPoints = 50,
      MarketValue = 2.3,
      Mass = 0.05,
      Flammability = 2.0,
      DeteriorationRate = 1.0,
    },
    thingCategories = {
      "Manufactured",
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Explosive",
        },
        explosiveRadius = 1.1,
        explosiveDamageType = "Flame",
        explosiveExpandPerStackcount = 0.037,
        startWickOnDamageTaken = {
          "Flame",
        },
        startWickHitPointsPercent = 0.333,
        preExplosionSpawnThingDef = "Filth_Fuel",
        preExplosionSpawnChance = 1,
        wickTicks = { ["<"]=70, [">"]=150 },
      },
    },
  },

  ["ThingDef:OrganicProductBase"] = {
    _ = {
      Abstract = true,
      Name = "OrganicProductBase",
      ParentName = "ResourceBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_RawPlant.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    statBases = {
      MaxHitPoints = 60,
      Flammability = 1.0,
      DeteriorationRate = 6,
      Mass = 0.03,
    },
  },

  ["ThingDef:PlantFoodRawBase"] = {
    _ = {
      Abstract = true,
      Name = "PlantFoodRawBase",
      ParentName = "OrganicProductBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_RawPlant.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    ingestible = {
      preferability = "RawBad",
      tasteThought = "AteRawFood",
    },
    statBases = {
      Nutrition = 0.05,
      FoodPoisonChanceFixedHuman = 0.02,
    },
    thingCategories = {
      "PlantFoodRaw",
    },
  },

  ["ThingDef:RawPotatoes"] = {
    _ = {
      ParentName = "PlantFoodRawBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_RawPlant.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "RawPotatoes",
    label = "potatoes",
    description = [[Raw potatoes.]],
    statBases = {
      MarketValue = 1.1,
    },
    ingestible = {
      foodType = {
        "VegetableOrFruit",
      },
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Rottable",
        },
        daysToRotStart = 30,
        rotDestroys = true,
      },
    },
  },

  ["ThingDef:RawFungus"] = {
    _ = {
      ParentName = "PlantFoodRawBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_RawPlant.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "RawFungus",
    label = "raw fungus",
    description = [[Raw fungus.]],
    statBases = {
      MarketValue = 1.1,
    },
    ingestible = {
      foodType = {
        "VegetableOrFruit",
      },
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Rottable",
        },
        daysToRotStart = 30,
        rotDestroys = true,
      },
    },
  },

  ["ThingDef:RawRice"] = {
    _ = {
      ParentName = "PlantFoodRawBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_RawPlant.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "RawRice",
    label = "rice",
    description = [[Raw rice.]],
    statBases = {
      MarketValue = 1.1,
    },
    ingestible = {
      foodType = {
        "Seed",
      },
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Rottable",
        },
        daysToRotStart = 40,
        rotDestroys = true,
      },
    },
  },

  ["ThingDef:RawAgave"] = {
    _ = {
      ParentName = "PlantFoodRawBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_RawPlant.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "RawAgave",
    label = "agave fruit",
    description = [[Raw agave fruit.]],
    statBases = {
      MarketValue = 1.1,
    },
    ingestible = {
      foodType = {
        "VegetableOrFruit",
      },
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Rottable",
        },
        daysToRotStart = 25,
        rotDestroys = true,
      },
    },
  },

  ["ThingDef:RawCorn"] = {
    _ = {
      ParentName = "PlantFoodRawBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_RawPlant.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "RawCorn",
    label = "corn",
    description = [[Raw corn.]],
    statBases = {
      MarketValue = 1.1,
    },
    ingestible = {
      foodType = {
        "VegetableOrFruit",
      },
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Rottable",
        },
        daysToRotStart = 60,
        rotDestroys = true,
      },
    },
  },

  ["ThingDef:RawBerries"] = {
    _ = {
      ParentName = "PlantFoodRawBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_RawPlant.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "RawBerries",
    label = "berries",
    description = [[Assorted berries. Nice to eat, even when raw.]],
    statBases = {
      MarketValue = 1.2,
      Mass = 0.027,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Rottable",
        },
        daysToRotStart = 14,
        rotDestroys = true,
      },
    },
    ingestible = {
      preferability = "RawTasty",
      tasteThought = {},
      foodType = {
        "VegetableOrFruit",
      },
    },
  },

  ["ThingDef:RoughPlantBase"] = {
    _ = {
      ParentName = "OrganicProductBase",
      Name = "RoughPlantBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Items_Resource_RawPlant.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    ingestible = {
      foodType = {
        "Plant",
      },
      preferability = "DesperateOnlyForHumanlikes",
    },
    statBases = {
      Nutrition = 0.05,
    },
  },

  ["ThingDef:Hay"] = {
    _ = {
      ParentName = "RoughPlantBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_RawPlant.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Hay",
    label = "hay",
    description = [[Nutrient-rich grasses and shoots, harvested and compacted for storage. Hay is good animal feed, but inedible for humans.]],
    stackLimit = 200,
    statBases = {
      MarketValue = 0.6,
      Mass = 0.014,
      Flammability = 1.5,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Rottable",
        },
        daysToRotStart = 60,
        rotDestroys = true,
      },
    },
    thingCategories = {
      "Foods",
    },
    ingestible = {
      optimalityOffsetFeedingAnimals = 7,
    },
  },

  ["ThingDef:RawHops"] = {
    _ = {
      ParentName = "RoughPlantBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_RawPlant.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "RawHops",
    label = "hops",
    description = [[Raw hops. A flavoring and preserving agent that is necessary for making beer.]],
    statBases = {
      MarketValue = 1.3,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Rottable",
        },
        daysToRotStart = 30,
        rotDestroys = true,
      },
    },
    thingCategories = {
      "PlantMatter",
    },
    ingestible = {
      preferability = "DesperateOnly",
    },
  },

  ["ThingDef:PsychoidLeaves"] = {
    _ = {
      ParentName = "RoughPlantBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_RawPlant.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "PsychoidLeaves",
    label = "psychoid leaves",
    description = [[Raw cut leaves of a psychoid plant. Can be refined into various form of the stimulant drug psychite.]],
    statBases = {
      MarketValue = 1.9,
      Flammability = 1.3,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Rottable",
        },
        daysToRotStart = 30,
        rotDestroys = true,
      },
    },
    thingCategories = {
      "PlantMatter",
    },
    ingestible = {
      preferability = "DesperateOnly",
    },
  },

  ["ThingDef:SmokeleafLeaves"] = {
    _ = {
      ParentName = "RoughPlantBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_RawPlant.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "SmokeleafLeaves",
    label = "smokeleaf leaves",
    description = [[Raw cut leaves of a smokeleaf plant. Can be rolled into smokeable joints at a crafting spot.]],
    statBases = {
      MarketValue = 1.6,
      Flammability = 1.3,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Rottable",
        },
        daysToRotStart = 30,
        rotDestroys = true,
      },
    },
    thingCategories = {
      "PlantMatter",
    },
    ingestible = {
      preferability = "DesperateOnly",
    },
  },

  ["ThingDef:ShellBase"] = {
    _ = {
      Name = "ShellBase",
      ParentName = "ResourceBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Shell.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    stackLimit = 25,
    statBases = {
      MaxHitPoints = 60,
      MarketValue = 55,
      Mass = 1.25,
      Flammability = 1.0,
      DeteriorationRate = 1.5,
    },
    thingCategories = {
      "MortarShells",
    },
    tradeTags = {
      "MortarShell",
    },
  },

  ["ThingDef:MakeableShellBase"] = {
    _ = {
      Name = "MakeableShellBase",
      ParentName = "ShellBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Shell.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    recipeMaker = {
      workSpeedStat = "GeneralLaborSpeed",
      effectWorking = "Cook",
      soundWorking = "Recipe_Machining",
      workAmount = 800,
      targetCountAdjustment = 5,
      workSkill = "Crafting",
      recipeUsers = {
        "TableMachining",
      },
      skillRequirements = {
        Crafting = 4,
      },
    },
  },

  ["ThingDef:Shell_HighExplosive"] = {
    _ = {
      ParentName = "MakeableShellBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Shell.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Shell_HighExplosive",
    label = "high-explosive shell",
    description = [[A shell filled with high explosives. Can be fired from mortars or installed as a trap. Explodes when damaged.]],
    comps = {
      {
        _ = {
          Class = "CompProperties_Explosive",
        },
        explosiveRadius = 2.9,
        explosiveDamageType = "Bomb",
        explosiveExpandPerStackcount = 0.4,
        startWickHitPointsPercent = 0.7,
        wickTicks = { ["<"]=30, [">"]=60 },
      },
    },
    costList = {
      Steel = 25,
      Chemfuel = 15,
    },
    recipeMaker = {
      researchPrerequisite = "Mortars",
    },
  },

  ["ThingDef:Bullet_Shell_HighExplosive"] = {
    _ = {
      ParentName = "BaseBullet",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Shell.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Bullet_Shell_HighExplosive",
    label = "high-explosive shell",
    thingClass = "Projectile_Explosive",
    projectile = {
      damageDef = "Bomb",
      speed = 41,
      explosionRadius = 2.9,
      flyOverhead = true,
      soundHitThickRoof = "Artillery_HitThickRoof",
      soundExplode = "MortarBomb_Explode",
      soundImpactAnticipate = "MortarRound_PreImpact",
      soundAmbient = "MortarRound_Ambient",
    },
  },

  ["ThingDef:Shell_Incendiary"] = {
    _ = {
      ParentName = "MakeableShellBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Shell.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Shell_Incendiary",
    label = "incendiary shell",
    description = [[A shell filled with flammable gel and a small explosive charge. Starts fires when detonated. Can be fired from mortars or installed as a trap. Explodes when damaged.]],
    comps = {
      {
        _ = {
          Class = "CompProperties_Explosive",
        },
        explosiveRadius = 2.9,
        explosiveDamageType = "Flame",
        explosiveExpandPerStackcount = 0.4,
        startWickHitPointsPercent = 0.7,
        wickTicks = { ["<"]=30, [">"]=60 },
      },
    },
    costList = {
      Steel = 20,
      Chemfuel = 20,
    },
    recipeMaker = {
      researchPrerequisite = "Mortars",
    },
  },

  ["ThingDef:Bullet_Shell_Incendiary"] = {
    _ = {
      ParentName = "BaseBullet",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Shell.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Bullet_Shell_Incendiary",
    label = "incendiary shell",
    thingClass = "Projectile_Explosive",
    projectile = {
      damageDef = "Flame",
      speed = 41,
      explosionRadius = 2.9,
      preExplosionSpawnThingDef = "Filth_Fuel",
      preExplosionSpawnChance = 0.25,
      flyOverhead = true,
      soundHitThickRoof = "Artillery_HitThickRoof",
      soundExplode = "MortarIncendiary_Explode",
      soundImpactAnticipate = "MortarRound_PreImpact",
      soundAmbient = "MortarRound_Ambient",
      ai_IsIncendiary = true,
    },
  },

  ["ThingDef:Shell_EMP"] = {
    _ = {
      ParentName = "MakeableShellBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Shell.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Shell_EMP",
    label = "EMP shell",
    description = [[A shell filled with batteries and antennas, for generating an electromagnetic pulse when detonated. Electromagnetic pulses temporarily disable electrical devices and mechanoids. Can be fired from mortars or installed as a trap. Explodes when damaged.]],
    comps = {
      {
        _ = {
          Class = "CompProperties_Explosive",
        },
        explosiveRadius = 11.9,
        explosiveDamageType = "EMP",
        explosiveExpandPerStackcount = 0.4,
        startWickHitPointsPercent = 0.7,
        wickTicks = { ["<"]=30, [">"]=60 },
      },
    },
    costList = {
      Steel = 25,
      ComponentIndustrial = 2,
    },
    recipeMaker = {
      researchPrerequisite = "MicroelectronicsBasics",
    },
  },

  ["ThingDef:Bullet_Shell_EMP"] = {
    _ = {
      ParentName = "BaseBullet",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Shell.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Bullet_Shell_EMP",
    label = "EMP shell",
    thingClass = "Projectile_Explosive",
    projectile = {
      damageDef = "EMP",
      speed = 41,
      explosionRadius = 8.9,
      flyOverhead = true,
      soundHitThickRoof = "Artillery_HitThickRoof",
      soundExplode = "Explosion_EMP",
      soundImpactAnticipate = "MortarRound_PreImpact",
      soundAmbient = "MortarRound_Ambient",
    },
  },

  ["ThingDef:Shell_Smoke"] = {
    _ = {
      ParentName = "MakeableShellBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Shell.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Shell_Smoke",
    label = "Smoke shell",
    description = [[A shell that generates a cloud of smoke when detonated, obscuring incoming shots and preventing turrets from locking on. Can be fired from mortars or installed as a trap. Explodes when damaged.]],
    comps = {
      {
        _ = {
          Class = "CompProperties_Explosive",
        },
        explosiveDamageType = "Smoke",
        explosiveRadius = 11,
        postExplosionSpawnThingDef = "Gas_Smoke",
        postExplosionSpawnChance = 1,
        postExplosionSpawnThingCount = 1,
        wickTicks = { ["<"]=30, [">"]=60 },
      },
    },
    costList = {
      Steel = 35,
    },
    recipeMaker = {
      researchPrerequisite = "Mortars",
    },
  },

  ["ThingDef:Bullet_Shell_Smoke"] = {
    _ = {
      ParentName = "BaseBullet",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Shell.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Bullet_Shell_Smoke",
    label = "Smoke shell",
    thingClass = "Projectile_Explosive",
    projectile = {
      damageDef = "Smoke",
      speed = 41,
      explosionRadius = 7.2,
      flyOverhead = true,
      soundHitThickRoof = "Artillery_HitThickRoof",
      soundExplode = "Explosion_Smoke",
      soundImpactAnticipate = "MortarRound_PreImpact",
      soundAmbient = "MortarRound_Ambient",
      postExplosionSpawnThingDef = "Gas_Smoke",
      postExplosionSpawnChance = 1,
    },
  },

  ["ThingDef:Shell_Firefoam"] = {
    _ = {
      ParentName = "MakeableShellBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Shell.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Shell_Firefoam",
    label = "firefoam shell",
    description = [[A pressurized shell filled with fire-retardant foam. Can be fired from mortars or installed as a trap. Explodes when damaged.]],
    comps = {
      {
        _ = {
          Class = "CompProperties_Explosive",
        },
        explosiveRadius = 9.9,
        explosiveDamageType = "Extinguish",
        explosiveExpandPerStackcount = 0.4,
        startWickHitPointsPercent = 0.7,
        postExplosionSpawnThingDef = "Filth_FireFoam",
        postExplosionSpawnChance = 1,
        postExplosionSpawnThingCount = 3,
        applyDamageToExplosionCellsNeighbors = true,
        explosionEffect = "ExtinguisherExplosion",
        wickTicks = { ["<"]=30, [">"]=60 },
      },
    },
    costList = {
      Steel = 35,
    },
    recipeMaker = {
      researchPrerequisite = "Firefoam",
    },
  },

  ["ThingDef:Bullet_Shell_Firefoam"] = {
    _ = {
      ParentName = "BaseBullet",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Shell.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Bullet_Shell_Firefoam",
    label = "firefoam shell",
    thingClass = "Projectile_Explosive",
    projectile = {
      damageDef = "Extinguish",
      speed = 41,
      explosionRadius = 5,
      flyOverhead = true,
      soundHitThickRoof = "Artillery_HitThickRoof",
      soundExplode = "Explosion_EMP",
      soundImpactAnticipate = "MortarRound_PreImpact",
      soundAmbient = "MortarRound_Ambient",
      postExplosionSpawnThingDef = "Filth_FireFoam",
      postExplosionSpawnChance = 1,
      postExplosionSpawnThingCount = 3,
      applyDamageToExplosionCellsNeighbors = true,
      explosionEffect = "ExtinguisherExplosion",
    },
  },

  ["ThingDef:Shell_AntigrainWarhead"] = {
    _ = {
      ParentName = "ShellBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Shell.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Shell_AntigrainWarhead",
    label = "antigrain warhead",
    description = [[An ultra-tech warhead powered by a grain of antimatter. Usually used by spacecraft or glitterworld war machines, it creates a huge explosion and starts fires around the target. Can be fired from mortars or installed as a trap. Explodes when damaged.]],
    tradeability = "Sellable",
    statBases = {
      MarketValue = 1200,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Explosive",
        },
        explosiveRadius = 14.9,
        explosiveDamageType = "BombSuper",
        explosiveExpandPerStackcount = 0.4,
        startWickHitPointsPercent = 0.7,
        chanceToStartFire = 0.22,
        damageFalloff = true,
        explosionEffect = "GiantExplosion",
        explosionSound = "Explosion_GiantBomb",
        wickTicks = { ["<"]=60, [">"]=120 },
      },
    },
  },

  ["ThingDef:Bullet_Shell_AntigrainWarhead"] = {
    _ = {
      ParentName = "BaseBullet",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Shell.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Bullet_Shell_AntigrainWarhead",
    label = "antigrain warhead",
    thingClass = "Projectile_Explosive",
    projectile = {
      damageDef = "BombSuper",
      speed = 41,
      explosionRadius = 14.9,
      explosionChanceToStartFire = 0.22,
      explosionDamageFalloff = true,
      explosionEffect = "GiantExplosion",
      flyOverhead = true,
      soundHitThickRoof = "Artillery_HitThickRoof",
      soundExplode = "Explosion_GiantBomb",
      soundImpactAnticipate = "MortarRound_PreImpact",
      soundAmbient = "MortarRound_Ambient",
    },
  },

  ["ThingDef:Silver"] = {
    _ = {
      ParentName = "ResourceBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Silver",
    label = "silver",
    description = [[This metal is mostly used as a commodity currency. It can also be used for making decorations.]],
    useHitPoints = false,
    statBases = {
      MarketValue = 1,
      Mass = 0.008,
      StuffPower_Armor_Sharp = 0.72,
      StuffPower_Armor_Blunt = 0.36,
      StuffPower_Armor_Heat = 0.36,
      StuffPower_Insulation_Cold = 3,
      StuffPower_Insulation_Heat = 0,
      SharpDamageMultiplier = 0.85,
      BluntDamageMultiplier = 1.0,
    },
    thingCategories = {
      "ResourcesRaw",
    },
    stackLimit = 500,
    smeltable = true,
    stuffProps = {
      categories = {
        "Metallic",
      },
      statOffsets = {
        Beauty = 6,
      },
      statFactors = {
        MaxHitPoints = 0.7,
        Flammability = 0.4,
        Beauty = 2,
      },
    },
    terrainAffordanceNeeded = "Medium",
  },

  ["ThingDef:Gold"] = {
    _ = {
      ParentName = "ResourceBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Gold",
    label = "gold",
    description = [[The most seductive metal of them all. While it is too soft to be of much practical use, it is strikingly beautiful and never tarnishes. Millions have died in attempting to feed the endless human thirst for gold.]],
    useHitPoints = false,
    statBases = {
      MarketValue = 10,
      RoyalFavorValue = 0.015,
      Mass = 0.008,
      StuffPower_Armor_Sharp = 0.72,
      StuffPower_Armor_Blunt = 0.36,
      StuffPower_Armor_Heat = 0.36,
      StuffPower_Insulation_Cold = 3,
      StuffPower_Insulation_Heat = 0,
      SharpDamageMultiplier = 0.75,
      BluntDamageMultiplier = 1.0,
    },
    thingCategories = {
      "ResourcesRaw",
    },
    stackLimit = 500,
    smeltable = true,
    stuffProps = {
      categories = {
        "Metallic",
      },
      statOffsets = {
        Beauty = 20,
      },
      statFactors = {
        MaxHitPoints = 0.6,
        Flammability = 0.4,
        Beauty = 4,
        WorkToMake = 0.9,
        WorkToBuild = 0.9,
        MeleeWeapon_CooldownMultiplier = 1.0,
      },
    },
    terrainAffordanceNeeded = "Medium",
  },

  ["ThingDef:Steel"] = {
    _ = {
      ParentName = "ResourceBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Steel",
    label = "steel",
    description = [[An iron-carbon metal alloy used for building a huge variety of structures, weapons, and machines.]],
    statBases = {
      MarketValue = 1.9,
      Mass = 0.5,
      StuffPower_Armor_Sharp = 0.9,
      StuffPower_Armor_Blunt = 0.45,
      StuffPower_Armor_Heat = 0.60,
      StuffPower_Insulation_Cold = 3,
      StuffPower_Insulation_Heat = 0,
      SharpDamageMultiplier = 1,
      BluntDamageMultiplier = 1,
    },
    useHitPoints = false,
    thingCategories = {
      "ResourcesRaw",
    },
    smeltable = true,
    stuffProps = {
      categories = {
        "Metallic",
      },
      statFactors = {
        MaxHitPoints = 1,
        Beauty = 1,
        Flammability = 0.4,
      },
    },
    terrainAffordanceNeeded = "Medium",
  },

  ["ThingDef:Plasteel"] = {
    _ = {
      ParentName = "ResourceBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Plasteel",
    label = "plasteel",
    description = [[Advanced spacer tech structural material. Plasteel is extremely strong due to its unique molecular structure.]],
    useHitPoints = false,
    statBases = {
      MarketValue = 9,
      Mass = 0.25,
      StuffPower_Armor_Sharp = 1.14,
      StuffPower_Armor_Blunt = 0.55,
      StuffPower_Armor_Heat = 0.65,
      StuffPower_Insulation_Cold = 3,
      StuffPower_Insulation_Heat = 0,
      SharpDamageMultiplier = 1.1,
      BluntDamageMultiplier = 0.9,
    },
    thingCategories = {
      "ResourcesRaw",
    },
    smeltable = true,
    stuffProps = {
      categories = {
        "Metallic",
      },
      statFactors = {
        MaxHitPoints = 2.8,
        Beauty = 1,
        Flammability = 0,
        WorkToMake = 2.2,
        WorkToBuild = 2.2,
        MeleeWeapon_CooldownMultiplier = 0.8,
      },
    },
    terrainAffordanceNeeded = "Medium",
  },

  ["ThingDef:WoodLog"] = {
    _ = {
      ParentName = "ResourceVerbBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "WoodLog",
    label = "wood",
    description = [[Wood from trees or other fibrous plants. Useful for building structures and weapons. It is a good fuel for campfires and generators, and can be refined into chemfuel. In a pinch, a piece of wood can be used as a weapon or a leg.]],
    statBases = {
      MarketValue = 1.2,
      MaxHitPoints = 150,
      Mass = 0.4,
      Flammability = 1.0,
      DeteriorationRate = 0.5,
      StuffPower_Armor_Sharp = 0.54,
      StuffPower_Armor_Blunt = 0.54,
      StuffPower_Armor_Heat = 0.40,
      StuffPower_Insulation_Cold = 8,
      StuffPower_Insulation_Heat = 4,
      SharpDamageMultiplier = 0.40,
      BluntDamageMultiplier = 0.9,
    },
    stuffProps = {
      categories = {
        "Woody",
      },
      statFactors = {
        MaxHitPoints = 0.65,
        Beauty = 1,
        Flammability = 1,
        WorkToMake = 0.7,
        WorkToBuild = 0.7,
        DoorOpenSpeed = 1.2,
      },
    },
    thingCategories = {
      "ResourcesRaw",
    },
    tools = {
      {
        label = "log",
        capacities = {
          "Blunt",
        },
        power = 10,
        cooldownTime = 2,
        DPS = 5.0,
      },
    },
    terrainAffordanceNeeded = "Light",
  },

  ["ThingDef:Uranium"] = {
    _ = {
      ParentName = "ResourceBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Uranium",
    label = "uranium",
    description = [[A dark, heavy metal. While it is best known as a fuel for nuclear devices, its extreme density and hardness also make it good for making certain weapons, armor, and ammunition.]],
    useHitPoints = false,
    statBases = {
      MarketValue = 6,
      Mass = 1,
      StuffPower_Armor_Sharp = 1.08,
      StuffPower_Armor_Blunt = 0.54,
      StuffPower_Armor_Heat = 0.65,
      StuffPower_Insulation_Cold = 3,
      StuffPower_Insulation_Heat = 0,
      SharpDamageMultiplier = 1.1,
      BluntDamageMultiplier = 1.5,
    },
    thingCategories = {
      "ResourcesRaw",
    },
    smeltable = true,
    stuffProps = {
      categories = {
        "Metallic",
      },
      statFactors = {
        MaxHitPoints = 2.5,
        WorkToMake = 1.9,
        WorkToBuild = 1.9,
        Beauty = 0.5,
        Flammability = 0.0,
        DoorOpenSpeed = 0.75,
        MeleeWeapon_CooldownMultiplier = 1.10,
      },
    },
    terrainAffordanceNeeded = "Medium",
  },

  ["ThingDef:Jade"] = {
    _ = {
      ParentName = "ResourceBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Jade",
    label = "jade",
    description = [[A hard, green stone. Because of its beauty and rarity, jade is often used for ornaments and decorations. Its hardness and density also makes it a good material for blunt weapons.]],
    useHitPoints = false,
    statBases = {
      MarketValue = 5,
      Mass = 0.5,
      StuffPower_Armor_Sharp = 0.9,
      StuffPower_Armor_Blunt = 0.45,
      StuffPower_Armor_Heat = 0.54,
      StuffPower_Insulation_Cold = 3,
      StuffPower_Insulation_Heat = 0,
      BluntDamageMultiplier = 1.5,
    },
    thingCategories = {
      "ResourcesRaw",
    },
    smeltable = false,
    stuffProps = {
      categories = {
        "Stony",
      },
      statOffsets = {
        Beauty = 10,
      },
      statFactors = {
        MaxHitPoints = 0.5,
        WorkToMake = 1.4,
        WorkToBuild = 5.0,
        Beauty = 2.5,
        Flammability = 0,
        MeleeWeapon_CooldownMultiplier = 1.3,
      },
    },
    terrainAffordanceNeeded = "Heavy",
  },

  ["ThingDef:Cloth"] = {
    _ = {
      ParentName = "ResourceBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Cloth",
    label = "cloth",
    description = [[Cloth woven from organic fibers.]],
    statBases = {
      StuffPower_Armor_Sharp = 0.36,
      StuffPower_Armor_Blunt = 0,
      StuffPower_Armor_Heat = 0.18,
      StuffPower_Insulation_Cold = 18,
      StuffPower_Insulation_Heat = 18,
      MaxHitPoints = 80,
      MarketValue = 1.5,
      Mass = 0.026,
      Flammability = 1.2,
      DeteriorationRate = 4,
    },
    stuffProps = {
      statFactors = {
        Flammability = 1.2,
        Beauty = 1,
      },
      categories = {
        "Fabric",
      },
    },
    thingCategories = {
      "Textiles",
    },
    comps = {
      {
        compClass = "CompColorable",
      },
    },
  },

  ["ThingDef:Synthread"] = {
    _ = {
      ParentName = "ResourceBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Synthread",
    label = "synthread",
    description = [[Spacer-tech synthetic fabric designed for making ordinary clothes. It is soft, light, strong, and insulates well.]],
    statBases = {
      MaxHitPoints = 150,
      MarketValue = 4,
      Mass = 0.025,
      Flammability = 0.7,
      DeteriorationRate = 3,
      StuffPower_Armor_Sharp = 0.94,
      StuffPower_Armor_Blunt = 0.26,
      StuffPower_Armor_Heat = 0.90,
      StuffPower_Insulation_Cold = 22,
      StuffPower_Insulation_Heat = 22,
    },
    stuffProps = {
      categories = {
        "Fabric",
      },
      statFactors = {
        Flammability = 0.7,
        MaxHitPoints = 1.3,
        Beauty = 2.3,
      },
    },
    thingCategories = {
      "Textiles",
    },
  },

  ["ThingDef:DevilstrandCloth"] = {
    _ = {
      ParentName = "ResourceBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "DevilstrandCloth",
    label = "devilstrand",
    description = [[Fabric spun from microfibers extracted from devilstrand mushrooms. It is very tough, good at insulating, and protects exceptionally well against flame.]],
    statBases = {
      MaxHitPoints = 100,
      MarketValue = 5.5,
      Mass = 0.032,
      Flammability = 0.4,
      DeteriorationRate = 3,
      StuffPower_Armor_Sharp = 1.40,
      StuffPower_Armor_Blunt = 0.36,
      StuffPower_Armor_Heat = 3.00,
      StuffPower_Insulation_Cold = 20,
      StuffPower_Insulation_Heat = 24,
    },
    stuffProps = {
      categories = {
        "Fabric",
      },
      statFactors = {
        Flammability = 0.4,
        MaxHitPoints = 1.3,
        Beauty = 3.2,
      },
    },
    thingCategories = {
      "Textiles",
    },
    comps = {
      {
        compClass = "CompColorable",
      },
    },
  },

  ["ThingDef:Hyperweave"] = {
    _ = {
      ParentName = "ResourceBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Hyperweave",
    label = "hyperweave",
    description = [[Nano-fibers woven into sheets molecule-by-molecule using specialized production mechanites. While it flexes freely most of the time, it stiffens to absorb blows as they land, and is incredibly difficult to break. The secrets of its production are known only to the most advanced glitterworld cultures.]],
    statBases = {
      MaxHitPoints = 200,
      MarketValue = 9,
      Mass = 0.038,
      Flammability = 0.4,
      DeteriorationRate = 1.0,
      StuffPower_Armor_Sharp = 2.00,
      StuffPower_Armor_Blunt = 0.54,
      StuffPower_Armor_Heat = 2.88,
      StuffPower_Insulation_Cold = 26,
      StuffPower_Insulation_Heat = 26,
    },
    stuffProps = {
      categories = {
        "Fabric",
      },
      statFactors = {
        Flammability = 0.4,
        MaxHitPoints = 2.4,
        Beauty = 5.5,
      },
    },
    thingCategories = {
      "Textiles",
    },
    tradeTags = {
      "ExoticMisc",
    },
  },

  ["ThingDef:WoolBase"] = {
    _ = {
      ParentName = "ResourceBase",
      Name = "WoolBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    stackLimit = 100,
    statBases = {
      MaxHitPoints = 90,
      MarketValue = 2.7,
      Mass = 0.028,
      Flammability = 0.4,
      DeteriorationRate = 3.4,
      StuffPower_Armor_Sharp = 0.36,
      StuffPower_Armor_Blunt = 0.00,
      StuffPower_Armor_Heat = 1.10,
    },
    stuffProps = {
      statFactors = {
        Flammability = 1.7,
        Beauty = 1.5,
      },
      categories = {
        "Fabric",
      },
    },
    thingCategories = {
      "Textiles",
    },
  },

  ["ThingDef:WoolMegasloth"] = {
    _ = {
      ParentName = "WoolBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "WoolMegasloth",
    label = "megasloth wool",
    description = [[While somewhat coarse, megasloth wool's long fibers make it very strong. It is exceptionally warm.]],
    statBases = {
      StuffPower_Armor_Sharp = 0.80,
      StuffPower_Insulation_Cold = 34,
      StuffPower_Insulation_Heat = 12,
    },
  },

  ["ThingDef:WoolMuffalo"] = {
    _ = {
      ParentName = "WoolBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "WoolMuffalo",
    label = "muffalo wool",
    description = [[Soft, light and provides very good insulation. Muffalo wool clothes can keep the body warm even in very cold conditions.]],
    statBases = {
      StuffPower_Insulation_Cold = 30,
      StuffPower_Insulation_Heat = 12,
    },
  },

  ["ThingDef:WoolAlpaca"] = {
    _ = {
      ParentName = "WoolBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "WoolAlpaca",
    label = "alpaca wool",
    description = [[The remarkably soft wool of an alpaca. It is very warm.]],
    statBases = {
      DeteriorationRate = 2.6,
      StuffPower_Insulation_Cold = 28,
      StuffPower_Insulation_Heat = 16,
    },
  },

  ["ThingDef:WoolBison"] = {
    _ = {
      ParentName = "WoolBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "WoolBison",
    label = "bison wool",
    description = [[Thick and coarse wool of a bison. Quite warm.]],
    statBases = {
      StuffPower_Insulation_Cold = 26,
      StuffPower_Insulation_Heat = 12,
    },
  },

  ["ThingDef:WoolSheep"] = {
    _ = {
      ParentName = "WoolBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "WoolSheep",
    label = "sheep wool",
    description = [[Sheep's wool. It provides good insulation.]],
    statBases = {
      StuffPower_Insulation_Cold = 26,
      StuffPower_Insulation_Heat = 10,
    },
  },

  ["ThingDef:LeatherBase"] = {
    _ = {
      Abstract = true,
      Name = "LeatherBase",
      ParentName = "ResourceBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff_Leather.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    description = [[Tanned, dried, scraped skin. A good traditional material for making clothes and bags.]],
    statBases = {
      MaxHitPoints = 60,
      DeteriorationRate = 2,
      Mass = 0.03,
      Flammability = 1,
      MarketValue = 2.1,
      StuffPower_Armor_Sharp = 0.81,
      StuffPower_Armor_Blunt = 0.24,
      StuffPower_Armor_Heat = 1.5,
      StuffPower_Insulation_Cold = 16,
      StuffPower_Insulation_Heat = 16,
    },
    thingCategories = {
      "Leathers",
    },
    stuffProps = {
      categories = {
        "Leathery",
      },
      statFactors = {
        MaxHitPoints = 1.3,
      },
    },
  },

  ["ThingDef:Leather_Plain"] = {
    _ = {
      ParentName = "LeatherBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff_Leather.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Leather_Plain",
    label = "plainleather",
  },

  ["ThingDef:Leather_Dog"] = {
    _ = {
      ParentName = "LeatherBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff_Leather.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Leather_Dog",
    label = "dog leather",
    statBases = {
      MarketValue = 2.0,
      StuffPower_Insulation_Cold = 14,
    },
  },

  ["ThingDef:Leather_Wolf"] = {
    _ = {
      ParentName = "LeatherBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff_Leather.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Leather_Wolf",
    label = "wolfskin",
    description = [[A soft furry pelt harvested from a wolf-like creature. It is difficult to pierce and insulates well against cold.]],
    statBases = {
      MarketValue = 3.0,
      StuffPower_Armor_Sharp = 1.02,
      StuffPower_Insulation_Cold = 24,
    },
    stuffProps = {
      statFactors = {
        Beauty = 1.7,
      },
    },
  },

  ["ThingDef:Leather_Panthera"] = {
    _ = {
      ParentName = "LeatherBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff_Leather.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Leather_Panthera",
    label = "panthera fur",
    description = [[A soft furry pelt harvested from a big cat. It is difficult to pierce and insulates well against heat.]],
    statBases = {
      MarketValue = 3.0,
      StuffPower_Armor_Sharp = 0.93,
      StuffPower_Insulation_Heat = 24,
    },
    stuffProps = {
      statFactors = {
        Beauty = 1.7,
      },
    },
  },

  ["ThingDef:Leather_Camel"] = {
    _ = {
      ParentName = "LeatherBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff_Leather.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Leather_Camel",
    label = "camelhide",
    description = [[Tanned, dried, scraped camel skin. Good at temperature regulation in hot climates.]],
    statBases = {
      MarketValue = 2.3,
      StuffPower_Insulation_Heat = 24,
    },
    stuffProps = {
      statFactors = {
        Beauty = 1.3,
      },
    },
  },

  ["ThingDef:Leather_Bluefur"] = {
    _ = {
      ParentName = "LeatherBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff_Leather.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Leather_Bluefur",
    label = "bluefur",
    description = [[The furry pelt of muffalo. Recognizable by its distinctive blue tint. Good at temperature regulation in cold climates.]],
    statBases = {
      MarketValue = 2.3,
      StuffPower_Insulation_Cold = 20,
    },
    stuffProps = {
      statFactors = {
        Beauty = 1.3,
      },
    },
  },

  ["ThingDef:Leather_Bear"] = {
    _ = {
      ParentName = "LeatherBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff_Leather.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Leather_Bear",
    label = "bearskin",
    description = [[The strong furry leather of a bear. Compared to most leather, it is quite a bit tougher and a bit better at all kinds of temperature regulation.]],
    statBases = {
      MarketValue = 3.4,
      StuffPower_Armor_Sharp = 1.12,
      StuffPower_Insulation_Cold = 20,
      StuffPower_Insulation_Heat = 20,
    },
    stuffProps = {
      statFactors = {
        Beauty = 1.9,
      },
    },
  },

  ["ThingDef:Leather_GuineaPig"] = {
    _ = {
      ParentName = "LeatherBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff_Leather.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Leather_GuineaPig",
    label = "guinea pig fur",
    description = [[Sheets of guinea pig fur. It is delicate, but luxurious.]],
    statBases = {
      MarketValue = 5,
      StuffPower_Armor_Sharp = 0.67,
      StuffPower_Armor_Blunt = 0.14,
      StuffPower_Insulation_Cold = 38,
      StuffPower_Insulation_Heat = 18,
    },
    stuffProps = {
      statFactors = {
        MaxHitPoints = 0.6,
        Beauty = 2.8,
      },
    },
  },

  ["ThingDef:Leather_Human"] = {
    _ = {
      ParentName = "LeatherBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff_Leather.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Leather_Human",
    label = "human leather",
    description = [[Tanned, dried, scraped human skin. Most people find this material horrifying. Some find it fascinating. While a decent leather, it neither protects nor insulates particularly well.]],
    statBases = {
      MarketValue = 4.2,
      StuffPower_Armor_Sharp = 0.64,
      StuffPower_Insulation_Cold = 12,
      StuffPower_Insulation_Heat = 12,
    },
  },

  ["ThingDef:Leather_Pig"] = {
    _ = {
      ParentName = "LeatherBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff_Leather.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Leather_Pig",
    label = "pigskin",
    description = [[Tanned, dried, scraped pig skin. While a decent leather, it neither protects nor insulates particularly well.]],
    statBases = {
      MarketValue = 1.9,
      StuffPower_Armor_Sharp = 0.64,
      StuffPower_Insulation_Cold = 12,
      StuffPower_Insulation_Heat = 12,
    },
  },

  ["ThingDef:Leather_Light"] = {
    _ = {
      ParentName = "LeatherBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff_Leather.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Leather_Light",
    label = "lightleather",
    description = [[Lightweight, thin leather. Probably harvested from a small animal. Not as protective as thicker leathers.]],
    statBases = {
      MarketValue = 1.9,
      StuffPower_Armor_Sharp = 0.54,
      StuffPower_Armor_Blunt = 0.14,
      StuffPower_Insulation_Cold = 12,
      StuffPower_Insulation_Heat = 12,
    },
    stuffProps = {
      statFactors = {
        MaxHitPoints = 1.0,
      },
    },
  },

  ["ThingDef:Leather_Bird"] = {
    _ = {
      ParentName = "LeatherBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff_Leather.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Leather_Bird",
    label = "birdskin",
    description = [[Tanned, dried, scraped bird skin. It is quite delicate. Without its feathers, it provides little protection from heat or cold.]],
    statBases = {
      MarketValue = 1.8,
      StuffPower_Armor_Sharp = 0.67,
      StuffPower_Armor_Blunt = 0.14,
      StuffPower_Insulation_Cold = 10,
      StuffPower_Insulation_Heat = 10,
    },
    stuffProps = {
      statFactors = {
        MaxHitPoints = 1.0,
      },
    },
  },

  ["ThingDef:Leather_Chinchilla"] = {
    _ = {
      ParentName = "LeatherBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff_Leather.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Leather_Chinchilla",
    label = "chinchilla fur",
    description = [[Tanned, dried, scraped chinchilla skin. Known as an extremely luxurious and insulating fur, it is exceptionally valuable.]],
    statBases = {
      MarketValue = 6.5,
      StuffPower_Armor_Sharp = 0.67,
      StuffPower_Armor_Blunt = 0.14,
      StuffPower_Insulation_Cold = 30,
      StuffPower_Insulation_Heat = 16,
    },
    stuffProps = {
      statFactors = {
        MaxHitPoints = 1.0,
        Beauty = 3.6,
      },
    },
  },

  ["ThingDef:Leather_Fox"] = {
    _ = {
      ParentName = "LeatherBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff_Leather.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Leather_Fox",
    label = "foxfur",
    description = [[The pelt of a fox. It protects well from the cold and is quite luxurious, fetching a high price.]],
    statBases = {
      MarketValue = 3.5,
      StuffPower_Armor_Sharp = 0.81,
      StuffPower_Armor_Blunt = 0.21,
      StuffPower_Insulation_Cold = 20,
    },
    stuffProps = {
      statFactors = {
        MaxHitPoints = 1.0,
        Beauty = 2.0,
      },
    },
  },

  ["ThingDef:Leather_Lizard"] = {
    _ = {
      ParentName = "LeatherBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff_Leather.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Leather_Lizard",
    label = "lizardskin",
    description = [[The tanned skin of a cold-blooded reptile. Lizardskin is reasonably tough, but does not insulate well at all.]],
    statBases = {
      MarketValue = 2.1,
      StuffPower_Armor_Sharp = 0.81,
      StuffPower_Armor_Blunt = 0.27,
      StuffPower_Insulation_Cold = 12,
      StuffPower_Insulation_Heat = 12,
    },
    stuffProps = {
      statFactors = {
        MaxHitPoints = 1.0,
        Beauty = 1.2,
      },
    },
  },

  ["ThingDef:Leather_Elephant"] = {
    _ = {
      ParentName = "LeatherBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff_Leather.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Leather_Elephant",
    label = "elephant leather",
    description = [[Tanned, dried, scraped elephant skin. While quite tough, it is a poor insulator.]],
    statBases = {
      MarketValue = 3.0,
      StuffPower_Armor_Sharp = 1.12,
      StuffPower_Insulation_Cold = 14,
      StuffPower_Insulation_Heat = 12,
    },
    stuffProps = {
      statFactors = {
        MaxHitPoints = 1.5,
        Beauty = 1.6,
      },
    },
  },

  ["ThingDef:Leather_Heavy"] = {
    _ = {
      ParentName = "LeatherBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff_Leather.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Leather_Heavy",
    label = "heavy fur",
    description = [[Thick leather covered in a long, rugged mat of fur. Harvested from a large, hardy animal. This thick skin insulates and protects very well.]],
    statBases = {
      MarketValue = 3.3,
      StuffPower_Armor_Sharp = 1.24,
      StuffPower_Insulation_Cold = 30,
      StuffPower_Insulation_Heat = 14,
    },
    stuffProps = {
      statFactors = {
        MaxHitPoints = 1.5,
        Beauty = 1.85,
      },
    },
  },

  ["ThingDef:Leather_Rhinoceros"] = {
    _ = {
      ParentName = "LeatherBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff_Leather.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Leather_Rhinoceros",
    label = "rhinoceros leather",
    description = [[Tanned, dried, scraped rhinocerous skin. It is exceptionally durable in combat, but provides little protection from weather.]],
    statBases = {
      MarketValue = 4.2,
      StuffPower_Armor_Sharp = 1.29,
      StuffPower_Insulation_Cold = 14,
      StuffPower_Insulation_Heat = 14,
    },
    stuffProps = {
      statFactors = {
        MaxHitPoints = 1.5,
        Beauty = 2.4,
      },
    },
  },

  ["ThingDef:Leather_Thrumbo"] = {
    _ = {
      ParentName = "LeatherBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff_Leather.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Leather_Thrumbo",
    label = "thrumbofur",
    description = [[Furry pelt of a thrumbo. Luxurious and extraordinarily durable. Used for the highest-quality crafts for its insulation and strength.]],
    statBases = {
      MarketValue = 14.0,
      StuffPower_Armor_Sharp = 2.08,
      StuffPower_Armor_Blunt = 0.36,
      StuffPower_Insulation_Cold = 34,
      StuffPower_Insulation_Heat = 22,
    },
    stuffProps = {
      statFactors = {
        MaxHitPoints = 2.0,
        Beauty = 8,
      },
    },
  },

  ["ThingDef:Leather_Patch"] = {
    _ = {
      ParentName = "LeatherBase",
      DefCategory = "ThingDef",
      FileName = "Items_Resource_Stuff_Leather.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Leather_Patch",
    label = "patchleather",
    description = [[A weak textile created by cutting up and sewing together various types of leathers. Regardless of what kind of leather is used to create it, patchleather's irregular seams make it less tough and less insulating than any intact leather.]],
    statBases = {
      MarketValue = 1.5,
      StuffPower_Armor_Sharp = 0.45,
      StuffPower_Armor_Blunt = 0.19,
      StuffPower_Armor_Heat = 0.9,
      StuffPower_Insulation_Cold = 9,
      StuffPower_Insulation_Heat = 9,
    },
    stuffProps = {
      statFactors = {
        MaxHitPoints = 1.0,
      },
    },
  },

  ["ThingDef:UnfinishedBase"] = {
    _ = {
      Name = "UnfinishedBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Items_Unfinished.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    thingClass = "UnfinishedThing",
    category = "Item",
    label = "unfinished thing",
    altitudeLayer = "Item",
    useHitPoints = true,
    tradeability = "None",
    statBases = {
      MaxHitPoints = 50,
      DeteriorationRate = 2.0,
      Beauty = -8,
      Mass = 1,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Forbiddable",
        },
      },
    },
    pathCost = 14,
    thingCategories = {
      "Unfinished",
    },
  },

  ["ThingDef:UnfinishedSculpture"] = {
    _ = {
      ParentName = "UnfinishedBase",
      DefCategory = "ThingDef",
      FileName = "Items_Unfinished.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "UnfinishedSculpture",
    label = "unfinished sculpture",
    description = [[An unfinished sculpture.]],
  },

  ["ThingDef:UnfinishedGun"] = {
    _ = {
      ParentName = "UnfinishedBase",
      DefCategory = "ThingDef",
      FileName = "Items_Unfinished.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "UnfinishedGun",
    label = "unfinished gun",
    description = [[An unfinished gun of some kind.]],
    statBases = {
      Flammability = 0.5,
    },
  },

  ["ThingDef:UnfinishedWeapon"] = {
    _ = {
      ParentName = "UnfinishedBase",
      DefCategory = "ThingDef",
      FileName = "Items_Unfinished.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "UnfinishedWeapon",
    label = "unfinished weapon",
    description = [[An unfinished weapon.]],
  },

  ["ThingDef:UnfinishedArmor"] = {
    _ = {
      ParentName = "UnfinishedBase",
      DefCategory = "ThingDef",
      FileName = "Items_Unfinished.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "UnfinishedArmor",
    label = "unfinished simple armor",
    description = [[An unfinished piece of simple armor.]],
  },

  ["ThingDef:UnfinishedTechArmor"] = {
    _ = {
      Name = "UnfinishedTechArmor",
      ParentName = "UnfinishedBase",
      DefCategory = "ThingDef",
      FileName = "Items_Unfinished.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "UnfinishedTechArmor",
    label = "unfinished advanced armor",
    description = [[An unfinished piece of high-tech armor.]],
    statBases = {
      Flammability = 0.4,
    },
  },

  ["ThingDef:UnfinishedMetallicTechArmor"] = {
    _ = {
      ParentName = "UnfinishedTechArmor",
      DefCategory = "ThingDef",
      FileName = "Items_Unfinished.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "UnfinishedMetallicTechArmor",
    label = "unfinished metal armor",
    description = [[An unfinished piece of metal armor.]],
  },

  ["ThingDef:UnfinishedApparel"] = {
    _ = {
      ParentName = "UnfinishedBase",
      DefCategory = "ThingDef",
      FileName = "Items_Unfinished.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "UnfinishedApparel",
    label = "unfinished apparel",
    description = [[An unfinished piece of an apparel.]],
    comps = {
      {
        compClass = "CompColorable",
      },
    },
  },

  ["ThingDef:UnfinishedBelt"] = {
    _ = {
      ParentName = "UnfinishedBase",
      DefCategory = "ThingDef",
      FileName = "Items_Unfinished.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "UnfinishedBelt",
    label = "unfinished belt",
    description = [[An unfinished piece of a belt.]],
    statBases = {
      Flammability = 0.5,
    },
  },

  ["ThingDef:UnfinishedPack"] = {
    _ = {
      ParentName = "UnfinishedBase",
      DefCategory = "ThingDef",
      FileName = "Items_Unfinished.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "UnfinishedPack",
    label = "unfinished pack",
    description = [[An unfinished piece of a pack.]],
    statBases = {
      Flammability = 0.5,
    },
  },

  ["ThingDef:UnfinishedComponent"] = {
    _ = {
      ParentName = "UnfinishedBase",
      DefCategory = "ThingDef",
      FileName = "Items_Unfinished.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "UnfinishedComponent",
    label = "unfinished component",
    description = [[An unfinished component.]],
    statBases = {
      Flammability = 0.5,
    },
  },

  ["ThingDef:UnfinishedHealthItemProsthetic"] = {
    _ = {
      ParentName = "UnfinishedBase",
      DefCategory = "ThingDef",
      FileName = "Items_Unfinished.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "UnfinishedHealthItemProsthetic",
    label = "unfinished prosthetic",
    description = [[An unfinished prosthetic.]],
    statBases = {
      Flammability = 0.5,
    },
  },

  ["ThingDef:UnfinishedHealthItemBionic"] = {
    _ = {
      ParentName = "UnfinishedBase",
      DefCategory = "ThingDef",
      FileName = "Items_Unfinished.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "UnfinishedHealthItemBionic",
    label = "unfinished bionic",
    description = [[An unfinished bionic.]],
    statBases = {
      Flammability = 0.5,
    },
  },

  ["ThingDef:MinifiedThing"] = {
    _ = {
      DefCategory = "ThingDef",
      FileName = "Items_Unfinished.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "MinifiedThing",
    label = "minified thing",
    thingClass = "MinifiedThing",
    category = "Item",
    useHitPoints = true,
    altitudeLayer = "Item",
    comps = {
      {
        _ = {
          Class = "CompProperties_Forbiddable",
        },
      },
    },
    pathCost = 14,
  },

  ["ThingDef:Apparel_ShieldBelt"] = {
    _ = {
      ParentName = "ApparelBase",
      DefCategory = "ThingDef",
      FileName = "Apparel_Belts.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Apparel_ShieldBelt",
    label = "shield belt",
    description = [[A projectile-repulsion device. It will attempt to stop incoming projectiles or shrapnel, but does nothing against melee attacks or heat. It prevents the wearer from firing out, and shuts down instantly if hit by EMP.]],
    thingClass = "ShieldBelt",
    statBases = {
      Mass = 3,
      WorkToMake = 14000,
      Flammability = 0.4,
      EnergyShieldRechargeRate = 0.13,
      EnergyShieldEnergyMax = 1.1,
      EquipDelay = 2,
    },
    costList = {
      ComponentIndustrial = 2,
      Steel = 50,
      Plasteel = 20,
    },
    recipeMaker = {
      unfinishedThingDef = "UnfinishedBelt",
      researchPrerequisite = "ShieldBelt",
      workSpeedStat = "GeneralLaborSpeed",
      workSkill = "Crafting",
      effectWorking = "Smith",
      soundWorking = "Recipe_Machining",
      recipeUsers = {
        "TableMachining",
      },
      useIngredientsForColor = false,
      skillRequirements = {
        Crafting = 6,
      },
    },
    thingCategories = {
      "ApparelUtility",
    },
    apparel = {
      bodyPartGroups = {
        "Waist",
      },
      layers = {
        "Belt",
      },
      tags = {
        "BeltDefense",
      },
    },
  },

  ["ThingDef:HatBase"] = {
    _ = {
      Name = "HatBase",
      ParentName = "ApparelBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Apparel_Headgear.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    thingCategories = {
      "Headgear",
    },
  },

  ["ThingDef:HatMakeableBase"] = {
    _ = {
      Name = "HatMakeableBase",
      ParentName = "ApparelMakeableBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Apparel_Headgear.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    thingCategories = {
      "Headgear",
    },
  },

  ["ThingDef:ArmorHelmetMakeableBase"] = {
    _ = {
      Name = "ArmorHelmetMakeableBase",
      ParentName = "ArmorMachineableBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Apparel_Headgear.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    thingCategories = {
      "ArmorHeadgear",
    },
  },

  ["ThingDef:NobleHatMakeableBase"] = {
    _ = {
      Name = "NobleHatMakeableBase",
      ParentName = "ApparelMakeableBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Apparel_Headgear.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    thingCategories = {
      "HeadgearNoble",
    },
  },

  ["ThingDef:Apparel_CowboyHat"] = {
    _ = {
      ParentName = "HatMakeableBase",
      Name = "CowboyHat",
      DefCategory = "ThingDef",
      FileName = "Apparel_Headgear.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Apparel_CowboyHat",
    label = "cowboy hat",
    description = [[Stylish yet rugged, this hat keeps the sun and rain off - and it gives anyone who wears it a bit of extra charm. It is the most important part of traditional western attire.]],
    recipeMaker = {
      researchPrerequisite = "ComplexClothing",
    },
    statBases = {
      MaxHitPoints = 80,
      WorkToMake = 1800,
      Mass = 0.14,
      StuffEffectMultiplierArmor = 0.2,
      StuffEffectMultiplierInsulation_Cold = 0.10,
      StuffEffectMultiplierInsulation_Heat = 0.50,
      EquipDelay = 0.8,
    },
    apparel = {
      bodyPartGroups = {
        "UpperHead",
      },
      layers = {
        "Overhead",
      },
      tags = {
        "IndustrialBasic",
        "Western",
      },
      defaultOutfitTags = {
        "Worker",
      },
    },
  },

  ["ThingDef:Apparel_BowlerHat"] = {
    _ = {
      ParentName = "CowboyHat",
      DefCategory = "ThingDef",
      FileName = "Apparel_Headgear.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Apparel_BowlerHat",
    label = "bowler hat",
    description = [[A good-looking hat which projects a slightly urban, money-loving style. Improves social impact.]],
    statBases = {
      WorkToMake = 1800,
      Mass = 0.14,
      StuffEffectMultiplierArmor = 0.2,
      StuffEffectMultiplierInsulation_Cold = 0.10,
      StuffEffectMultiplierInsulation_Heat = 0.40,
      EquipDelay = 0.8,
    },
  },

  ["ThingDef:Apparel_TribalHeaddress"] = {
    _ = {
      ParentName = "HatMakeableBase",
      DefCategory = "ThingDef",
      FileName = "Apparel_Headgear.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Apparel_TribalHeaddress",
    label = "tribal headdress",
    description = [[Elegant traditional garb, often with religious significance. Improves social impact.]],
    recipeMaker = {
      researchPrerequisite = {},
      recipeUsers = {
        "ElectricTailoringBench",
        "HandTailoringBench",
        "CraftingSpot",
      },
      skillRequirements = {
        Crafting = 4,
      },
      factionPrerequisiteTags = {
        "Tribal",
      },
    },
    statBases = {
      WorkToMake = 6000,
      Mass = 0.11,
      StuffEffectMultiplierArmor = 0.2,
      StuffEffectMultiplierInsulation_Cold = 0.1,
      StuffEffectMultiplierInsulation_Heat = 0.15,
      EquipDelay = 1.5,
    },
    apparel = {
      bodyPartGroups = {
        "UpperHead",
      },
      layers = {
        "Overhead",
      },
      defaultOutfitTags = {
        "Worker",
      },
    },
  },

  ["ThingDef:Apparel_Tuque"] = {
    _ = {
      ParentName = "HatMakeableBase",
      DefCategory = "ThingDef",
      FileName = "Apparel_Headgear.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Apparel_Tuque",
    label = "tuque",
    description = [[A soft, thick cap. Great for keeping warm in winter.]],
    statBases = {
      MaxHitPoints = 80,
      WorkToMake = 1200,
      Mass = 0.07,
      StuffEffectMultiplierArmor = 0.2,
      StuffEffectMultiplierInsulation_Cold = 0.50,
      StuffEffectMultiplierInsulation_Heat = 0,
      EquipDelay = 0.8,
    },
    apparel = {
      bodyPartGroups = {
        "UpperHead",
      },
      layers = {
        "Overhead",
      },
      tags = {
        "IndustrialBasic",
      },
      defaultOutfitTags = {
        "Worker",
        "Soldier",
      },
    },
  },

  ["ThingDef:Apparel_WarMask"] = {
    _ = {
      ParentName = "HatMakeableBase",
      DefCategory = "ThingDef",
      FileName = "Apparel_Headgear.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Apparel_WarMask",
    label = "war mask",
    description = [[An artistically terrifying war mask. It hides the wearer's face and makes them more confident.]],
    statBases = {
      WorkToMake = 3000,
      MaxHitPoints = 80,
      Mass = 1.4,
      StuffEffectMultiplierArmor = 0.3,
      StuffEffectMultiplierInsulation_Cold = 0.05,
      StuffEffectMultiplierInsulation_Heat = 0.05,
      EquipDelay = 1.5,
    },
    apparel = {
      bodyPartGroups = {
        "FullHead",
      },
      layers = {
        "Overhead",
      },
      defaultOutfitTags = {
        "Soldier",
      },
    },
    recipeMaker = {
      workSpeedStat = "GeneralLaborSpeed",
      workSkill = "Crafting",
      effectWorking = "Sculpt",
      soundWorking = "Recipe_Sculpt",
      recipeUsers = {
        "CraftingSpot",
      },
      unfinishedThingDef = "UnfinishedSculpture",
      factionPrerequisiteTags = {
        "Tribal",
      },
    },
  },

  ["ThingDef:Apparel_WarVeil"] = {
    _ = {
      ParentName = "HatMakeableBase",
      DefCategory = "ThingDef",
      FileName = "Apparel_Headgear.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Apparel_WarVeil",
    label = "war veil",
    description = [[A war veil, made out of reinforced cloth torn to appear damaged in combat. Some believe this functions as a talisman of courage.]],
    statBases = {
      WorkToMake = 1400,
      MaxHitPoints = 80,
      Mass = 0.08,
      StuffEffectMultiplierArmor = 0.2,
      StuffEffectMultiplierInsulation_Cold = 0.05,
      StuffEffectMultiplierInsulation_Heat = 0.05,
      EquipDelay = 1.5,
    },
    apparel = {
      bodyPartGroups = {
        "FullHead",
      },
      layers = {
        "Overhead",
      },
      defaultOutfitTags = {
        "Soldier",
      },
    },
    recipeMaker = {
      recipeUsers = {
        "CraftingSpot",
      },
      factionPrerequisiteTags = {
        "Tribal",
      },
    },
  },

  ["ThingDef:Apparel_SimpleHelmet"] = {
    _ = {
      ParentName = "ArmorHelmetMakeableBase",
      DefCategory = "ThingDef",
      FileName = "Apparel_Headgear.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Apparel_SimpleHelmet",
    label = "simple helmet",
    description = [[A simple helmet which gives moderate protection against sharp attacks. Not effective against blunt weapons.]],
    statBases = {
      WorkToMake = 3200,
      MaxHitPoints = 100,
      Mass = 2,
      StuffEffectMultiplierArmor = 0.5,
      StuffEffectMultiplierInsulation_Cold = 0.15,
      StuffEffectMultiplierInsulation_Heat = 0,
      EquipDelay = 1.5,
    },
    recipeMaker = {
      recipeUsers = {
        "ElectricSmithy",
        "FueledSmithy",
      },
    },
    apparel = {
      bodyPartGroups = {
        "UpperHead",
      },
      layers = {
        "Overhead",
      },
      tags = {
        "IndustrialMilitaryBasic",
      },
      defaultOutfitTags = {
        "Soldier",
      },
    },
  },

  ["ThingDef:Apparel_AdvancedHelmet"] = {
    _ = {
      ParentName = "ArmorHelmetMakeableBase",
      DefCategory = "ThingDef",
      FileName = "Apparel_Headgear.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Apparel_AdvancedHelmet",
    label = "flak helmet",
    description = [[A lightweight combat helmet with a complex design, reinforced with plasteel. Not effective against blunt weapons.]],
    recipeMaker = {
      researchPrerequisite = "FlakArmor",
      unfinishedThingDef = "UnfinishedMetallicTechArmor",
      skillRequirements = {
        Crafting = 5,
      },
    },
    statBases = {
      WorkToMake = 8000,
      MaxHitPoints = 120,
      Mass = 1.2,
      StuffEffectMultiplierArmor = 0.7,
      StuffEffectMultiplierInsulation_Cold = 0.15,
      StuffEffectMultiplierInsulation_Heat = 0,
      EquipDelay = 1.5,
    },
    costList = {
      ComponentIndustrial = 2,
      Plasteel = 10,
    },
    apparel = {
      bodyPartGroups = {
        "UpperHead",
      },
      layers = {
        "Overhead",
      },
      tags = {
        "IndustrialMilitaryAdvanced",
      },
      defaultOutfitTags = {
        "Soldier",
      },
    },
  },

  ["ThingDef:ApparelArmorHelmetPowerBase"] = {
    _ = {
      Name = "ApparelArmorHelmetPowerBase",
      ParentName = "ArmorHelmetMakeableBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Apparel_Headgear.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    recipeMaker = {
      unfinishedThingDef = "UnfinishedTechArmor",
      researchPrerequisite = "PoweredArmor",
      skillRequirements = {
        Crafting = 7,
      },
      recipeUsers = {
        _ = {
          Inherit = false,
        },
        "FabricationBench",
      },
    },
    tradeTags = {
      "HiTechArmor",
    },
    statBases = {
      WorkToMake = 21000,
      MaxHitPoints = 150,
      Mass = 1.5,
      Flammability = 0.4,
      ArmorRating_Sharp = 1.06,
      ArmorRating_Blunt = 0.45,
      ArmorRating_Heat = 0.54,
      Insulation_Cold = 4,
      Insulation_Heat = 2,
      EquipDelay = 4,
    },
    costList = {
      ComponentSpacer = 1,
      Plasteel = 40,
    },
    apparel = {
      bodyPartGroups = {
        "FullHead",
      },
      layers = {
        "Overhead",
      },
      defaultOutfitTags = {
        "Soldier",
      },
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_BiocodableApparel",
        },
      },
    },
  },

  ["ThingDef:Apparel_PowerArmorHelmet"] = {
    _ = {
      ParentName = "ApparelArmorHelmetPowerBase",
      DefCategory = "ThingDef",
      FileName = "Apparel_Headgear.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Apparel_PowerArmorHelmet",
    label = "marine helmet",
    description = [[A marine armor helmet, with a built-in status computer and layered plasteel-weave plates.\n\nArmor like this is often used by imperial janissaries and rapid-incursion space marines.]],
    apparel = {
      tags = {
        "SpacerMilitary",
      },
    },
  },

  ["ThingDef:ApparelArmorHelmetReconBase"] = {
    _ = {
      Name = "ApparelArmorHelmetReconBase",
      ParentName = "ArmorHelmetMakeableBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Apparel_Headgear.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    recipeMaker = {
      unfinishedThingDef = "UnfinishedTechArmor",
      researchPrerequisite = "ReconArmor",
      skillRequirements = {
        Crafting = 6,
      },
      recipeUsers = {
        _ = {
          Inherit = false,
        },
        "FabricationBench",
      },
    },
    tradeTags = {
      "HiTechArmor",
    },
    statBases = {
      WorkToMake = 15750,
      MaxHitPoints = 120,
      Mass = 1,
      Flammability = 0.4,
      ArmorRating_Sharp = 0.92,
      ArmorRating_Blunt = 0.4,
      ArmorRating_Heat = 0.46,
      Insulation_Cold = 4,
      Insulation_Heat = 2,
      EquipDelay = 2,
    },
    costList = {
      ComponentSpacer = 1,
      Plasteel = 30,
    },
    apparel = {
      bodyPartGroups = {
        "FullHead",
      },
      layers = {
        "Overhead",
      },
      defaultOutfitTags = {
        "Soldier",
      },
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_BiocodableApparel",
        },
      },
    },
  },

  ["ThingDef:Apparel_ArmorHelmetRecon"] = {
    _ = {
      ParentName = "ApparelArmorHelmetReconBase",
      DefCategory = "ThingDef",
      FileName = "Apparel_Headgear.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Apparel_ArmorHelmetRecon",
    label = "recon helmet",
    description = [[A high-tech armored helmet with a built-in status computer and a protective plasteel-weave plate.\n\nArmor like this is often used by imperial scout troops or glitterworld police forces.]],
    apparel = {
      tags = {
        "SpacerMilitary",
      },
    },
  },

  ["ThingDef:Apparel_PsychicFoilHelmet"] = {
    _ = {
      ParentName = "HatBase",
      DefCategory = "ThingDef",
      FileName = "Apparel_Headgear.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Apparel_PsychicFoilHelmet",
    label = "psychic foil helmet",
    description = [[A thin helmet containing finely-tuned sheets of psychically-absorptive foil. Reduces the impact of psychic waves.]],
    statBases = {
      MaxHitPoints = 80,
      MarketValue = 250,
      Mass = 1.0,
      Flammability = 0.4,
      ArmorRating_Sharp = 0.09,
      ArmorRating_Blunt = 0.09,
      ArmorRating_Heat = 0.27,
      Insulation_Cold = 2,
      Insulation_Heat = 1,
      EquipDelay = 1.5,
    },
    apparel = {
      bodyPartGroups = {
        "UpperHead",
      },
      layers = {
        "Overhead",
      },
      tags = {
        "IndustrialMilitaryBasic",
        "IndustrialMilitaryAdvanced",
        "SpacerMilitary",
      },
    },
  },

  ["ThingDef:Apparel_SmokepopBelt"] = {
    _ = {
      ParentName = "ApparelBase",
      DefCategory = "ThingDef",
      FileName = "Apparel_Packs.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    thingClass = "SmokepopBelt",
    defName = "Apparel_SmokepopBelt",
    label = "smokepop pack",
    description = [[A defensive smokescreen. When activated, it will release a cloud of smoke, obscuring incoming shots and preventing turrets from locking on.]],
    comps = {
      {
        _ = {
          Class = "CompProperties_Reloadable",
        },
        maxCharges = 3,
        ammoDef = "Chemfuel",
        ammoCountToRefill = 10,
        baseReloadTicks = 60,
        soundReload = "Standard_Reload",
        hotKey = "Misc4",
        chargeNoun = "smokepop",
        displayGizmoWhileUndrafted = false,
      },
    },
    verbs = {
      {
        verbClass = "Verb_Smokepop",
        label = "pop smoke",
        violent = false,
        targetable = false,
        nonInterruptingSelfCast = true,
        onlyManualCast = true,
      },
    },
    recipeMaker = {
      unfinishedThingDef = "UnfinishedPack",
      researchPrerequisite = "SmokepopBelt",
      recipeUsers = {
        "TableMachining",
      },
      useIngredientsForColor = false,
      workSpeedStat = "GeneralLaborSpeed",
      workSkill = "Crafting",
      effectWorking = "Smith",
      soundWorking = "Recipe_Smith",
      skillRequirements = {
        Crafting = 3,
      },
    },
    costList = {
      ComponentIndustrial = 1,
      Steel = 20,
      Chemfuel = 40,
    },
    statBases = {
      WorkToMake = 1200,
      Mass = 3,
      Flammability = 0.4,
      SmokepopBeltRadius = 4.9,
      EquipDelay = 2,
    },
    thingCategories = {
      "ApparelUtility",
    },
    apparel = {
      bodyPartGroups = {
        "Waist",
      },
      layers = {
        "Belt",
      },
      tags = {
        "BeltDefensePop",
      },
    },
  },

  ["ThingDef:Apparel_PsychicShockLance"] = {
    _ = {
      ParentName = "ApparelNoQualityBase",
      DefCategory = "ThingDef",
      FileName = "Apparel_Utility.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Apparel_PsychicShockLance",
    label = "psychic shock lance",
    description = [[A limited-use psychic effector. It shocks the target's mind with chaotic images, blocking coherent perception and dropping him into a state of psychic shock. There is a risk of brain damage. It has a long range, but requires line of sight.]],
    tradeTags = {
      "Artifact",
    },
    statBases = {
      Mass = 0.5,
      EquipDelay = 2,
      MarketValue = 550,
      MaxHitPoints = 80,
    },
    thingCategories = {
      "ApparelUtility",
    },
    apparel = {
      bodyPartGroups = {
        "Waist",
      },
      layers = {
        "Belt",
      },
    },
    smeltable = false,
    verbs = {
      {
        verbClass = "Verb_CastTargetEffect",
        label = "psychic shock lance",
        targetable = true,
        onlyManualCast = true,
        range = 34.9,
        warmupTime = 0.5,
        targetParams = {
          canTargetBuildings = false,
          onlyTargetPsychicSensitive = true,
          neverTargetIncapacitated = true,
        },
      },
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Reloadable",
        },
        maxCharges = 2,
        destroyOnEmpty = true,
        hotKey = "Misc4",
        chargeNoun = "charge",
        displayGizmoWhileUndrafted = false,
      },
      {
        compClass = "CompTargetEffect_PsychicShock",
      },
      {
        _ = {
          Class = "CompProperties_TargetEffect_BrainDamageChance",
        },
        brainDamageChance = 0.3,
      },
      {
        _ = {
          Class = "CompProperties_TargetEffect_GoodwillImpact",
        },
        goodwillImpact = -200,
      },
      {
        _ = {
          Class = "CompProperties_TargetEffect_MoteOnTarget",
        },
        moteDef = "Mote_PsycastPsychicEffect",
      },
      {
        _ = {
          Class = "CompProperties_TargetEffect_MoteConnecting",
        },
        moteDef = "Mote_PsycastPsychicLine",
      },
    },
  },

  ["ThingDef:Apparel_PsychicInsanityLance"] = {
    _ = {
      ParentName = "ApparelNoQualityBase",
      DefCategory = "ThingDef",
      FileName = "Apparel_Utility.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Apparel_PsychicInsanityLance",
    label = "psychic insanity lance",
    description = [[A limited-use psychic effector. It overwhelms the target's mind with terrifying perceptual distortions, driving him into a berserk state. There is a risk of brain damage. It has a long range, but requires line of sight.]],
    tradeTags = {
      "Artifact",
    },
    statBases = {
      Mass = 0.5,
      EquipDelay = 2,
      MarketValue = 650,
      MaxHitPoints = 80,
    },
    thingCategories = {
      "ApparelUtility",
    },
    apparel = {
      bodyPartGroups = {
        "Waist",
      },
      layers = {
        "Belt",
      },
    },
    smeltable = false,
    verbs = {
      {
        verbClass = "Verb_CastTargetEffect",
        label = "psychic insanity lance",
        targetable = true,
        onlyManualCast = true,
        range = 34.9,
        warmupTime = 0.5,
        targetParams = {
          canTargetBuildings = false,
          onlyTargetPsychicSensitive = true,
          neverTargetIncapacitated = true,
        },
      },
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Reloadable",
        },
        maxCharges = 2,
        destroyOnEmpty = true,
        hotKey = "Misc4",
        chargeNoun = "charge",
        displayGizmoWhileUndrafted = false,
      },
      {
        compClass = "CompTargetEffect_Berserk",
      },
      {
        _ = {
          Class = "CompProperties_TargetEffect_BrainDamageChance",
        },
        brainDamageChance = 0.3,
      },
      {
        _ = {
          Class = "CompProperties_TargetEffect_GoodwillImpact",
        },
        goodwillImpact = -200,
      },
      {
        _ = {
          Class = "CompProperties_TargetEffect_MoteOnTarget",
        },
        moteDef = "Mote_PsycastPsychicEffect",
      },
      {
        _ = {
          Class = "CompProperties_TargetEffect_MoteConnecting",
        },
        moteDef = "Mote_PsycastPsychicLine",
      },
    },
  },

  ["ThingDef:ApparelNoQualityBase"] = {
    _ = {
      Name = "ApparelNoQualityBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Apparel_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    thingClass = "Apparel",
    category = "Item",
    pathCost = 14,
    useHitPoints = true,
    statBases = {
      MaxHitPoints = 100,
      Flammability = 1.0,
      DeteriorationRate = 2,
      Beauty = -3,
    },
    altitudeLayer = "Item",
    smeltable = true,
    comps = {
      {
        _ = {
          Class = "CompProperties_Forbiddable",
        },
      },
      {
        compClass = "CompColorable",
      },
    },
  },

  ["ThingDef:ApparelBase"] = {
    _ = {
      Name = "ApparelBase",
      ParentName = "ApparelNoQualityBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Apparel_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    comps = {
      {
        compClass = "CompQuality",
      },
    },
  },

  ["ThingDef:ApparelMakeableBase"] = {
    _ = {
      Name = "ApparelMakeableBase",
      ParentName = "ApparelBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Apparel_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    recipeMaker = {
      workSpeedStat = "GeneralLaborSpeed",
      workSkill = "Crafting",
      effectWorking = "Tailor",
      soundWorking = "Recipe_Tailor",
      recipeUsers = {
        "ElectricTailoringBench",
        "HandTailoringBench",
      },
      unfinishedThingDef = "UnfinishedApparel",
      defaultIngredientFilter = {
        categories = {
          "Root",
        },
        disallowedThingDefs = {
          "Gold",
          "Silver",
          "Plasteel",
          "Jade",
          "Uranium",
        },
      },
    },
  },

  ["ThingDef:ArmorSmithableBase"] = {
    _ = {
      Name = "ArmorSmithableBase",
      ParentName = "ApparelBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Apparel_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    smeltable = true,
    recipeMaker = {
      workSpeedStat = "GeneralLaborSpeed",
      workSkill = "Crafting",
      effectWorking = "Smith",
      soundWorking = "Recipe_Smith",
      recipeUsers = {
        "ElectricSmithy",
        "FueledSmithy",
      },
      defaultIngredientFilter = {
        categories = {
          "Root",
        },
        disallowedThingDefs = {
          "Gold",
          "Silver",
          "Plasteel",
          "Jade",
          "Uranium",
        },
      },
    },
  },

  ["ThingDef:ArmorMachineableBase"] = {
    _ = {
      Name = "ArmorMachineableBase",
      ParentName = "ApparelBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Apparel_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    recipeMaker = {
      workSpeedStat = "GeneralLaborSpeed",
      workSkill = "Crafting",
      effectWorking = "Smith",
      soundWorking = "Recipe_Machining",
      recipeUsers = {
        "TableMachining",
      },
      unfinishedThingDef = "UnfinishedArmor",
      defaultIngredientFilter = {
        categories = {
          "Root",
        },
        disallowedThingDefs = {
          "Gold",
          "Silver",
          "Plasteel",
          "Jade",
          "Uranium",
        },
      },
    },
  },

  ["ThingDef:Apparel_TribalA"] = {
    _ = {
      ParentName = "ApparelMakeableBase",
      DefCategory = "ThingDef",
      FileName = "Apparel_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Apparel_TribalA",
    label = "tribalwear",
    description = [[A full-body garment crafted using neolithic tools. While it may look primitive, it is effective at insulating the wearer.]],
    tradeability = "Sellable",
    statBases = {
      MaxHitPoints = 100,
      WorkToMake = 1800,
      Mass = 0.5,
      StuffEffectMultiplierArmor = 0.2,
      StuffEffectMultiplierInsulation_Cold = 0.55,
      StuffEffectMultiplierInsulation_Heat = 0.55,
      EquipDelay = 1.5,
    },
    thingCategories = {
      "Apparel",
    },
    apparel = {
      bodyPartGroups = {
        "Torso",
        "Legs",
      },
      layers = {
        "OnSkin",
      },
      tags = {
        "Neolithic",
      },
    },
    recipeMaker = {
      recipeUsers = {
        "ElectricTailoringBench",
        "HandTailoringBench",
        "CraftingSpot",
      },
    },
  },

  ["ThingDef:Apparel_Parka"] = {
    _ = {
      ParentName = "ApparelMakeableBase",
      DefCategory = "ThingDef",
      FileName = "Apparel_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Apparel_Parka",
    label = "parka",
    description = [[A parka for staying warm in even the coldest of temperatures.]],
    thingCategories = {
      "Apparel",
    },
    statBases = {
      MaxHitPoints = 180,
      WorkToMake = 8000,
      Mass = 2,
      StuffEffectMultiplierArmor = 0.2,
      StuffEffectMultiplierInsulation_Cold = 2.00,
      StuffEffectMultiplierInsulation_Heat = 0.00,
      EquipDelay = 3,
    },
    apparel = {
      bodyPartGroups = {
        "Torso",
        "Neck",
        "Shoulders",
        "Arms",
      },
      layers = {
        "Shell",
      },
      tags = {
        "IndustrialBasic",
        "Neolithic",
      },
      defaultOutfitTags = {
        "Worker",
        "Soldier",
      },
    },
  },

  ["ThingDef:Apparel_Pants"] = {
    _ = {
      ParentName = "ApparelMakeableBase",
      DefCategory = "ThingDef",
      FileName = "Apparel_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Apparel_Pants",
    label = "pants",
    description = [[A simple set of pants.]],
    recipeMaker = {
      researchPrerequisite = "ComplexClothing",
    },
    thingCategories = {
      "Apparel",
    },
    statBases = {
      MaxHitPoints = 100,
      WorkToMake = 1600,
      Mass = 0.5,
      StuffEffectMultiplierArmor = 0.2,
      StuffEffectMultiplierInsulation_Cold = 0.20,
      StuffEffectMultiplierInsulation_Heat = 0.08,
      EquipDelay = 2,
    },
    apparel = {
      bodyPartGroups = {
        "Legs",
      },
      layers = {
        "OnSkin",
      },
      tags = {
        "IndustrialBasic",
      },
      defaultOutfitTags = {
        "Worker",
        "Soldier",
      },
    },
  },

  ["ThingDef:Apparel_BasicShirt"] = {
    _ = {
      ParentName = "ApparelMakeableBase",
      DefCategory = "ThingDef",
      FileName = "Apparel_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Apparel_BasicShirt",
    label = "T-shirt",
    description = [[A simple T-shirt.]],
    thingCategories = {
      "Apparel",
    },
    statBases = {
      MaxHitPoints = 100,
      WorkToMake = 1600,
      Mass = 0.25,
      StuffEffectMultiplierArmor = 0.2,
      StuffEffectMultiplierInsulation_Cold = 0.22,
      StuffEffectMultiplierInsulation_Heat = 0.10,
      EquipDelay = 1.5,
    },
    apparel = {
      bodyPartGroups = {
        "Torso",
        "Shoulders",
      },
      layers = {
        "OnSkin",
      },
      tags = {
        "IndustrialBasic",
      },
      defaultOutfitTags = {
        "Worker",
        "Soldier",
      },
    },
  },

  ["ThingDef:Apparel_CollarShirt"] = {
    _ = {
      ParentName = "ApparelMakeableBase",
      DefCategory = "ThingDef",
      FileName = "Apparel_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Apparel_CollarShirt",
    description = [[A nice-looking collared shirt with buttons.]],
    label = "button-down shirt",
    recipeMaker = {
      researchPrerequisite = "ComplexClothing",
    },
    thingCategories = {
      "Apparel",
    },
    statBases = {
      MaxHitPoints = 100,
      WorkToMake = 2700,
      Mass = 0.3,
      StuffEffectMultiplierArmor = 0.2,
      StuffEffectMultiplierInsulation_Cold = 0.26,
      StuffEffectMultiplierInsulation_Heat = 0.10,
      EquipDelay = 1.5,
    },
    apparel = {
      bodyPartGroups = {
        "Torso",
        "Neck",
        "Shoulders",
        "Arms",
      },
      layers = {
        "OnSkin",
      },
      tags = {
        "IndustrialBasic",
      },
      defaultOutfitTags = {
        "Worker",
        "Soldier",
      },
    },
  },

  ["ThingDef:Apparel_Duster"] = {
    _ = {
      ParentName = "ApparelMakeableBase",
      DefCategory = "ThingDef",
      FileName = "Apparel_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Apparel_Duster",
    description = [[A long duster coat for blocking the sun and grit of the outdoors.]],
    label = "duster",
    recipeMaker = {
      researchPrerequisite = "ComplexClothing",
    },
    thingCategories = {
      "Apparel",
    },
    statBases = {
      MaxHitPoints = 200,
      WorkToMake = 10000,
      Mass = 2,
      StuffEffectMultiplierArmor = 0.3,
      StuffEffectMultiplierInsulation_Cold = 0.60,
      StuffEffectMultiplierInsulation_Heat = 0.85,
      EquipDelay = 3,
    },
    apparel = {
      bodyPartGroups = {
        "Torso",
        "Neck",
        "Shoulders",
        "Arms",
        "Legs",
      },
      layers = {
        "Shell",
      },
      tags = {
        "IndustrialAdvanced",
      },
      defaultOutfitTags = {
        "Worker",
      },
    },
  },

  ["ThingDef:Apparel_Jacket"] = {
    _ = {
      ParentName = "ApparelMakeableBase",
      DefCategory = "ThingDef",
      FileName = "Apparel_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Apparel_Jacket",
    label = "jacket",
    description = [[A tough jacket to stop scrapes and bruises, and to keep one warm in chilly weather.]],
    thingCategories = {
      "Apparel",
    },
    statBases = {
      MaxHitPoints = 160,
      WorkToMake = 7000,
      Mass = 1.7,
      StuffEffectMultiplierArmor = 0.3,
      StuffEffectMultiplierInsulation_Cold = 0.80,
      StuffEffectMultiplierInsulation_Heat = 0.30,
      EquipDelay = 1.5,
    },
    apparel = {
      bodyPartGroups = {
        "Torso",
        "Neck",
        "Shoulders",
        "Arms",
      },
      layers = {
        "Shell",
      },
      tags = {
        "IndustrialAdvanced",
      },
      defaultOutfitTags = {
        "Worker",
      },
    },
  },

  ["ThingDef:Apparel_PlateArmor"] = {
    _ = {
      ParentName = "ArmorSmithableBase",
      DefCategory = "ThingDef",
      FileName = "Apparel_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Apparel_PlateArmor",
    label = "plate armor",
    description = [[Overlapping solid plates of armor covering the entire body from neck to feet.]],
    recipeMaker = {
      unfinishedThingDef = "UnfinishedMetallicTechArmor",
      researchPrerequisite = "PlateArmor",
      skillRequirements = {
        Crafting = 7,
      },
    },
    statBases = {
      WorkToMake = 38000,
      MaxHitPoints = 290,
      Mass = 15,
      StuffEffectMultiplierArmor = 0.73,
      StuffEffectMultiplierInsulation_Cold = 1.0,
      StuffEffectMultiplierInsulation_Heat = 0,
      EquipDelay = 15,
    },
    thingCategories = {
      "ApparelArmor",
    },
    apparel = {
      bodyPartGroups = {
        "Torso",
        "Neck",
        "Shoulders",
        "Arms",
        "Legs",
      },
      layers = {
        "Middle",
        "Shell",
      },
      tags = {
        "MedievalMilitary",
      },
      defaultOutfitTags = {
        "Soldier",
      },
    },
  },

  ["ThingDef:Apparel_FlakVest"] = {
    _ = {
      ParentName = "ArmorMachineableBase",
      DefCategory = "ThingDef",
      FileName = "Apparel_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Apparel_FlakVest",
    label = "flak vest",
    description = [[A vest with armor plates inserted on the chest and back. While quite effective at deflecting gunshots and stabbing attacks against the chest, it does nothing to protect the limbs.]],
    recipeMaker = {
      researchPrerequisite = "FlakArmor",
      unfinishedThingDef = "UnfinishedTechArmor",
      skillRequirements = {
        Crafting = 4,
      },
    },
    statBases = {
      WorkToMake = 9000,
      MaxHitPoints = 200,
      Mass = 4,
      Flammability = 0.6,
      ArmorRating_Sharp = 1.00,
      ArmorRating_Blunt = 0.36,
      ArmorRating_Heat = 0.27,
      Insulation_Cold = 1,
      EquipDelay = 5,
    },
    thingCategories = {
      "ApparelArmor",
    },
    costList = {
      Cloth = 30,
      Steel = 60,
      ComponentIndustrial = 1,
    },
    apparel = {
      bodyPartGroups = {
        "Torso",
        "Neck",
        "Shoulders",
      },
      layers = {
        "Middle",
      },
      tags = {
        "IndustrialMilitaryBasic",
      },
      defaultOutfitTags = {
        "Soldier",
      },
    },
  },

  ["ThingDef:Apparel_FlakPants"] = {
    _ = {
      ParentName = "ArmorMachineableBase",
      DefCategory = "ThingDef",
      FileName = "Apparel_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Apparel_FlakPants",
    label = "flak pants",
    description = [[A pair of pants with armor plates sewn in. While it's not as good as solid armor, it offers effective protection against all manner of attacks while remaining quite comfortable.]],
    recipeMaker = {
      researchPrerequisite = "FlakArmor",
      unfinishedThingDef = "UnfinishedTechArmor",
      skillRequirements = {
        Crafting = 4,
      },
    },
    statBases = {
      WorkToMake = 9000,
      MaxHitPoints = 200,
      Mass = 4,
      Flammability = 0.6,
      ArmorRating_Sharp = 0.40,
      ArmorRating_Blunt = 0.08,
      ArmorRating_Heat = 0.10,
      Insulation_Cold = 3.5,
      Insulation_Heat = 1,
      EquipDelay = 5,
    },
    thingCategories = {
      "ApparelArmor",
    },
    costList = {
      Cloth = 30,
      Steel = 60,
      ComponentIndustrial = 1,
    },
    apparel = {
      bodyPartGroups = {
        "Legs",
      },
      layers = {
        "OnSkin",
        "Middle",
      },
      tags = {
        "IndustrialMilitaryBasic",
      },
      defaultOutfitTags = {
        "Soldier",
      },
    },
  },

  ["ThingDef:Apparel_FlakJacket"] = {
    _ = {
      ParentName = "ArmorMachineableBase",
      DefCategory = "ThingDef",
      FileName = "Apparel_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Apparel_FlakJacket",
    label = "flak jacket",
    description = [[A tough fabric jacket with armor plates sewn in. While it's not as good as solid armor, it offers effective protection against all manner of attacks while remaining quite comfortable.]],
    recipeMaker = {
      researchPrerequisite = "FlakArmor",
      unfinishedThingDef = "UnfinishedTechArmor",
      skillRequirements = {
        Crafting = 4,
      },
    },
    costList = {
      Cloth = 50,
      Steel = 70,
      ComponentIndustrial = 1,
    },
    thingCategories = {
      "ApparelArmor",
    },
    statBases = {
      MaxHitPoints = 200,
      WorkToMake = 14000,
      Mass = 7,
      Flammability = 0.6,
      ArmorRating_Sharp = 0.40,
      ArmorRating_Blunt = 0.08,
      ArmorRating_Heat = 0.10,
      Insulation_Cold = 14.4,
      Insulation_Heat = 3,
      EquipDelay = 3,
    },
    apparel = {
      bodyPartGroups = {
        "Torso",
        "Neck",
        "Shoulders",
        "Arms",
      },
      layers = {
        "Shell",
      },
      tags = {
        "IndustrialAdvanced",
      },
      defaultOutfitTags = {
        "Soldier",
      },
    },
  },

  ["ThingDef:ApparelArmorPowerBase"] = {
    _ = {
      Name = "ApparelArmorPowerBase",
      ParentName = "ArmorMachineableBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Apparel_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    recipeMaker = {
      unfinishedThingDef = "UnfinishedTechArmor",
      researchPrerequisite = "PoweredArmor",
      skillRequirements = {
        Crafting = 7,
      },
      recipeUsers = {
        _ = {
          Inherit = false,
        },
        "FabricationBench",
      },
    },
    statBases = {
      WorkToMake = 60000,
      MaxHitPoints = 340,
      Mass = 12,
      Flammability = 0.4,
      ArmorRating_Sharp = 1.06,
      ArmorRating_Blunt = 0.45,
      ArmorRating_Heat = 0.54,
      Insulation_Cold = 34,
      Insulation_Heat = 10,
      EquipDelay = 14,
    },
    thingCategories = {
      "ApparelArmor",
    },
    tradeTags = {
      "HiTechArmor",
    },
    costList = {
      ComponentSpacer = 4,
      Plasteel = 100,
      Uranium = 20,
    },
    apparel = {
      bodyPartGroups = {
        "Torso",
        "Neck",
        "Shoulders",
        "Arms",
        "Legs",
      },
      layers = {
        "Middle",
        "Shell",
      },
      defaultOutfitTags = {
        "Soldier",
      },
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_BiocodableApparel",
        },
      },
    },
  },

  ["ThingDef:Apparel_PowerArmor"] = {
    _ = {
      ParentName = "ApparelArmorPowerBase",
      DefCategory = "ThingDef",
      FileName = "Apparel_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Apparel_PowerArmor",
    label = "marine armor",
    description = [[A suit of powered armor. Layered plasteel-weave plates are very effective at stopping attacks, with few vulnerable joint sections. Neuro-memetic assistors allow a human to wear the armor and still move easily.\n\nArmor like this is often used by imperial janissaries and rapid-incursion space marines.]],
    apparel = {
      tags = {
        "SpacerMilitary",
      },
    },
  },

  ["ThingDef:ApparelArmorReconBase"] = {
    _ = {
      Name = "ApparelArmorReconBase",
      ParentName = "ArmorMachineableBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Apparel_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    recipeMaker = {
      unfinishedThingDef = "UnfinishedTechArmor",
      researchPrerequisite = "ReconArmor",
      skillRequirements = {
        Crafting = 6,
      },
      recipeUsers = {
        _ = {
          Inherit = false,
        },
        "FabricationBench",
      },
    },
    tradeTags = {
      "HiTechArmor",
    },
    statBases = {
      WorkToMake = 45000,
      MaxHitPoints = 280,
      Mass = 9,
      Flammability = 0.4,
      ArmorRating_Sharp = 0.92,
      ArmorRating_Blunt = 0.4,
      ArmorRating_Heat = 0.46,
      Insulation_Cold = 32,
      Insulation_Heat = 9,
      EquipDelay = 11,
    },
    thingCategories = {
      "ApparelArmor",
    },
    costList = {
      ComponentSpacer = 3,
      Plasteel = 80,
      Uranium = 10,
    },
    apparel = {
      bodyPartGroups = {
        "Torso",
        "Neck",
        "Shoulders",
        "Arms",
        "Legs",
      },
      layers = {
        "Middle",
        "Shell",
      },
      defaultOutfitTags = {
        "Soldier",
      },
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_BiocodableApparel",
        },
      },
    },
  },

  ["ThingDef:Apparel_ArmorRecon"] = {
    _ = {
      ParentName = "ApparelArmorReconBase",
      DefCategory = "ThingDef",
      FileName = "Apparel_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Apparel_ArmorRecon",
    label = "recon armor",
    description = [[A suit of light partially-powered armor, designed to permit quick movement. Lightweight plasteel-weave plates block attacks without compromising mobility, and neuro-memetic assistors in the lower body allow a human to wear the armor and still move easily.\n\nArmor like this is often used by imperial scout troops and glitterworld police forces.]],
    apparel = {
      tags = {
        "SpacerMilitary",
      },
    },
  },

  ["ThingDef:OrbitalStrikeBase"] = {
    _ = {
      Abstract = true,
      Name = "OrbitalStrikeBase",
      ParentName = "EtherealThingBase",
      DefCategory = "ThingDef",
      FileName = "Ethereal_OrbitalStrikes.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    thingClass = "OrbitalStrike",
  },

  ["ThingDef:Bombardment"] = {
    _ = {
      ParentName = "OrbitalStrikeBase",
      DefCategory = "ThingDef",
      FileName = "Ethereal_OrbitalStrikes.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Bombardment",
    label = "bombardment",
    thingClass = "Bombardment",
    comps = {
      {
        _ = {
          Class = "CompProperties_OrbitalBeam",
        },
        width = 0.2,
        color = "(255, 20, 20, 242)",
      },
    },
  },

  ["ThingDef:Mote_Bombardment_PreImpact"] = {
    _ = {
      ParentName = "MoteBase",
      DefCategory = "ThingDef",
      FileName = "Ethereal_OrbitalStrikes.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Mote_Bombardment_PreImpact",
    altitudeLayer = "MoteOverhead",
  },

  ["ThingDef:PowerBeam"] = {
    _ = {
      ParentName = "OrbitalStrikeBase",
      DefCategory = "ThingDef",
      FileName = "Ethereal_OrbitalStrikes.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "PowerBeam",
    label = "power beam",
    thingClass = "PowerBeam",
    comps = {
      {
        _ = {
          Class = "CompProperties_OrbitalBeam",
        },
        width = 8,
        color = "(255, 245, 214, 242)",
        sound = "OrbitalBeam",
      },
      {
        _ = {
          Class = "CompProperties_CameraShaker",
        },
        mag = 0.03,
      },
      {
        _ = {
          Class = "CompProperties_AffectsSky",
        },
        skyColors = {
          sky = "(255, 230, 200)",
          shadow = "(225, 220, 185)",
          overlay = "(255, 255, 255)",
          saturation = 1.3,
        },
      },
    },
  },

  ["ThingDef:SignalAction_Letter"] = {
    _ = {
      ParentName = "SignalActionBase",
      DefCategory = "ThingDef",
      FileName = "Ethereal_SignalActions.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "SignalAction_Letter",
    label = "signal action - letter",
    thingClass = "SignalAction_Letter",
  },

  ["ThingDef:SignalAction_Ambush"] = {
    _ = {
      ParentName = "SignalActionBase",
      DefCategory = "ThingDef",
      FileName = "Ethereal_SignalActions.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "SignalAction_Ambush",
    label = "signal action - ambush",
    thingClass = "SignalAction_Ambush",
  },

  ["ThingDef:SkyfallerBase"] = {
    _ = {
      Name = "SkyfallerBase",
      ParentName = "EtherealThingBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Ethereal_Skyfallers.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    thingClass = "Skyfaller",
    useHitPoints = false,
    altitudeLayer = "Skyfaller",
  },

  ["ThingDef:DropPodIncoming"] = {
    _ = {
      ParentName = "SkyfallerBase",
      DefCategory = "ThingDef",
      FileName = "Ethereal_Skyfallers.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "DropPodIncoming",
    label = "drop pod (incoming)",
    thingClass = "DropPodIncoming",
  },

  ["ThingDef:DropPodLeaving"] = {
    _ = {
      ParentName = "SkyfallerBase",
      DefCategory = "ThingDef",
      FileName = "Ethereal_Skyfallers.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "DropPodLeaving",
    label = "drop pod (leaving)",
    thingClass = "DropPodLeaving",
  },

  ["ThingDef:ShipChunkIncoming"] = {
    _ = {
      ParentName = "SkyfallerBase",
      DefCategory = "ThingDef",
      FileName = "Ethereal_Skyfallers.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "ShipChunkIncoming",
    label = "ship chunk (incoming)",
    size = {2, 2},
  },

  ["ThingDef:CrashedShipPartIncoming"] = {
    _ = {
      ParentName = "SkyfallerBase",
      DefCategory = "ThingDef",
      FileName = "Ethereal_Skyfallers.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "CrashedShipPartIncoming",
    label = "crashed ship part (incoming)",
    size = {6, 3},
  },

  ["ThingDef:MeteoriteIncoming"] = {
    _ = {
      ParentName = "SkyfallerBase",
      DefCategory = "ThingDef",
      FileName = "Ethereal_Skyfallers.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "MeteoriteIncoming",
    label = "meteorite (incoming)",
    size = {2, 2},
  },

  ["ThingDef:EtherealThingBase"] = {
    _ = {
      Abstract = true,
      Name = "EtherealThingBase",
      DefCategory = "ThingDef",
      FileName = "Ethereal_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    category = "Ethereal",
    useHitPoints = false,
  },

  ["ThingDef:RectTrigger"] = {
    _ = {
      ParentName = "EtherealThingBase",
      DefCategory = "ThingDef",
      FileName = "Ethereal_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "RectTrigger",
    label = "rect trigger",
    thingClass = "RectTrigger",
  },

  ["ThingDef:TriggerUnfogged"] = {
    _ = {
      ParentName = "EtherealThingBase",
      DefCategory = "ThingDef",
      FileName = "Ethereal_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "TriggerUnfogged",
    label = "trigger unfogged",
    thingClass = "TriggerUnfogged",
  },

  ["ThingDef:Explosion"] = {
    _ = {
      ParentName = "EtherealThingBase",
      DefCategory = "ThingDef",
      FileName = "Ethereal_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Explosion",
    label = "explosion",
    thingClass = "Explosion",
  },

  ["ThingDef:Blight"] = {
    _ = {
      ParentName = "EtherealThingBase",
      DefCategory = "ThingDef",
      FileName = "Ethereal_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Blight",
    label = "blight",
    thingClass = "Blight",
  },

  ["ThingDef:Tornado"] = {
    _ = {
      ParentName = "EtherealThingBase",
      DefCategory = "ThingDef",
      FileName = "Ethereal_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Tornado",
    label = "tornado",
    thingClass = "Tornado",
    comps = {
      {
        _ = {
          Class = "CompProperties_WindSource",
        },
      },
    },
  },

  ["ThingDef:TunnelHiveSpawner"] = {
    _ = {
      ParentName = "EtherealThingBase",
      DefCategory = "ThingDef",
      FileName = "Ethereal_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "TunnelHiveSpawner",
    label = "tunnel",
    thingClass = "TunnelHiveSpawner",
  },

  ["ThingDef:PawnFlyerBase"] = {
    _ = {
      Name = "PawnFlyerBase",
      Abstract = true,
      ParentName = "EtherealThingBase",
      DefCategory = "ThingDef",
      FileName = "Ethereal_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    label = "flying",
    thingClass = "PawnFlyer",
    useHitPoints = false,
    altitudeLayer = "Skyfaller",
  },

  ["ThingDef:BaseFilth"] = {
    _ = {
      Name = "BaseFilth",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Filth_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    thingClass = "Filth",
    category = "Filth",
    altitudeLayer = "Filth",
    useHitPoints = false,
    statBases = {
      Beauty = -15,
      Cleanliness = -5,
    },
  },

  ["ThingDef:Filth_Dirt"] = {
    _ = {
      ParentName = "BaseFilth",
      DefCategory = "ThingDef",
      FileName = "Filth_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Filth_Dirt",
    label = "dirt",
  },

  ["ThingDef:Filth_AnimalFilth"] = {
    _ = {
      ParentName = "BaseFilth",
      DefCategory = "ThingDef",
      FileName = "Filth_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Filth_AnimalFilth",
    label = "animal filth",
  },

  ["ThingDef:Filth_Trash"] = {
    _ = {
      ParentName = "BaseFilth",
      DefCategory = "ThingDef",
      FileName = "Filth_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Filth_Trash",
    label = "trash",
  },

  ["ThingDef:Filth_Sand"] = {
    _ = {
      ParentName = "BaseFilth",
      DefCategory = "ThingDef",
      FileName = "Filth_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Filth_Sand",
    label = "sand",
  },

  ["ThingDef:Filth_RubbleRock"] = {
    _ = {
      ParentName = "BaseFilth",
      DefCategory = "ThingDef",
      FileName = "Filth_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Filth_RubbleRock",
    label = "rock rubble",
  },

  ["ThingDef:Filth_RubbleBuilding"] = {
    _ = {
      ParentName = "BaseFilth",
      DefCategory = "ThingDef",
      FileName = "Filth_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Filth_RubbleBuilding",
    label = "building rubble",
  },

  ["ThingDef:SlagRubble"] = {
    _ = {
      ParentName = "BaseFilth",
      DefCategory = "ThingDef",
      FileName = "Filth_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "SlagRubble",
    label = "scattered slag",
  },

  ["ThingDef:SandbagRubble"] = {
    _ = {
      ParentName = "BaseFilth",
      DefCategory = "ThingDef",
      FileName = "Filth_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "SandbagRubble",
    label = "scattered sandbags",
  },

  ["ThingDef:Filth_Blood"] = {
    _ = {
      ParentName = "BaseFilth",
      DefCategory = "ThingDef",
      FileName = "Filth_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Filth_Blood",
    label = "blood",
    statBases = {
      Beauty = -30,
      Cleanliness = -10,
    },
  },

  ["ThingDef:Filth_BloodInsect"] = {
    _ = {
      ParentName = "BaseFilth",
      DefCategory = "ThingDef",
      FileName = "Filth_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Filth_BloodInsect",
    label = "bugblood",
    statBases = {
      Beauty = -40,
      Cleanliness = -15,
    },
  },

  ["ThingDef:Filth_MachineBits"] = {
    _ = {
      ParentName = "BaseFilth",
      DefCategory = "ThingDef",
      FileName = "Filth_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Filth_MachineBits",
    label = "machine bits",
    statBases = {
      Beauty = -10,
      Cleanliness = -5,
    },
  },

  ["ThingDef:Filth_AmnioticFluid"] = {
    _ = {
      ParentName = "BaseFilth",
      DefCategory = "ThingDef",
      FileName = "Filth_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Filth_AmnioticFluid",
    label = "amniotic fluid",
    statBases = {
      Beauty = -30,
      Cleanliness = -5,
    },
  },

  ["ThingDef:Filth_Slime"] = {
    _ = {
      ParentName = "BaseFilth",
      DefCategory = "ThingDef",
      FileName = "Filth_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Filth_Slime",
    label = "slime",
    statBases = {
      Beauty = -25,
      Cleanliness = -5,
    },
  },

  ["ThingDef:Filth_Vomit"] = {
    _ = {
      ParentName = "BaseFilth",
      DefCategory = "ThingDef",
      FileName = "Filth_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Filth_Vomit",
    label = "vomit",
    statBases = {
      Beauty = -40,
      Cleanliness = -15,
    },
  },

  ["ThingDef:Filth_FireFoam"] = {
    _ = {
      ParentName = "BaseFilth",
      DefCategory = "ThingDef",
      FileName = "Filth_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Filth_FireFoam",
    label = "firefoam",
    statBases = {
      Beauty = -25,
      Cleanliness = -5,
    },
  },

  ["ThingDef:Filth_Fuel"] = {
    _ = {
      ParentName = "BaseFilth",
      DefCategory = "ThingDef",
      FileName = "Filth_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Filth_Fuel",
    label = "chemfuel puddle",
    description = [[A puddle of flammable chemfuel.]],
    thingClass = "LiquidFuel",
    useHitPoints = true,
    statBases = {
      Beauty = -10,
      Cleanliness = -15,
      MaxHitPoints = 150,
      Flammability = 2.0,
    },
  },

  ["ThingDef:Filth_CorpseBile"] = {
    _ = {
      ParentName = "BaseFilth",
      DefCategory = "ThingDef",
      FileName = "Filth_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Filth_CorpseBile",
    label = "corpse bile",
    statBases = {
      Beauty = -50,
      Cleanliness = -20,
    },
  },

  ["ThingDef:Filth_Ash"] = {
    _ = {
      ParentName = "BaseFilth",
      DefCategory = "ThingDef",
      FileName = "Filth_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Filth_Ash",
    label = "ash",
    statBases = {
      Beauty = -12,
      Cleanliness = -15,
    },
  },

  ["ThingDef:Filth_Water"] = {
    _ = {
      ParentName = "BaseFilth",
      DefCategory = "ThingDef",
      FileName = "Filth_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Filth_Water",
    label = "water puddle",
    statBases = {
      Beauty = -10,
      Cleanliness = -5,
    },
  },

  ["ThingDef:BaseGas"] = {
    _ = {
      Name = "BaseGas",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Gas_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    thingClass = "Gas",
    label = "gas",
    category = "Gas",
    altitudeLayer = "Gas",
    useHitPoints = false,
  },

  ["ThingDef:Gas_Smoke"] = {
    _ = {
      ParentName = "BaseGas",
      DefCategory = "ThingDef",
      FileName = "Gas_Various.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Gas_Smoke",
    label = "smoke",
  },

  ["ThingDef:ActiveDropPod"] = {
    _ = {
      DefCategory = "ThingDef",
      FileName = "Things_Special.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "ActiveDropPod",
    label = "drop pod",
    category = "Item",
    thingClass = "ActiveDropPod",
    altitudeLayer = "Building",
    useHitPoints = true,
    statBases = {
      MaxHitPoints = 500,
      Flammability = 0,
    },
  },

  ["ThingDef:Fire"] = {
    _ = {
      DefCategory = "ThingDef",
      FileName = "Things_Special.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Fire",
    label = "fire",
    thingClass = "Fire",
    category = "Attachment",
    altitudeLayer = "PawnState",
    useHitPoints = false,
  },

  ["ThingDef:Spark"] = {
    _ = {
      DefCategory = "ThingDef",
      FileName = "Things_Special.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Spark",
    label = "spark",
    category = "Projectile",
    thingClass = "Spark",
    altitudeLayer = "Projectile",
    useHitPoints = false,
    projectile = {
      alwaysFreeIntercept = true,
      speed = 1.5,
    },
  },

  ["ThingDef:ChunkBase"] = {
    _ = {
      Name = "ChunkBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Various_Stone.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    category = "Item",
    thingClass = "Thing",
    altitudeLayer = "Item",
    passability = "PassThroughOnly",
    fillPercent = 0.50,
    statBases = {
      MaxHitPoints = 300,
      Flammability = 0,
      Beauty = -8,
      Cleanliness = -2,
    },
    pathCost = 42,
    pathCostIgnoreRepeat = true,
    stackLimit = 1,
    tradeability = "None",
  },

  ["ThingDef:ChunkRockBase"] = {
    _ = {
      ParentName = "ChunkBase",
      Name = "ChunkRockBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Various_Stone.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    description = [[A chunk of rock. Can be cut into usable stone blocks.]],
    thingCategories = {
      "StoneChunks",
    },
  },

  ["ThingDef:StoneBlocksBase"] = {
    _ = {
      ParentName = "ResourceBase",
      Name = "StoneBlocksBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Various_Stone.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    description = [[Blocks of stone. Mostly useful for building long-lasting, simple structures.]],
    useHitPoints = false,
    tradeability = "Buyable",
    statBases = {
      MaxHitPoints = 200,
      MarketValue = 0.9,
      SharpDamageMultiplier = 0.6,
      BluntDamageMultiplier = 1.0,
      Beauty = -12,
      ConstructionSpeedFactor = 0.8,
    },
    thingCategories = {
      "StoneBlocks",
    },
    stuffProps = {
      categories = {
        "Stony",
      },
      statOffsets = {
        WorkToBuild = 140,
      },
      statFactors = {
        MarketValue = 0.4,
        MaxHitPoints = 1.8,
        Flammability = 0,
        WorkToBuild = 6.0,
        WorkToMake = 1.3,
        DoorOpenSpeed = 0.45,
        BedRestEffectiveness = 0.9,
        MeleeWeapon_CooldownMultiplier = 1.30,
      },
    },
    terrainAffordanceNeeded = "Heavy",
  },

  ["ThingDef:UglyRockBase"] = {
    _ = {
      Name = "UglyRockBase",
      ParentName = "RockBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Various_Stone.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    statBases = {
      Flammability = 0,
      Beauty = -2,
    },
  },

  ["ThingDef:ChunkSlagSteel"] = {
    _ = {
      ParentName = "ChunkBase",
      DefCategory = "ThingDef",
      FileName = "Various_Stone.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "ChunkSlagSteel",
    label = "steel slag chunk",
    description = [[A chunk of steel slag. While it's useless in its current form, it can be smelted to recover steel.]],
    statBases = {
      Mass = 5,
    },
    thingCategories = {
      "Chunks",
    },
    smeltProducts = {
      Steel = 15,
    },
  },

  ["ThingDef:Sandstone"] = {
    _ = {
      ParentName = "UglyRockBase",
      Name = "SandstoneBase",
      DefCategory = "ThingDef",
      FileName = "Various_Stone.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Sandstone",
    label = "sandstone",
    description = [[A sedimentary rock composed of sand particles compressed together.]],
    statBases = {
      MaxHitPoints = 400,
    },
    building = {
      mineableThing = "ChunkSandstone",
    },
  },

  ["ThingDef:SmoothedSandstone"] = {
    _ = {
      ParentName = "SandstoneBase",
      DefCategory = "ThingDef",
      FileName = "Various_Stone.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "SmoothedSandstone",
    label = "smoothed sandstone",
    description = [[A sedimentary rock composed of sand particles compressed together. The sand layers have been polished to a flat, smooth surface.]],
    statBases = {
      Beauty = 1,
      MarketValue = 18,
    },
    building = {
      isNaturalRock = false,
      artificialForMeditationPurposes = false,
    },
  },

  ["ThingDef:ChunkSandstone"] = {
    _ = {
      ParentName = "ChunkRockBase",
      DefCategory = "ThingDef",
      FileName = "Various_Stone.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "ChunkSandstone",
    label = "sandstone chunk",
    statBases = {
      Mass = 20,
    },
  },

  ["ThingDef:BlocksSandstone"] = {
    _ = {
      ParentName = "StoneBlocksBase",
      DefCategory = "ThingDef",
      FileName = "Various_Stone.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "BlocksSandstone",
    label = "sandstone blocks",
    description = [[Blocks of solid sandstone. Sandstone is a relatively soft rock and chips easily.]],
    statBases = {
      Mass = 1,
      SharpDamageMultiplier = 0.5,
    },
    stuffProps = {
      statFactors = {
        Beauty = 1.1,
        MaxHitPoints = 1.4,
        WorkToBuild = 5.0,
        WorkToMake = 1.1,
      },
    },
  },

  ["ThingDef:Granite"] = {
    _ = {
      ParentName = "UglyRockBase",
      Name = "GraniteBase",
      DefCategory = "ThingDef",
      FileName = "Various_Stone.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Granite",
    label = "granite",
    description = [[A very hard igneous rock.]],
    statBases = {
      MaxHitPoints = 900,
    },
    building = {
      mineableThing = "ChunkGranite",
    },
  },

  ["ThingDef:SmoothedGranite"] = {
    _ = {
      ParentName = "GraniteBase",
      DefCategory = "ThingDef",
      FileName = "Various_Stone.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "SmoothedGranite",
    label = "smoothed granite",
    description = [[A very hard igneous rock. The shining surface is filled with a mosaic of black, white, and pink speckles.]],
    statBases = {
      Beauty = 1,
      MarketValue = 20,
    },
    building = {
      isNaturalRock = false,
      artificialForMeditationPurposes = false,
    },
  },

  ["ThingDef:ChunkGranite"] = {
    _ = {
      ParentName = "ChunkRockBase",
      DefCategory = "ThingDef",
      FileName = "Various_Stone.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "ChunkGranite",
    label = "granite chunk",
    statBases = {
      Mass = 25,
    },
  },

  ["ThingDef:BlocksGranite"] = {
    _ = {
      ParentName = "StoneBlocksBase",
      DefCategory = "ThingDef",
      FileName = "Various_Stone.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "BlocksGranite",
    label = "granite blocks",
    description = [[Blocks of solid granite. Granite is a very hard stone.]],
    statBases = {
      Mass = 1.25,
      SharpDamageMultiplier = 0.65,
    },
    stuffProps = {
      statFactors = {
        MaxHitPoints = 1.7,
      },
    },
  },

  ["ThingDef:Limestone"] = {
    _ = {
      ParentName = "UglyRockBase",
      Name = "LimestoneBase",
      DefCategory = "ThingDef",
      FileName = "Various_Stone.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Limestone",
    label = "limestone",
    description = [[A sedimentary rock formed from the compacted remains of ancient seashells.]],
    statBases = {
      MaxHitPoints = 700,
    },
    building = {
      mineableThing = "ChunkLimestone",
    },
  },

  ["ThingDef:SmoothedLimestone"] = {
    _ = {
      ParentName = "LimestoneBase",
      DefCategory = "ThingDef",
      FileName = "Various_Stone.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "SmoothedLimestone",
    label = "smoothed limestone",
    description = [[A sedimentary rock formed from the compacted remains of ancient seashells. It glows a smooth white, with light patterns of impurities suspended within.]],
    statBases = {
      Beauty = 1,
      MarketValue = 20,
    },
    building = {
      isNaturalRock = false,
      artificialForMeditationPurposes = false,
    },
  },

  ["ThingDef:ChunkLimestone"] = {
    _ = {
      ParentName = "ChunkRockBase",
      DefCategory = "ThingDef",
      FileName = "Various_Stone.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "ChunkLimestone",
    label = "limestone chunk",
    statBases = {
      Mass = 22,
    },
  },

  ["ThingDef:BlocksLimestone"] = {
    _ = {
      ParentName = "StoneBlocksBase",
      DefCategory = "ThingDef",
      FileName = "Various_Stone.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "BlocksLimestone",
    label = "limestone blocks",
    description = [[Blocks of solid limestone.]],
    statBases = {
      Mass = 1.1,
    },
    stuffProps = {
      statFactors = {
        MaxHitPoints = 1.55,
      },
    },
  },

  ["ThingDef:Slate"] = {
    _ = {
      ParentName = "UglyRockBase",
      Name = "SlateBase",
      DefCategory = "ThingDef",
      FileName = "Various_Stone.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Slate",
    label = "slate",
    description = [[A dark-colored metamorphic rock. Its fine layers are emblematic of slaty cleavage.]],
    statBases = {
      MaxHitPoints = 500,
    },
    building = {
      mineableThing = "ChunkSlate",
    },
  },

  ["ThingDef:SmoothedSlate"] = {
    _ = {
      ParentName = "SlateBase",
      DefCategory = "ThingDef",
      FileName = "Various_Stone.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "SmoothedSlate",
    label = "smoothed slate",
    description = [[A dark-colored metamorphic rock. Its fine layers are emblematic of slaty cleavage. Interior strata are clearly visible through the polished surface.]],
    statBases = {
      Beauty = 1,
      MarketValue = 20,
    },
    building = {
      isNaturalRock = false,
      artificialForMeditationPurposes = false,
    },
  },

  ["ThingDef:ChunkSlate"] = {
    _ = {
      ParentName = "ChunkRockBase",
      DefCategory = "ThingDef",
      FileName = "Various_Stone.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "ChunkSlate",
    label = "slate chunk",
    statBases = {
      Mass = 18,
    },
  },

  ["ThingDef:BlocksSlate"] = {
    _ = {
      ParentName = "StoneBlocksBase",
      DefCategory = "ThingDef",
      FileName = "Various_Stone.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "BlocksSlate",
    label = "slate blocks",
    description = [[Blocks of solid slate. A dull-looking rock that chips easily.]],
    statBases = {
      Mass = 0.9,
    },
    stuffProps = {
      statFactors = {
        Beauty = 1.1,
        MaxHitPoints = 1.3,
      },
    },
  },

  ["ThingDef:Marble"] = {
    _ = {
      ParentName = "UglyRockBase",
      Name = "MarbleBase",
      DefCategory = "ThingDef",
      FileName = "Various_Stone.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Marble",
    label = "marble",
    description = [[A soft metamorphic rock.]],
    statBases = {
      MaxHitPoints = 450,
      Beauty = -1,
    },
    building = {
      mineableThing = "ChunkMarble",
    },
  },

  ["ThingDef:SmoothedMarble"] = {
    _ = {
      ParentName = "MarbleBase",
      DefCategory = "ThingDef",
      FileName = "Various_Stone.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "SmoothedMarble",
    label = "smoothed marble",
    description = [[A soft metamorphic rock. This semi-transparent rock almost appears to glow with its own inner light.]],
    statBases = {
      Beauty = 2,
      MarketValue = 25,
    },
    building = {
      isNaturalRock = false,
      artificialForMeditationPurposes = false,
    },
  },

  ["ThingDef:ChunkMarble"] = {
    _ = {
      ParentName = "ChunkRockBase",
      DefCategory = "ThingDef",
      FileName = "Various_Stone.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "ChunkMarble",
    label = "marble chunk",
    statBases = {
      Mass = 25,
    },
  },

  ["ThingDef:BlocksMarble"] = {
    _ = {
      ParentName = "StoneBlocksBase",
      DefCategory = "ThingDef",
      FileName = "Various_Stone.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "BlocksMarble",
    label = "marble blocks",
    description = [[Blocks of solid marble. Marble is a soft, beautiful stone, known for being easy to sculpt.]],
    statBases = {
      Mass = 1.25,
    },
    stuffProps = {
      statFactors = {
        Beauty = 1.35,
        MaxHitPoints = 1.2,
        WorkToBuild = 5.5,
        WorkToMake = 1.15,
      },
      statOffsets = {
        Beauty = 1,
      },
    },
  },

  ["ThingDef:BaseWeapon"] = {
    _ = {
      Abstract = true,
      Name = "BaseWeapon",
      DefCategory = "ThingDef",
      FileName = "BaseWeapons.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    thingClass = "ThingWithComps",
    category = "Item",
    altitudeLayer = "Item",
    useHitPoints = true,
    pathCost = 14,
    statBases = {
      MaxHitPoints = 100,
      Flammability = 1.0,
      DeteriorationRate = 2,
      Beauty = -3,
      SellPriceFactor = 0.20,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Forbiddable",
        },
      },
      {
        compClass = "CompEquippable",
      },
    },
  },

  ["ThingDef:BaseGun"] = {
    _ = {
      Name = "BaseGun",
      Abstract = true,
      ParentName = "BaseWeapon",
      DefCategory = "ThingDef",
      FileName = "BaseWeapons.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    smeltable = true,
    thingCategories = {
      "WeaponsRanged",
    },
    statBases = {
      Flammability = 0.5,
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Art",
        },
        nameMaker = "NamerArtWeaponGun",
        descriptionMaker = "ArtDescription_WeaponGun",
        minQualityForArtistic = "Excellent",
      },
    },
  },

  ["ThingDef:BaseGunWithQuality"] = {
    _ = {
      Name = "BaseGunWithQuality",
      Abstract = true,
      ParentName = "BaseGun",
      DefCategory = "ThingDef",
      FileName = "BaseWeapons.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    comps = {
      {
        compClass = "CompQuality",
      },
    },
  },

  ["ThingDef:BaseMakeableGun"] = {
    _ = {
      Name = "BaseMakeableGun",
      ParentName = "BaseGunWithQuality",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "BaseWeapons.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    recipeMaker = {
      workSpeedStat = "GeneralLaborSpeed",
      workSkill = "Crafting",
      effectWorking = "Smith",
      soundWorking = "Recipe_Smith",
      recipeUsers = {
        "TableMachining",
      },
      unfinishedThingDef = "UnfinishedGun",
      researchPrerequisite = "Gunsmithing",
    },
  },

  ["ThingDef:BaseHumanMakeableGun"] = {
    _ = {
      Name = "BaseHumanMakeableGun",
      ParentName = "BaseMakeableGun",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "BaseWeapons.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    weaponTags = {
      "Gun",
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_BiocodableWeapon",
        },
      },
    },
  },

  ["ThingDef:BaseBullet"] = {
    _ = {
      Name = "BaseBullet",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "BaseWeapons.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    category = "Projectile",
    altitudeLayer = "Projectile",
    thingClass = "Bullet",
    label = "bullet",
    useHitPoints = false,
  },

  ["ThingDef:BaseMeleeWeapon"] = {
    _ = {
      Name = "BaseMeleeWeapon",
      Abstract = true,
      ParentName = "BaseWeapon",
      DefCategory = "ThingDef",
      FileName = "BaseWeapons.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    smeltable = true,
    thingCategories = {
      "WeaponsMelee",
    },
    recipeMaker = {
      workSpeedStat = "GeneralLaborSpeed",
      workSkill = "Crafting",
      effectWorking = "Smith",
      soundWorking = "Recipe_Smith",
      recipeUsers = {
        "ElectricSmithy",
        "FueledSmithy",
      },
      unfinishedThingDef = "UnfinishedWeapon",
    },
  },

  ["ThingDef:BaseMeleeWeapon_Sharp"] = {
    _ = {
      Name = "BaseMeleeWeapon_Sharp",
      ParentName = "BaseMeleeWeapon",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "BaseWeapons.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    recipeMaker = {
      defaultIngredientFilter = {
        categories = {
          "Root",
        },
        disallowedThingDefs = {
          "Silver",
          "Gold",
          "WoodLog",
        },
      },
    },
  },

  ["ThingDef:BaseMeleeWeapon_Blunt"] = {
    _ = {
      Name = "BaseMeleeWeapon_Blunt",
      ParentName = "BaseMeleeWeapon",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "BaseWeapons.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    recipeMaker = {
      defaultIngredientFilter = {
        categories = {
          "Root",
        },
        disallowedThingDefs = {
          "Silver",
          "Gold",
        },
      },
    },
  },

  ["ThingDef:BaseMeleeWeapon_Sharp_Quality"] = {
    _ = {
      Name = "BaseMeleeWeapon_Sharp_Quality",
      Abstract = true,
      ParentName = "BaseMeleeWeapon_Sharp",
      DefCategory = "ThingDef",
      FileName = "BaseWeapons.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    comps = {
      {
        compClass = "CompQuality",
      },
      {
        _ = {
          Class = "CompProperties_Art",
        },
        nameMaker = "NamerArtWeaponMelee",
        descriptionMaker = "ArtDescription_WeaponMelee",
        minQualityForArtistic = "Excellent",
      },
    },
  },

  ["ThingDef:BaseMeleeWeapon_Blunt_Quality"] = {
    _ = {
      Name = "BaseMeleeWeapon_Blunt_Quality",
      Abstract = true,
      ParentName = "BaseMeleeWeapon_Sharp",
      DefCategory = "ThingDef",
      FileName = "BaseWeapons.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    comps = {
      {
        compClass = "CompQuality",
      },
      {
        _ = {
          Class = "CompProperties_Art",
        },
        nameMaker = "NamerArtWeaponMelee",
        descriptionMaker = "ArtDescription_WeaponMelee",
        minQualityForArtistic = "Excellent",
      },
    },
  },

  ["ThingDef:MeleeWeapon_Mace"] = {
    _ = {
      ParentName = "BaseMeleeWeapon_Blunt_Quality",
      DefCategory = "ThingDef",
      FileName = "MeleeMedieval.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "MeleeWeapon_Mace",
    label = "mace",
    description = [[A refined club, engineered for efficient swinging and deadly impacts.]],
    statBases = {
      WorkToMake = 6000,
      Mass = 1.25,
    },
    recipeMaker = {
      skillRequirements = {
        Crafting = 3,
      },
    },
    weaponTags = {
      "MedievalMeleeDecent",
    },
    tools = {
      {
        label = "handle",
        capacities = {
          "Poke",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
      {
        label = "head",
        capacities = {
          "Blunt",
        },
        power = 15.7,
        cooldownTime = 2,
        DPS = 7.85,
      },
    },
  },

  ["ThingDef:MeleeWeapon_Gladius"] = {
    _ = {
      ParentName = "BaseMeleeWeapon_Sharp_Quality",
      DefCategory = "ThingDef",
      FileName = "MeleeMedieval.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "MeleeWeapon_Gladius",
    label = "gladius",
    description = [[A short sword of ancient design. Good for stabbing or slashing. It's light and nimble, which sometimes lets it beat bigger, heavier weapons.]],
    weaponTags = {
      "MedievalMeleeDecent",
    },
    statBases = {
      WorkToMake = 12000,
      Mass = 0.85,
    },
    tools = {
      {
        label = "handle",
        capacities = {
          "Blunt",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
      {
        label = "point",
        capacities = {
          "Stab",
        },
        power = 16,
        cooldownTime = 2,
        DPS = 8.0,
      },
      {
        label = "edge",
        capacities = {
          "Cut",
        },
        power = 16,
        cooldownTime = 2,
        DPS = 8.0,
      },
    },
    recipeMaker = {
      researchPrerequisite = "Smithing",
      skillRequirements = {
        Crafting = 3,
      },
    },
  },

  ["ThingDef:MeleeWeapon_LongSword"] = {
    _ = {
      ParentName = "BaseMeleeWeapon_Sharp_Quality",
      DefCategory = "ThingDef",
      FileName = "MeleeMedieval.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "MeleeWeapon_LongSword",
    label = "longsword",
    description = [[The ancient weapon of kings, the longsword can be used for slashing or stabbing.]],
    weaponTags = {
      "MedievalMeleeAdvanced",
    },
    statBases = {
      WorkToMake = 18000,
      Mass = 2,
    },
    tools = {
      {
        label = "handle",
        capacities = {
          "Blunt",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
      {
        label = "point",
        capacities = {
          "Stab",
        },
        power = 23,
        cooldownTime = 2.6,
        DPS = 8.846,
      },
      {
        label = "edge",
        capacities = {
          "Cut",
        },
        power = 23,
        cooldownTime = 2.6,
        DPS = 8.846,
      },
    },
    recipeMaker = {
      researchPrerequisite = "LongBlades",
      skillRequirements = {
        Crafting = 5,
      },
    },
  },

  ["ThingDef:MeleeWeapon_Club"] = {
    _ = {
      ParentName = "BaseMeleeWeapon_Blunt",
      DefCategory = "ThingDef",
      FileName = "MeleeNeolithic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "MeleeWeapon_Club",
    label = "club",
    description = [[A shaped stick, heavy at one end, for bashing enemies to death. This weapon is so old it's part of human biology. Evolutionary biologists say that a major reason humans can tilt our wrists side-to-side (instead of just forward-and-back like other primates) is to be able to better swing a club.]],
    weaponTags = {
      "NeolithicMeleeBasic",
    },
    statBases = {
      WorkToMake = 1200,
      Mass = 2,
    },
    recipeMaker = {
      recipeUsers = {
        "CraftingSpot",
      },
    },
    tools = {
      {
        label = "handle",
        capacities = {
          "Poke",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
      {
        label = "head",
        capacities = {
          "Blunt",
        },
        power = 14,
        cooldownTime = 2,
        DPS = 7.0,
      },
    },
  },

  ["ThingDef:MeleeWeapon_Knife"] = {
    _ = {
      ParentName = "BaseMeleeWeapon_Sharp_Quality",
      DefCategory = "ThingDef",
      FileName = "MeleeNeolithic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "MeleeWeapon_Knife",
    label = "knife",
    description = [[One of mankind's oldest manufactured objects. The knife has taken many forms, but the concept has always remained the same: A handle for holding and a sharp edge for cutting.]],
    weaponTags = {
      "MedievalMeleeBasic",
      "NeolithicMeleeBasic",
    },
    statBases = {
      WorkToMake = 1800,
      Mass = 0.5,
    },
    tools = {
      {
        label = "handle",
        capacities = {
          "Blunt",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
      {
        label = "blade",
        capacities = {
          "Cut",
        },
        power = 12,
        cooldownTime = 1.5,
        DPS = 8.0,
      },
      {
        label = "point",
        capacities = {
          "Stab",
        },
        power = 13,
        cooldownTime = 2,
        DPS = 6.5,
      },
    },
    recipeMaker = {
      recipeUsers = {
        "CraftingSpot",
      },
    },
  },

  ["ThingDef:MeleeWeapon_Ikwa"] = {
    _ = {
      ParentName = "BaseMeleeWeapon_Sharp_Quality",
      DefCategory = "ThingDef",
      FileName = "MeleeNeolithic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "MeleeWeapon_Ikwa",
    label = "ikwa",
    description = [[A short spearhandle attached to a long bladed point, designed to be driven into vital organs with a quick thrust.]],
    weaponTags = {
      "NeolithicMeleeDecent",
    },
    statBases = {
      WorkToMake = 5000,
      Mass = 1.1,
    },
    tools = {
      {
        label = "handle",
        capacities = {
          "Blunt",
          "Poke",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
      {
        label = "head",
        capacities = {
          "Stab",
        },
        power = 15,
        cooldownTime = 2,
        DPS = 7.5,
      },
      {
        label = "edge",
        capacities = {
          "Cut",
        },
        power = 15,
        cooldownTime = 2,
        DPS = 7.5,
      },
    },
    recipeMaker = {
      researchPrerequisite = "Smithing",
      skillRequirements = {
        Crafting = 3,
      },
    },
  },

  ["ThingDef:MeleeWeapon_Spear"] = {
    _ = {
      ParentName = "BaseMeleeWeapon_Sharp_Quality",
      DefCategory = "ThingDef",
      FileName = "MeleeNeolithic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "MeleeWeapon_Spear",
    label = "spear",
    description = [[A polearm tipped with a sharp point for stabbing opponents.]],
    weaponTags = {
      "NeolithicMeleeAdvanced",
      "MedievalMeleeAdvanced",
    },
    statBases = {
      WorkToMake = 12000,
      Mass = 2,
    },
    tools = {
      {
        label = "shaft",
        capacities = {
          "Blunt",
          "Poke",
        },
        power = 13,
        cooldownTime = 2.6,
        DPS = 5.0,
      },
      {
        label = "point",
        capacities = {
          "Stab",
        },
        power = 23,
        cooldownTime = 2.6,
        DPS = 8.846,
      },
    },
    recipeMaker = {
      researchPrerequisite = "LongBlades",
      skillRequirements = {
        Crafting = 4,
      },
    },
  },

  ["ThingDef:Bullet_Revolver"] = {
    _ = {
      ParentName = "BaseBullet",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrial.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Bullet_Revolver",
    label = "revolver bullet",
    projectile = {
      damageDef = "Bullet",
      damageAmountBase = 12,
      stoppingPower = 1,
      speed = 55,
    },
  },

  ["ThingDef:Gun_Revolver"] = {
    _ = {
      ParentName = "BaseHumanMakeableGun",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrial.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Gun_Revolver",
    label = "revolver",
    description = [[An ancient pattern double-action revolver. It's not very powerful, but has a decent range for a pistol and is quick on the draw.]],
    statBases = {
      WorkToMake = 4000,
      Mass = 1.4,
      AccuracyTouch = 0.80,
      AccuracyShort = 0.75,
      AccuracyMedium = 0.45,
      AccuracyLong = 0.35,
      RangedWeapon_Cooldown = 1.6,
    },
    weaponTags = {
      "SimpleGun",
      "Revolver",
    },
    costList = {
      Steel = 30,
      ComponentIndustrial = 2,
    },
    recipeMaker = {
      skillRequirements = {
        Crafting = 3,
      },
    },
    verbs = {
      {
        verbClass = "Verb_Shoot",
        defaultProjectile = "Bullet_Revolver",
        warmupTime = 0.3,
        range = 25.9,
      },
    },
    tools = {
      {
        label = "grip",
        capacities = {
          "Blunt",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
      {
        label = "barrel",
        capacities = {
          "Blunt",
          "Poke",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
    },
  },

  ["ThingDef:Gun_Autopistol"] = {
    _ = {
      ParentName = "BaseHumanMakeableGun",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrial.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Gun_Autopistol",
    label = "autopistol",
    description = [[An ancient pattern blowback-operated self-loading pistol. It lacks stopping power and range, but is quick to fire.]],
    recipeMaker = {
      researchPrerequisite = "BlowbackOperation",
      skillRequirements = {
        Crafting = 4,
      },
    },
    weaponTags = {
      "SimpleGun",
    },
    statBases = {
      WorkToMake = 5000,
      Mass = 1.2,
      AccuracyTouch = 0.80,
      AccuracyShort = 0.70,
      AccuracyMedium = 0.40,
      AccuracyLong = 0.30,
      RangedWeapon_Cooldown = 1,
    },
    costList = {
      Steel = 30,
      ComponentIndustrial = 2,
    },
    verbs = {
      {
        verbClass = "Verb_Shoot",
        defaultProjectile = "Bullet_Autopistol",
        warmupTime = 0.3,
        range = 25.9,
      },
    },
    tools = {
      {
        label = "grip",
        capacities = {
          "Blunt",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
      {
        label = "barrel",
        capacities = {
          "Blunt",
          "Poke",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
    },
  },

  ["ThingDef:Bullet_Autopistol"] = {
    _ = {
      ParentName = "BaseBullet",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrial.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Bullet_Autopistol",
    label = "autopistol bullet",
    projectile = {
      damageDef = "Bullet",
      damageAmountBase = 10,
      speed = 55,
    },
  },

  ["ThingDef:Gun_MachinePistol"] = {
    _ = {
      ParentName = "BaseHumanMakeableGun",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrial.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Gun_MachinePistol",
    label = "machine pistol",
    description = [[A micro-submachine gun. It is short-ranged, but very light in the hands. Its rate of fire tends to make up for its weakness.]],
    recipeMaker = {
      researchPrerequisite = "BlowbackOperation",
      skillRequirements = {
        Crafting = 4,
      },
    },
    statBases = {
      WorkToMake = 11000,
      Mass = 2.5,
      AccuracyTouch = 0.90,
      AccuracyShort = 0.65,
      AccuracyMedium = 0.35,
      AccuracyLong = 0.15,
      RangedWeapon_Cooldown = 0.9,
    },
    costList = {
      Steel = 45,
      ComponentIndustrial = 3,
    },
    verbs = {
      {
        verbClass = "Verb_Shoot",
        defaultProjectile = "Bullet_MachinePistol",
        warmupTime = 0.5,
        range = 19.9,
        burstShotCount = 3,
        ticksBetweenBurstShots = 7,
      },
    },
    tools = {
      {
        label = "grip",
        capacities = {
          "Blunt",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
      {
        label = "barrel",
        capacities = {
          "Blunt",
          "Poke",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
    },
  },

  ["ThingDef:Bullet_MachinePistol"] = {
    _ = {
      ParentName = "BaseBullet",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrial.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Bullet_MachinePistol",
    label = "machine pistol bullet",
    projectile = {
      damageDef = "Bullet",
      damageAmountBase = 6,
      speed = 55,
    },
  },

  ["ThingDef:Gun_IncendiaryLauncher"] = {
    _ = {
      ParentName = "BaseHumanMakeableGun",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrial.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Gun_IncendiaryLauncher",
    label = "incendiary launcher",
    description = [[A wide-barreled incendiary bolt launcher. The bolts create small incendiary explosions on impact, starting fires.]],
    statBases = {
      WorkToMake = 20000,
      Mass = 3.4,
      RangedWeapon_Cooldown = 3.5,
    },
    costList = {
      Steel = 75,
      ComponentIndustrial = 4,
    },
    recipeMaker = {
      skillRequirements = {
        Crafting = 4,
      },
    },
    verbs = {
      {
        verbClass = "Verb_Shoot",
        defaultProjectile = "Bullet_IncendiaryLauncher",
        warmupTime = 3.5,
        range = 23.9,
        forcedMissRadius = 1.9,
        burstShotCount = 1,
        targetParams = {
          canTargetLocations = true,
        },
      },
    },
    tools = {
      {
        label = "stock",
        capacities = {
          "Blunt",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
      {
        label = "barrel",
        capacities = {
          "Blunt",
          "Poke",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
    },
  },

  ["ThingDef:Bullet_IncendiaryLauncher"] = {
    _ = {
      ParentName = "BaseBullet",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrial.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Bullet_IncendiaryLauncher",
    label = "incendiary bolt",
    thingClass = "Projectile_Explosive",
    projectile = {
      speed = 40,
      damageDef = "Flame",
      explosionRadius = 1.1,
      preExplosionSpawnThingDef = "Filth_Fuel",
      preExplosionSpawnChance = 0.6,
      ai_IsIncendiary = true,
      arcHeightFactor = 0.2,
      shadowSize = 0.6,
    },
  },

  ["ThingDef:Gun_SmokeLauncher"] = {
    _ = {
      ParentName = "BaseHumanMakeableGun",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrial.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Gun_SmokeLauncher",
    label = "smoke launcher",
    description = [[A wide-barreled smoke shell launcher. The shell will upon impact release a cloud of smoke, obscuring incoming shots and preventing turrets from locking on.]],
    statBases = {
      WorkToMake = 30000,
      Mass = 3.4,
      RangedWeapon_Cooldown = 4.5,
    },
    costList = {
      Steel = 75,
      ComponentIndustrial = 4,
    },
    weaponTags = {
      _ = {
        Inherit = false,
      },
      "GrenadeSmoke",
    },
    recipeMaker = {
      skillRequirements = {
        Crafting = 4,
      },
    },
    verbs = {
      {
        verbClass = "Verb_Shoot",
        defaultProjectile = "Bullet_SmokeLauncher",
        warmupTime = 3.5,
        range = 23.9,
        forcedMissRadius = 1.9,
        burstShotCount = 1,
        targetParams = {
          canTargetLocations = true,
        },
      },
    },
    tools = {
      {
        label = "stock",
        capacities = {
          "Blunt",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
      {
        label = "barrel",
        capacities = {
          "Blunt",
          "Poke",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
    },
  },

  ["ThingDef:Bullet_SmokeLauncher"] = {
    _ = {
      ParentName = "BaseBullet",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrial.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Bullet_SmokeLauncher",
    label = "smoke launcher shell",
    thingClass = "Projectile_Explosive",
    projectile = {
      speed = 40,
      damageDef = "Smoke",
      explosionRadius = 2.4,
      postExplosionSpawnThingDef = "Gas_Smoke",
      postExplosionSpawnChance = 1,
      ai_IsIncendiary = true,
      arcHeightFactor = 0.2,
      shadowSize = 0.6,
    },
  },

  ["ThingDef:Gun_EmpLauncher"] = {
    _ = {
      ParentName = "BaseHumanMakeableGun",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrial.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Gun_EmpLauncher",
    label = "EMP launcher",
    description = [[A wide-barreled EMP shell launcher. The shell will upon impact release a burst of electromagnetic energy, stunning mechanical targets (mechanoids, turrets, mortars) and depleting shields in the area of effect.]],
    weaponTags = {
      "GrenadeEMP",
    },
    statBases = {
      WorkToMake = 30000,
      Mass = 3.4,
      RangedWeapon_Cooldown = 3.5,
    },
    costList = {
      Steel = 75,
      ComponentIndustrial = 8,
    },
    recipeMaker = {
      skillRequirements = {
        Crafting = 4,
      },
      researchPrerequisite = "MicroelectronicsBasics",
    },
    verbs = {
      {
        verbClass = "Verb_Shoot",
        defaultProjectile = "Bullet_EMPLauncher",
        warmupTime = 3.5,
        range = 23.9,
        forcedMissRadius = 1.9,
        burstShotCount = 1,
        targetParams = {
          canTargetLocations = true,
        },
      },
    },
    tools = {
      {
        label = "stock",
        capacities = {
          "Blunt",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
      {
        label = "barrel",
        capacities = {
          "Blunt",
          "Poke",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
    },
  },

  ["ThingDef:Bullet_EMPLauncher"] = {
    _ = {
      ParentName = "BaseBullet",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrial.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Bullet_EMPLauncher",
    label = "EMP launcher shell",
    thingClass = "Projectile_Explosive",
    projectile = {
      speed = 40,
      damageDef = "EMP",
      explosionRadius = 1.1,
      ai_IsIncendiary = true,
      arcHeightFactor = 0.2,
      shadowSize = 0.6,
    },
  },

  ["ThingDef:Gun_BoltActionRifle"] = {
    _ = {
      ParentName = "BaseHumanMakeableGun",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrial.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Gun_BoltActionRifle",
    label = "bolt-action rifle",
    description = [[An ancient pattern bolt-action rifle. With its long range, and low fire rate, it is unlikely to drive animals to revenge, which makes it a favorite weapon for hunting.]],
    statBases = {
      WorkToMake = 12000,
      Mass = 3.5,
      AccuracyTouch = 0.65,
      AccuracyShort = 0.80,
      AccuracyMedium = 0.90,
      AccuracyLong = 0.80,
      RangedWeapon_Cooldown = 1.5,
    },
    costList = {
      Steel = 60,
      ComponentIndustrial = 3,
    },
    recipeMaker = {
      skillRequirements = {
        Crafting = 5,
      },
    },
    verbs = {
      {
        verbClass = "Verb_Shoot",
        defaultProjectile = "Bullet_BoltActionRifle",
        warmupTime = 1.7,
        range = 36.9,
      },
    },
    tools = {
      {
        label = "stock",
        capacities = {
          "Blunt",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
      {
        label = "barrel",
        capacities = {
          "Blunt",
          "Poke",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
    },
  },

  ["ThingDef:Bullet_BoltActionRifle"] = {
    _ = {
      ParentName = "BaseBullet",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrial.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Bullet_BoltActionRifle",
    label = "bolt-action rifle bullet",
    projectile = {
      damageDef = "Bullet",
      damageAmountBase = 18,
      stoppingPower = 1.5,
      speed = 70,
    },
  },

  ["ThingDef:Gun_PumpShotgun"] = {
    _ = {
      ParentName = "BaseHumanMakeableGun",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrial.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Gun_PumpShotgun",
    label = "pump shotgun",
    description = [[An ancient design of shotgun that emits a tight-packed spray of pellets. Deadly, but short range.]],
    statBases = {
      WorkToMake = 12000,
      Mass = 3.4,
      AccuracyTouch = 0.80,
      AccuracyShort = 0.87,
      AccuracyMedium = 0.77,
      AccuracyLong = 0.64,
      RangedWeapon_Cooldown = 1.25,
    },
    costList = {
      Steel = 60,
      ComponentIndustrial = 3,
    },
    recipeMaker = {
      skillRequirements = {
        Crafting = 5,
      },
    },
    verbs = {
      {
        verbClass = "Verb_Shoot",
        defaultProjectile = "Bullet_Shotgun",
        warmupTime = 0.9,
        range = 15.9,
      },
    },
    tools = {
      {
        label = "stock",
        capacities = {
          "Blunt",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
      {
        label = "barrel",
        capacities = {
          "Blunt",
          "Poke",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
    },
  },

  ["ThingDef:Bullet_Shotgun"] = {
    _ = {
      ParentName = "BaseBullet",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrial.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Bullet_Shotgun",
    label = "shotgun blast",
    projectile = {
      damageDef = "Bullet",
      damageAmountBase = 18,
      stoppingPower = 3,
      armorPenetrationBase = 0.14,
      speed = 55,
    },
  },

  ["ThingDef:Gun_ChainShotgun"] = {
    _ = {
      ParentName = "BaseHumanMakeableGun",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrial.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Gun_ChainShotgun",
    label = "chain shotgun",
    description = [[A magazine-fed fully automatic shotgun. It is even shorter-ranged than a typical shotgun, but is extraordinarily dangerous due to burst fire.]],
    recipeMaker = {
      researchPrerequisite = "GasOperation",
      skillRequirements = {
        Crafting = 6,
      },
    },
    statBases = {
      WorkToMake = 31000,
      Mass = 4.5,
      AccuracyTouch = 0.57,
      AccuracyShort = 0.64,
      AccuracyMedium = 0.55,
      AccuracyLong = 0.45,
      RangedWeapon_Cooldown = 1.35,
    },
    costList = {
      Steel = 70,
      ComponentIndustrial = 5,
    },
    verbs = {
      {
        verbClass = "Verb_Shoot",
        defaultProjectile = "Bullet_Shotgun",
        warmupTime = 1.2,
        range = 12.9,
        burstShotCount = 3,
        ticksBetweenBurstShots = 10,
      },
    },
    weaponTags = {
      "IndustrialGunAdvanced",
    },
    tools = {
      {
        label = "stock",
        capacities = {
          "Blunt",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
      {
        label = "barrel",
        capacities = {
          "Blunt",
          "Poke",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
    },
  },

  ["ThingDef:Gun_HeavySMG"] = {
    _ = {
      ParentName = "BaseHumanMakeableGun",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrial.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Gun_HeavySMG",
    label = "heavy SMG",
    description = [[A compact, wide-caliber slug-thrower. It's got a very short range, but it packs a punch and handles quite well.]],
    recipeMaker = {
      researchPrerequisite = "GasOperation",
      skillRequirements = {
        Crafting = 5,
      },
    },
    statBases = {
      WorkToMake = 24000,
      Mass = 3.5,
      AccuracyTouch = 0.85,
      AccuracyShort = 0.65,
      AccuracyMedium = 0.35,
      AccuracyLong = 0.20,
      RangedWeapon_Cooldown = 1.65,
    },
    costList = {
      Steel = 75,
      ComponentIndustrial = 4,
    },
    verbs = {
      {
        verbClass = "Verb_Shoot",
        defaultProjectile = "Bullet_HeavySMG",
        warmupTime = 0.9,
        range = 22.9,
        burstShotCount = 3,
        ticksBetweenBurstShots = 11,
      },
    },
    weaponTags = {
      "IndustrialGunAdvanced",
    },
    tools = {
      {
        label = "grip",
        capacities = {
          "Blunt",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
      {
        label = "barrel",
        capacities = {
          "Blunt",
          "Poke",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
    },
  },

  ["ThingDef:Bullet_HeavySMG"] = {
    _ = {
      ParentName = "BaseBullet",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrial.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Bullet_HeavySMG",
    label = "heavy SMG bullet",
    projectile = {
      damageDef = "Bullet",
      damageAmountBase = 12,
      speed = 48,
    },
  },

  ["ThingDef:Gun_LMG"] = {
    _ = {
      ParentName = "BaseHumanMakeableGun",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrial.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Gun_LMG",
    label = "LMG",
    description = [[A gas-operated light machine gun. While it is somewhat unwieldy and inaccurate, its long bursts of fire are effective against groups of enemies.]],
    recipeMaker = {
      researchPrerequisite = "GasOperation",
      skillRequirements = {
        Crafting = 6,
      },
    },
    statBases = {
      WorkToMake = 34000,
      Mass = 8.5,
      AccuracyTouch = 0.40,
      AccuracyShort = 0.48,
      AccuracyMedium = 0.35,
      AccuracyLong = 0.26,
      RangedWeapon_Cooldown = 1.8,
    },
    costList = {
      Steel = 75,
      ComponentIndustrial = 5,
    },
    verbs = {
      {
        verbClass = "Verb_Shoot",
        defaultProjectile = "Bullet_LMG",
        warmupTime = 1.8,
        range = 25.9,
        ticksBetweenBurstShots = 7,
        burstShotCount = 6,
      },
    },
    weaponTags = {
      "IndustrialGunAdvanced",
    },
    tools = {
      {
        label = "stock",
        capacities = {
          "Blunt",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
      {
        label = "barrel",
        capacities = {
          "Blunt",
          "Poke",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
    },
  },

  ["ThingDef:Bullet_LMG"] = {
    _ = {
      ParentName = "BaseBullet",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrial.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Bullet_LMG",
    label = "LMG bullet",
    projectile = {
      damageDef = "Bullet",
      damageAmountBase = 11,
      stoppingPower = 1,
      speed = 46,
    },
  },

  ["ThingDef:Gun_AssaultRifle"] = {
    _ = {
      ParentName = "BaseHumanMakeableGun",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrial.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Gun_AssaultRifle",
    label = "assault rifle",
    description = [[A general-purpose gas-operated assault rifle for field or urban combat. It has good range, decent power, and good accuracy.]],
    recipeMaker = {
      researchPrerequisite = "PrecisionRifling",
      skillRequirements = {
        Crafting = 6,
      },
    },
    statBases = {
      WorkToMake = 40000,
      Mass = 3.5,
      AccuracyTouch = 0.60,
      AccuracyShort = 0.70,
      AccuracyMedium = 0.65,
      AccuracyLong = 0.55,
      RangedWeapon_Cooldown = 1.70,
    },
    costList = {
      Steel = 60,
      ComponentIndustrial = 7,
    },
    verbs = {
      {
        verbClass = "Verb_Shoot",
        defaultProjectile = "Bullet_AssaultRifle",
        warmupTime = 1.0,
        range = 30.9,
        burstShotCount = 3,
        ticksBetweenBurstShots = 10,
      },
    },
    weaponTags = {
      "IndustrialGunAdvanced",
    },
    tools = {
      {
        label = "stock",
        capacities = {
          "Blunt",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
      {
        label = "barrel",
        capacities = {
          "Blunt",
          "Poke",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
    },
  },

  ["ThingDef:Bullet_AssaultRifle"] = {
    _ = {
      ParentName = "BaseBullet",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrial.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Bullet_AssaultRifle",
    label = "assault rifle bullet",
    projectile = {
      damageDef = "Bullet",
      damageAmountBase = 11,
      speed = 70,
    },
  },

  ["ThingDef:Gun_SniperRifle"] = {
    _ = {
      ParentName = "BaseHumanMakeableGun",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrial.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Gun_SniperRifle",
    label = "sniper rifle",
    description = [[An ancient design of precision sniper rifle. Bolt action. It has an exceptionally long range, great accuracy and good power. Because it's so unwieldy, other weapons outclass it at close range.]],
    recipeMaker = {
      researchPrerequisite = "PrecisionRifling",
      skillRequirements = {
        Crafting = 7,
      },
    },
    statBases = {
      WorkToMake = 45000,
      Mass = 4,
      AccuracyTouch = 0.50,
      AccuracyShort = 0.70,
      AccuracyMedium = 0.86,
      AccuracyLong = 0.88,
      RangedWeapon_Cooldown = 2.3,
    },
    costList = {
      Steel = 60,
      ComponentIndustrial = 8,
    },
    verbs = {
      {
        verbClass = "Verb_Shoot",
        defaultProjectile = "Bullet_SniperRifle",
        warmupTime = 3.5,
        range = 44.9,
      },
    },
    tools = {
      {
        label = "stock",
        capacities = {
          "Blunt",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
      {
        label = "barrel",
        capacities = {
          "Blunt",
          "Poke",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
    },
    weaponTags = {
      _ = {
        Inherit = false,
      },
      "SniperRifle",
    },
  },

  ["ThingDef:Bullet_SniperRifle"] = {
    _ = {
      ParentName = "BaseBullet",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrial.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Bullet_SniperRifle",
    label = "sniper rifle bullet",
    projectile = {
      damageDef = "Bullet",
      damageAmountBase = 25,
      stoppingPower = 1.5,
      speed = 100,
    },
  },

  ["ThingDef:Gun_Minigun"] = {
    _ = {
      ParentName = "BaseHumanMakeableGun",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrial.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Gun_Minigun",
    label = "minigun",
    description = [[A multi-barrel machine gun. It's unwieldy, but once it starts firing it fires very fast. Where most self-loading guns are powered by the energy from the gunpowder, the minigun uses an electric motor to rapidly cycle cartridges through the weapon.]],
    statBases = {
      WorkToMake = 60000,
      Mass = 10,
      AccuracyTouch = 0.15,
      AccuracyShort = 0.25,
      AccuracyMedium = 0.25,
      AccuracyLong = 0.18,
      RangedWeapon_Cooldown = 2.3,
    },
    costList = {
      Steel = 160,
      ComponentIndustrial = 20,
    },
    recipeMaker = {
      researchPrerequisite = "MultibarrelWeapons",
      skillRequirements = {
        Crafting = 7,
      },
    },
    weaponTags = {
      "GunHeavy",
    },
    verbs = {
      {
        verbClass = "Verb_Shoot",
        defaultProjectile = "Bullet_Minigun",
        warmupTime = 2.5,
        range = 30.9,
        burstShotCount = 25,
        ticksBetweenBurstShots = 5,
      },
    },
    tools = {
      {
        label = "barrels",
        capacities = {
          "Blunt",
        },
        power = 11.7,
        cooldownTime = 2.6,
        DPS = 4.5,
      },
    },
  },

  ["ThingDef:Bullet_Minigun"] = {
    _ = {
      ParentName = "BaseBullet",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrial.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Bullet_Minigun",
    label = "minigun bullet",
    projectile = {
      damageDef = "Bullet",
      damageAmountBase = 10,
      speed = 70,
    },
  },

  ["ThingDef:Gun_TripleRocket"] = {
    _ = {
      ParentName = "BaseGun",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrialConsumable.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Gun_TripleRocket",
    label = "triple rocket launcher",
    description = [[A single-use rocket launcher that fires three large-bore explosive rockets. Good against small groups of tough targets.\n\nBecause of its unwieldiness, single-use limitation, and the massive destruction it causes, it's said that one must be slightly crazy to use this weapon.]],
    statBases = {
      MarketValue = 1000,
      Mass = 7,
      RangedWeapon_Cooldown = 4.5,
    },
    weaponTags = {
      "Gun",
      "GunSingleUse",
    },
    tradeTags = {
      "ExoticMisc",
    },
    verbs = {
      {
        verbClass = "Verb_ShootOneUse",
        defaultProjectile = "Bullet_Rocket",
        forcedMissRadius = 2.9,
        warmupTime = 4.5,
        range = 35.9,
        ticksBetweenBurstShots = 20,
        burstShotCount = 3,
        onlyManualCast = true,
        stopBurstWithoutLos = false,
        targetParams = {
          canTargetLocations = true,
        },
      },
    },
    tools = {
      {
        label = "barrel",
        capacities = {
          "Blunt",
        },
        power = 11.7,
        cooldownTime = 2.6,
        DPS = 4.5,
      },
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Explosive",
        },
        explosiveRadius = 3.9,
        explosiveDamageType = "Bomb",
        requiredDamageTypeToExplode = "Flame",
      },
      {
        _ = {
          Class = "CompProperties_BiocodableWeapon",
        },
      },
    },
  },

  ["ThingDef:Bullet_Rocket"] = {
    _ = {
      ParentName = "BaseBullet",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrialConsumable.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Bullet_Rocket",
    label = "rocket",
    thingClass = "Projectile_Explosive",
    projectile = {
      damageDef = "Bomb",
      explosionRadius = 3.9,
      speed = 50,
    },
  },

  ["ThingDef:Gun_DoomsdayRocket"] = {
    _ = {
      ParentName = "BaseGun",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrialConsumable.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Gun_DoomsdayRocket",
    label = "doomsday rocket launcher",
    description = [[A single-use rocket launcher that fires a massive explosive projectile. Good against large groups of soft targets. Starts fires.\n\nBecause of its unwieldiness, single-use limitation, and the massive destruction it causes, it's said that one must be slightly crazy to use this weapon.]],
    statBases = {
      MarketValue = 1000,
      Mass = 8,
      RangedWeapon_Cooldown = 4.5,
    },
    weaponTags = {
      "Gun",
      "GunSingleUse",
    },
    tradeTags = {
      "ExoticMisc",
    },
    verbs = {
      {
        verbClass = "Verb_ShootOneUse",
        defaultProjectile = "Bullet_DoomsdayRocket",
        forcedMissRadius = 1.9,
        warmupTime = 4.5,
        range = 35.9,
        burstShotCount = 1,
        onlyManualCast = true,
        targetParams = {
          canTargetLocations = true,
        },
      },
    },
    tools = {
      {
        label = "barrel",
        capacities = {
          "Blunt",
        },
        power = 11.7,
        cooldownTime = 2.6,
        DPS = 4.5,
      },
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Explosive",
        },
        explosiveRadius = 7.8,
        explosiveDamageType = "Bomb",
        requiredDamageTypeToExplode = "Flame",
      },
      {
        _ = {
          Class = "CompProperties_BiocodableWeapon",
        },
      },
    },
  },

  ["ThingDef:Bullet_DoomsdayRocket"] = {
    _ = {
      ParentName = "BaseBullet",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrialConsumable.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Bullet_DoomsdayRocket",
    label = "doomsday rocket",
    thingClass = "Projectile_DoomsdayRocket",
    projectile = {
      damageDef = "Bomb",
      explosionRadius = 7.8,
      speed = 50,
    },
  },

  ["ThingDef:BaseGrenadeProjectile"] = {
    _ = {
      Name = "BaseGrenadeProjectile",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "RangedIndustrialGrenades.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    category = "Projectile",
    altitudeLayer = "Projectile",
    thingClass = "Projectile_Explosive",
    label = "projectile",
    useHitPoints = false,
    projectile = {
      speed = 12,
      arcHeightFactor = 2,
      shadowSize = 0.4,
    },
  },

  ["ThingDef:BaseMakeableGrenade"] = {
    _ = {
      Name = "BaseMakeableGrenade",
      ParentName = "BaseWeapon",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "RangedIndustrialGrenades.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    recipeMaker = {
      workSpeedStat = "GeneralLaborSpeed",
      workSkill = "Crafting",
      effectWorking = "Smith",
      soundWorking = "Recipe_Smith",
      recipeUsers = {
        "TableMachining",
      },
      unfinishedThingDef = "UnfinishedGun",
    },
  },

  ["ThingDef:Weapon_GrenadeFrag"] = {
    _ = {
      ParentName = "BaseMakeableGrenade",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrialGrenades.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Weapon_GrenadeFrag",
    label = "frag grenades",
    description = [[Old-school fragmentation grenades. They can be thrown a short distance, where they'll explode, damaging anything and anyone nearby.]],
    statBases = {
      Mass = 1,
      RangedWeapon_Cooldown = 2.66,
      WorkToMake = 12000,
    },
    costList = {
      Steel = 20,
      Chemfuel = 80,
    },
    weaponTags = {
      "GrenadeDestructive",
    },
    thingCategories = {
      "Grenades",
    },
    verbs = {
      {
        label = "throw frag grenade",
        verbClass = "Verb_LaunchProjectile",
        range = 12.9,
        forcedMissRadius = 1.9,
        warmupTime = 1.5,
        noiseRadius = 4,
        targetParams = {
          canTargetLocations = true,
        },
        defaultProjectile = "Proj_GrenadeFrag",
      },
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Explosive",
        },
        explosiveRadius = 2.66,
        explosiveDamageType = "Bomb",
        requiredDamageTypeToExplode = "Flame",
      },
    },
  },

  ["ThingDef:BaseFragGrenadeProjectile"] = {
    _ = {
      Name = "BaseFragGrenadeProjectile",
      ParentName = "BaseGrenadeProjectile",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "RangedIndustrialGrenades.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    thingClass = "Projectile_Explosive",
    projectile = {
      explosionRadius = 1.9,
      damageDef = "Bomb",
      explosionDelay = 100,
    },
  },

  ["ThingDef:Proj_GrenadeFrag"] = {
    _ = {
      ParentName = "BaseFragGrenadeProjectile",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrialGrenades.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Proj_GrenadeFrag",
    label = "frag grenade",
  },

  ["ThingDef:Weapon_GrenadeMolotov"] = {
    _ = {
      ParentName = "BaseMakeableGrenade",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrialGrenades.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Weapon_GrenadeMolotov",
    label = "molotov cocktails",
    description = [[Glass bottles filled with flammable liquid, with a burning cloth in the neck. A favorite weapon of hooligans and desperate warriors from rim to rim.]],
    statBases = {
      Mass = 1,
      RangedWeapon_Cooldown = 2.66,
      WorkToMake = 6000,
    },
    costList = {
      Cloth = 25,
      Chemfuel = 80,
    },
    weaponTags = {
      "GrenadeDestructive",
    },
    thingCategories = {
      "Grenades",
    },
    verbs = {
      {
        label = "throw molotov",
        verbClass = "Verb_LaunchProjectile",
        range = 12.9,
        forcedMissRadius = 1.9,
        warmupTime = 1.5,
        noiseRadius = 4,
        targetParams = {
          canTargetLocations = true,
        },
        defaultProjectile = "Proj_GrenadeMolotov",
      },
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Explosive",
        },
        explosiveRadius = 2.66,
        explosiveDamageType = "Flame",
        requiredDamageTypeToExplode = "Flame",
      },
    },
  },

  ["ThingDef:BaseIncendiaryProjectile"] = {
    _ = {
      Name = "BaseIncendiaryProjectile",
      ParentName = "BaseGrenadeProjectile",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "RangedIndustrialGrenades.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    projectile = {
      explosionRadius = 1.1,
      damageDef = "Flame",
      preExplosionSpawnThingDef = "Filth_Fuel",
      ai_IsIncendiary = true,
      shadowSize = 0.6,
    },
  },

  ["ThingDef:Proj_GrenadeMolotov"] = {
    _ = {
      ParentName = "BaseIncendiaryProjectile",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrialGrenades.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Proj_GrenadeMolotov",
    label = "molotov cocktail",
  },

  ["ThingDef:Weapon_GrenadeEMP"] = {
    _ = {
      ParentName = "BaseMakeableGrenade",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrialGrenades.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Weapon_GrenadeEMP",
    label = "EMP grenades",
    description = [[Electromagnetic pulse grenades damaging to electronic equipment.]],
    statBases = {
      Mass = 1,
      RangedWeapon_Cooldown = 2.66,
      WorkToMake = 24000,
    },
    costList = {
      Steel = 20,
      ComponentIndustrial = 6,
    },
    recipeMaker = {
      researchPrerequisite = "MicroelectronicsBasics",
    },
    weaponTags = {
      "GrenadeEMP",
    },
    thingCategories = {
      "Grenades",
    },
    verbs = {
      {
        label = "throw EMP grenade",
        verbClass = "Verb_LaunchProjectile",
        range = 12.9,
        forcedMissRadius = 1.9,
        warmupTime = 1.5,
        noiseRadius = 4,
        targetParams = {
          canTargetLocations = true,
        },
        defaultProjectile = "Proj_GrenadeEMP",
      },
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Explosive",
        },
        explosiveRadius = 2.66,
        explosiveDamageType = "EMP",
        requiredDamageTypeToExplode = "Flame",
      },
    },
    smeltProducts = {
      Steel = 10,
    },
  },

  ["ThingDef:Proj_GrenadeEMP"] = {
    _ = {
      ParentName = "BaseGrenadeProjectile",
      DefCategory = "ThingDef",
      FileName = "RangedIndustrialGrenades.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Proj_GrenadeEMP",
    label = "EMP grenade",
    thingClass = "Projectile_Explosive",
    projectile = {
      explosionRadius = 3.5,
      damageDef = "EMP",
      explosionDelay = 100,
    },
  },

  ["ThingDef:Bullet_ChargeBlasterHeavy"] = {
    _ = {
      ParentName = "BaseBullet",
      DefCategory = "ThingDef",
      FileName = "RangedMechanoid.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Bullet_ChargeBlasterHeavy",
    label = "charge blaster shot",
    projectile = {
      damageDef = "Bullet",
      damageAmountBase = 15,
      speed = 90,
    },
  },

  ["ThingDef:Gun_ChargeBlasterHeavyBase"] = {
    _ = {
      Abstract = true,
      ParentName = "BaseGunWithQuality",
      Name = "Gun_ChargeBlasterHeavyBase",
      DefCategory = "ThingDef",
      FileName = "RangedMechanoid.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    label = "heavy charge blaster",
    description = [[A pulse-charged rapid-fire blaster for area suppressive fire. Heavy cooling allows long, deadly bursts.]],
    statBases = {
      MarketValue = 1400,
      Mass = 22,
      AccuracyTouch = 0.18,
      AccuracyShort = 0.26,
      AccuracyMedium = 0.26,
      AccuracyLong = 0.18,
      RangedWeapon_Cooldown = 7.4,
    },
    tradeability = "None",
    tools = {
      {
        label = "barrel",
        capacities = {
          "Blunt",
        },
        power = 11.7,
        cooldownTime = 2.6,
        DPS = 4.5,
      },
    },
  },

  ["ThingDef:Gun_ChargeBlasterHeavy"] = {
    _ = {
      ParentName = "Gun_ChargeBlasterHeavyBase",
      DefCategory = "ThingDef",
      FileName = "RangedMechanoid.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Gun_ChargeBlasterHeavy",
    verbs = {
      {
        verbClass = "Verb_Shoot",
        defaultProjectile = "Bullet_ChargeBlasterHeavy",
        warmupTime = 1.25,
        range = 26.9,
        ticksBetweenBurstShots = 5,
        burstShotCount = 24,
      },
    },
    weaponTags = {
      "MechanoidGunHeavy",
    },
  },

  ["ThingDef:Bullet_InfernoCannon"] = {
    _ = {
      ParentName = "BaseBullet",
      DefCategory = "ThingDef",
      FileName = "RangedMechanoid.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Bullet_InfernoCannon",
    label = "inferno cannon shell",
    thingClass = "Projectile_Explosive",
    projectile = {
      damageDef = "Flame",
      speed = 45,
      explosionRadius = 2.4,
      preExplosionSpawnThingDef = "Filth_Fuel",
      preExplosionSpawnChance = 0.27,
      ai_IsIncendiary = true,
    },
  },

  ["ThingDef:Gun_InfernoCannonBase"] = {
    _ = {
      Abstract = true,
      ParentName = "BaseGunWithQuality",
      Name = "Gun_InfernoCannonBase",
      DefCategory = "ThingDef",
      FileName = "RangedMechanoid.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    label = "inferno cannon",
    description = [[An incendiary-shot mini-artillery device. It fires a large incendiary warhead.]],
    statBases = {
      MarketValue = 1400,
      Mass = 18,
      RangedWeapon_Cooldown = 8.4,
    },
    tradeability = "None",
    tools = {
      {
        label = "barrel",
        capacities = {
          "Blunt",
        },
        power = 11.7,
        cooldownTime = 2.6,
        DPS = 4.5,
      },
    },
  },

  ["ThingDef:Gun_InfernoCannon"] = {
    _ = {
      ParentName = "Gun_InfernoCannonBase",
      DefCategory = "ThingDef",
      FileName = "RangedMechanoid.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Gun_InfernoCannon",
    weaponTags = {
      "MechanoidGunHeavy",
    },
    verbs = {
      {
        verbClass = "Verb_Shoot",
        defaultProjectile = "Bullet_InfernoCannon",
        forcedMissRadius = 3.5,
        warmupTime = 1.25,
        range = 26.9,
        burstShotCount = 1,
      },
    },
  },

  ["ThingDef:Gun_Needle"] = {
    _ = {
      ParentName = "BaseGunWithQuality",
      DefCategory = "ThingDef",
      FileName = "RangedMechanoid.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Gun_Needle",
    label = "needle gun",
    description = [[A long-range weapon used by mechanoids. Named after its needle-like projectiles, it fires single shots with great accuracy. While it does less damage than charge weapons, it can reach over very long distances.]],
    tradeability = "None",
    statBases = {
      MarketValue = 1400,
      Mass = 2.6,
      AccuracyTouch = 0.60,
      AccuracyShort = 0.80,
      AccuracyMedium = 0.90,
      AccuracyLong = 0.85,
      RangedWeapon_Cooldown = 2.1,
    },
    weaponTags = {
      "MechanoidGunLongRange",
    },
    verbs = {
      {
        verbClass = "Verb_Shoot",
        defaultProjectile = "Bullet_NeedleGun",
        warmupTime = 2.5,
        range = 44.9,
      },
    },
    tools = {
      {
        label = "barrel",
        capacities = {
          "Blunt",
          "Poke",
        },
        power = 9,
        cooldownTime = 2.6,
        DPS = 3.462,
      },
    },
  },

  ["ThingDef:Bullet_NeedleGun"] = {
    _ = {
      ParentName = "BaseBullet",
      DefCategory = "ThingDef",
      FileName = "RangedMechanoid.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Bullet_NeedleGun",
    label = "needle shot",
    projectile = {
      damageDef = "Bullet",
      damageAmountBase = 15,
      armorPenetrationBase = 0.35,
      stoppingPower = 1.5,
      speed = 90,
    },
  },

  ["ThingDef:BaseWeaponNeolithic"] = {
    _ = {
      Name = "BaseWeaponNeolithic",
      Abstract = true,
      ParentName = "BaseWeapon",
      DefCategory = "ThingDef",
      FileName = "RangedNeolithic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    weaponTags = {
      "Neolithic",
    },
    thingCategories = {
      "WeaponsRanged",
    },
    comps = {
      {
        compClass = "CompQuality",
      },
    },
    recipeMaker = {
      workSpeedStat = "GeneralLaborSpeed",
      workSkill = "Crafting",
      recipeUsers = {
        "ElectricSmithy",
        "FueledSmithy",
      },
      effectWorking = "Smelt",
      soundWorking = "Recipe_MakeBow",
      unfinishedThingDef = "UnfinishedWeapon",
    },
  },

  ["ThingDef:BaseProjectileNeolithic"] = {
    _ = {
      Name = "BaseProjectileNeolithic",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "RangedNeolithic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    category = "Projectile",
    altitudeLayer = "Projectile",
    thingClass = "Bullet",
    label = "arrow",
    useHitPoints = false,
  },

  ["ThingDef:Bow_Short"] = {
    _ = {
      ParentName = "BaseWeaponNeolithic",
      DefCategory = "ThingDef",
      FileName = "RangedNeolithic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Bow_Short",
    label = "short bow",
    description = [[A simple short selfbow made from a single piece of wood.]],
    costList = {
      WoodLog = 30,
    },
    statBases = {
      WorkToMake = 2400,
      Mass = 0.8,
      AccuracyTouch = 0.75,
      AccuracyShort = 0.65,
      AccuracyMedium = 0.45,
      AccuracyLong = 0.25,
      RangedWeapon_Cooldown = 1.65,
    },
    weaponTags = {
      "NeolithicRangedBasic",
    },
    recipeMaker = {
      recipeUsers = {
        "CraftingSpot",
      },
      skillRequirements = {
        Crafting = 2,
      },
    },
    verbs = {
      {
        verbClass = "Verb_Shoot",
        defaultProjectile = "Arrow_Short",
        warmupTime = 1.35,
        range = 22.9,
      },
    },
    tools = {
      {
        label = "limb",
        capacities = {
          "Blunt",
          "Poke",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
    },
  },

  ["ThingDef:Arrow_Short"] = {
    _ = {
      ParentName = "BaseProjectileNeolithic",
      DefCategory = "ThingDef",
      FileName = "RangedNeolithic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Arrow_Short",
    label = "shortbow arrow",
    projectile = {
      damageDef = "Arrow",
      damageAmountBase = 11,
      speed = 44,
    },
  },

  ["ThingDef:Pila"] = {
    _ = {
      ParentName = "BaseWeaponNeolithic",
      DefCategory = "ThingDef",
      FileName = "RangedNeolithic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Pila",
    label = "pila",
    description = [[Pila are spears for throwing. They take a long time to throw, but one hit can do heavy damage. This weapon represents a bundle of pila and can be thrown over and over. The singular of pila is pilum.]],
    costList = {
      WoodLog = 70,
    },
    statBases = {
      WorkToMake = 7000,
      Mass = 4,
      AccuracyTouch = 0.50,
      AccuracyShort = 0.71,
      AccuracyMedium = 0.50,
      AccuracyLong = 0.32,
      RangedWeapon_Cooldown = 4,
    },
    weaponTags = {
      "NeolithicRangedHeavy",
    },
    recipeMaker = {
      skillRequirements = {
        Crafting = 3,
      },
    },
    verbs = {
      {
        verbClass = "Verb_Shoot",
        defaultProjectile = "Pilum_Thrown",
        warmupTime = 4,
        range = 18.9,
      },
    },
    tools = {
      {
        label = "shaft",
        capacities = {
          "Blunt",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
      {
        label = "point",
        capacities = {
          "Stab",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
    },
  },

  ["ThingDef:Pilum_Thrown"] = {
    _ = {
      ParentName = "BaseProjectileNeolithic",
      DefCategory = "ThingDef",
      FileName = "RangedNeolithic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Pilum_Thrown",
    label = "pilum",
    projectile = {
      damageDef = "RangedStab",
      damageAmountBase = 25,
      stoppingPower = 2.5,
      armorPenetrationBase = 0.10,
      speed = 26,
    },
  },

  ["ThingDef:Bow_Recurve"] = {
    _ = {
      ParentName = "BaseWeaponNeolithic",
      DefCategory = "ThingDef",
      FileName = "RangedNeolithic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Bow_Recurve",
    label = "recurve bow",
    description = [[A recurve bow. Its construction behaves like a tuned spring, storing energy more efficiently and delivering a faster shot.]],
    costList = {
      WoodLog = 40,
    },
    statBases = {
      WorkToMake = 5000,
      Mass = 1.3,
      AccuracyTouch = 0.70,
      AccuracyShort = 0.78,
      AccuracyMedium = 0.65,
      AccuracyLong = 0.35,
      RangedWeapon_Cooldown = 1.65,
    },
    weaponTags = {
      "NeolithicRangedDecent",
    },
    recipeMaker = {
      recipeUsers = {
        "CraftingSpot",
      },
      researchPrerequisite = "RecurveBow",
      skillRequirements = {
        Crafting = 5,
      },
    },
    verbs = {
      {
        verbClass = "Verb_Shoot",
        defaultProjectile = "Arrow_Recurve",
        warmupTime = 1.45,
        range = 25.9,
      },
    },
    tools = {
      {
        label = "limb",
        capacities = {
          "Blunt",
          "Poke",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
    },
  },

  ["ThingDef:Arrow_Recurve"] = {
    _ = {
      ParentName = "BaseProjectileNeolithic",
      DefCategory = "ThingDef",
      FileName = "RangedNeolithic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Arrow_Recurve",
    label = "recurve bow arrow",
    projectile = {
      damageDef = "ArrowHighVelocity",
      damageAmountBase = 14,
      stoppingPower = 1,
      speed = 56,
    },
  },

  ["ThingDef:Bow_Great"] = {
    _ = {
      ParentName = "BaseWeaponNeolithic",
      DefCategory = "ThingDef",
      FileName = "RangedNeolithic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Bow_Great",
    label = "greatbow",
    description = [[A powerful greatbow. Fires a heavy arrow long distances.]],
    costList = {
      WoodLog = 60,
    },
    statBases = {
      WorkToMake = 9000,
      Mass = 3.0,
      AccuracyTouch = 0.65,
      AccuracyShort = 0.85,
      AccuracyMedium = 0.75,
      AccuracyLong = 0.50,
      RangedWeapon_Cooldown = 1.5,
    },
    weaponTags = {
      "NeolithicRangedHeavy",
      "NeolithicRangedChief",
    },
    verbs = {
      {
        verbClass = "Verb_Shoot",
        defaultProjectile = "Arrow_Great",
        warmupTime = 2.0,
        range = 29.9,
      },
    },
    tools = {
      {
        label = "limb",
        capacities = {
          "Blunt",
          "Poke",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
    },
    recipeMaker = {
      recipeUsers = {
        "CraftingSpot",
      },
      researchPrerequisite = "Greatbow",
      skillRequirements = {
        Crafting = 6,
      },
    },
  },

  ["ThingDef:Arrow_Great"] = {
    _ = {
      ParentName = "BaseProjectileNeolithic",
      DefCategory = "ThingDef",
      FileName = "RangedNeolithic.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Arrow_Great",
    label = "greatbow arrow",
    projectile = {
      damageDef = "Arrow",
      damageAmountBase = 17,
      stoppingPower = 1.5,
      armorPenetrationBase = 0.15,
      speed = 49,
    },
  },

  ["ThingDef:Gun_ChargeRifle"] = {
    _ = {
      ParentName = "BaseHumanMakeableGun",
      DefCategory = "ThingDef",
      FileName = "RangedSpacer.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Gun_ChargeRifle",
    label = "charge rifle",
    description = [[A charged-shot assault rifle. Pulse-charge technology charges each shot with unstable energy as it leaves the barrel. Released on impact, the charged energy greatly increases the damage done.]],
    statBases = {
      WorkToMake = 45000,
      Mass = 4.6,
      AccuracyTouch = 0.55,
      AccuracyShort = 0.64,
      AccuracyMedium = 0.55,
      AccuracyLong = 0.45,
      RangedWeapon_Cooldown = 2.00,
    },
    recipeMaker = {
      researchPrerequisite = "ChargedShot",
      skillRequirements = {
        Crafting = 7,
      },
      recipeUsers = {
        _ = {
          Inherit = false,
        },
        "FabricationBench",
      },
    },
    costList = {
      Plasteel = 50,
      ComponentSpacer = 2,
    },
    weaponTags = {
      "SpacerGun",
    },
    verbs = {
      {
        verbClass = "Verb_Shoot",
        defaultProjectile = "Bullet_ChargeRifle",
        warmupTime = 1.0,
        range = 25.9,
        ticksBetweenBurstShots = 12,
        burstShotCount = 3,
      },
    },
    tools = {
      {
        label = "stock",
        capacities = {
          "Blunt",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
      {
        label = "barrel",
        capacities = {
          "Blunt",
          "Poke",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
    },
  },

  ["ThingDef:Bullet_ChargeRifle"] = {
    _ = {
      ParentName = "BaseBullet",
      DefCategory = "ThingDef",
      FileName = "RangedSpacer.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Bullet_ChargeRifle",
    label = "charge shot",
    projectile = {
      damageDef = "Bullet",
      damageAmountBase = 15,
      armorPenetrationBase = 0.35,
      speed = 70,
    },
  },

  ["ThingDef:Gun_ChargeLance"] = {
    _ = {
      ParentName = "BaseHumanMakeableGun",
      DefCategory = "ThingDef",
      FileName = "RangedSpacer.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Gun_ChargeLance",
    label = "charge lance",
    description = [[A pulse-charged rail-assisted lance weapon. It fires a single shot at high velocity, charging it with unstable energy as it leaves the acceleration rail.]],
    statBases = {
      Mass = 8,
      AccuracyTouch = 0.65,
      AccuracyShort = 0.85,
      AccuracyMedium = 0.85,
      AccuracyLong = 0.75,
      RangedWeapon_Cooldown = 2.7,
      WorkToMake = 60000,
    },
    recipeMaker = {
      researchPrerequisite = "ChargedShot",
      skillRequirements = {
        Crafting = 9,
      },
      recipeUsers = {
        _ = {
          Inherit = false,
        },
        "FabricationBench",
      },
    },
    costList = {
      Plasteel = 60,
      ComponentSpacer = 3,
    },
    weaponTags = {
      "MechanoidGunMedium",
      "SpacerGun",
    },
    verbs = {
      {
        verbClass = "Verb_Shoot",
        defaultProjectile = "Bullet_ChargeLance",
        warmupTime = 1.7,
        range = 29.9,
      },
    },
    tools = {
      {
        label = "barrel",
        capacities = {
          "Blunt",
          "Poke",
        },
        power = 9,
        cooldownTime = 2,
        DPS = 4.5,
      },
    },
  },

  ["ThingDef:Bullet_ChargeLance"] = {
    _ = {
      ParentName = "BaseBullet",
      DefCategory = "ThingDef",
      FileName = "RangedSpacer.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "Bullet_ChargeLance",
    label = "charge lance shot",
    projectile = {
      damageDef = "Bullet",
      damageAmountBase = 30,
      stoppingPower = 1.5,
      speed = 120,
    },
  },

  ["ThingDef:OrbitalWeaponBase"] = {
    _ = {
      ParentName = "BaseWeapon",
      Name = "OrbitalWeaponBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "RangedSpecial.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    thingCategories = {
      "WeaponsRanged",
    },
    statBases = {
      MarketValue = 1200,
      Mass = 0.2,
      Beauty = -3,
      Flammability = 0.5,
    },
    tradeability = "Sellable",
    tradeTags = {
      "ExoticMisc",
    },
  },

  ["ThingDef:OrbitalUtilityBase"] = {
    _ = {
      ParentName = "ApparelNoQualityBase",
      Name = "OrbitalUtilityBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "RangedSpecial.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    thingCategories = {
      "ApparelUtility",
    },
    statBases = {
      MarketValue = 1200,
      Mass = 0.2,
      Beauty = -3,
      Flammability = 0.5,
    },
    tradeability = "Sellable",
    tradeTags = {
      "ExoticMisc",
    },
    apparel = {
      bodyPartGroups = {
        "Waist",
      },
      layers = {
        "Belt",
      },
    },
  },

  ["ThingDef:OrbitalTargeterBombardment"] = {
    _ = {
      ParentName = "OrbitalUtilityBase",
      DefCategory = "ThingDef",
      FileName = "RangedSpecial.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "OrbitalTargeterBombardment",
    label = "orbital bombardment targeter",
    description = [[An ancient targeting apparatus for an orbital bombardment system. This unit designates a target and transmits the coordinates to a network of satellites, which then bombard the target area with kinetic impactors. This unit has been reprogrammed to accept unauthorized users, but once it is used, the network will detect the incursion and cut off the link permanently.]],
    verbs = {
      {
        verbClass = "Verb_Bombardment",
        warmupTime = 3,
        range = 44.9,
        burstShotCount = 1,
        onlyManualCast = true,
        targetParams = {
          canTargetLocations = true,
        },
      },
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Reloadable",
        },
        maxCharges = 1,
        destroyOnEmpty = true,
        hotKey = "Misc4",
        chargeNoun = "charge",
        displayGizmoWhileUndrafted = false,
      },
    },
  },

  ["ThingDef:OrbitalTargeterPowerBeam"] = {
    _ = {
      ParentName = "OrbitalUtilityBase",
      DefCategory = "ThingDef",
      FileName = "RangedSpecial.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "OrbitalTargeterPowerBeam",
    label = "orbital power beam targeter",
    description = [[An ancient targeting unit for a network of power-collection satellites. Once aimed at a target, it directs ancient satellites to begin beaming power down in a massive column of electromagnetic energy. This power can safely be collected in a giant absorption dish. Since you have no absorption dish, you'll be aiming it at enemies, at which point the power column will turn the area into a thousand-degree inferno. This will last until the satellites detect the unsafe targeting, shut themselves down, and permanently deactivate the targeter.]],
    verbs = {
      {
        verbClass = "Verb_PowerBeam",
        warmupTime = 3,
        range = 44.9,
        burstShotCount = 1,
        onlyManualCast = true,
        targetParams = {
          canTargetLocations = true,
        },
      },
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Reloadable",
        },
        maxCharges = 1,
        destroyOnEmpty = true,
        hotKey = "Misc4",
        chargeNoun = "charge",
        displayGizmoWhileUndrafted = false,
      },
    },
  },

  ["ThingDef:TornadoGenerator"] = {
    _ = {
      ParentName = "OrbitalUtilityBase",
      DefCategory = "ThingDef",
      FileName = "RangedSpecial.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    defName = "TornadoGenerator",
    label = "tornado generator",
    description = [[An ancient control unit for a network of weather-control satellites. This device has had certain failsafes bypassed; it is capable of causing a massive air current disturbance, which will generate a tornado at a chosen location. The weather network will detect this unauthorized intrusion and lock out the device after use, but the tornado will be left to spend its energy normally.]],
    statBases = {
      MarketValue = 800,
    },
    verbs = {
      {
        verbClass = "Verb_Spawn",
        warmupTime = 3,
        spawnDef = "Tornado",
        colonyWideTaleDef = "TornadoFromItem",
        range = 44.9,
        burstShotCount = 1,
        onlyManualCast = true,
        targetParams = {
          canTargetLocations = true,
        },
      },
    },
    comps = {
      {
        _ = {
          Class = "CompProperties_Reloadable",
        },
        maxCharges = 1,
        destroyOnEmpty = true,
        hotKey = "Misc4",
        chargeNoun = "charge",
        displayGizmoWhileUndrafted = false,
      },
    },
  },

  ["ThingDef:PlantBaseNonEdible"] = {
    _ = {
      Name = "PlantBaseNonEdible",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Plants_Bases.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    category = "Plant",
    thingClass = "Plant",
    altitudeLayer = "LowPlant",
    useHitPoints = true,
    statBases = {
      Flammability = 1,
    },
    pathCostIgnoreRepeat = false,
    plant = {
      fertilityMin = 0.7,
      fertilitySensitivity = 1.0,
      sowWork = 170,
      harvestWork = 200,
    },
  },

  ["ThingDef:PlantBase"] = {
    _ = {
      ParentName = "PlantBaseNonEdible",
      Name = "PlantBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Plants_Bases.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    ingestible = {
      foodType = {
        "Plant",
      },
      preferability = "RawBad",
    },
  },

  ["ThingDef:BushBase"] = {
    _ = {
      ParentName = "PlantBase",
      Name = "BushBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Plants_Bases.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    statBases = {
      MaxHitPoints = 120,
      Nutrition = 0.3,
    },
    fillPercent = 0.20,
    pathCost = 30,
    plant = {
      fertilitySensitivity = 0.5,
      growDays = 3,
    },
  },

  ["ThingDef:TreeBase"] = {
    _ = {
      ParentName = "PlantBase",
      Name = "TreeBase",
      Abstract = true,
      DefCategory = "ThingDef",
      FileName = "Plants_Bases.xml",
      GameVersion = "1.2.2753",
      DLC = "Core",
    },
    statBases = {
      MaxHitPoints = 200,
      Flammability = 0.8,
      Nutrition = 1.7,
    },
    altitudeLayer = "Building",
    fillPercent = 0.25,
    passability = "PassThroughOnly",
    pathCost = 42,
    ingestible = {
      foodType = {
        "Tree",
      },
      preferability = "RawBad",
    },
    plant = {
      lifespanDaysPerGrowDays = 9,
      fertilitySensitivity = 0.5,
      sowWork = 4000,
      sowMinSkill = 6,
      sowResearchPrerequisites = {
        "TreeSowing",
      },
      harvestWork = 800,
      harvestedThingDef = "WoodLog",
      harvestYield = 25,
      harvestTag = "Wood",
      harvestMinGrowth = 0.40,
      harvestFailable = false,
      blockAdjacentSow = true,
      sowTags = {
        "Ground",
      },
      interferesWithRoof = true,
    },
  },

  ["ThingDef:CavePlantBase"] = {
    _ = {
      Name = "CavePlantBase",
      ParentName = "PlantBase",
      Abstract = true,
      DefCategory = &qu