Properties: Difference between revisions

3,459 bytes added ,  20:16, 30 September 2021
Add queries for EMP-sensitive things
(Add occluding object queries)
(Add queries for EMP-sensitive things)
Line 1: Line 1:
{{stub}}
{{stub}}{{tocright}}
Aside from standard properties like damage and weight, items, objects, and creatures can have miscellaneous other properties that affect how they behave.
Aside from standard qualities like damage and weight, items, objects, and creatures can have physical or metaphysical properties that affect how they behave and how other items interact with them.
==Properties==
 
===Metal===
==Metal==
Metal items can [[rusted | rust]] and be pulled by {{Favilink | pulsed field magnet | plural}}. Creatures can be metallic as well. This means their entire body becomes pulled if magnetic pulsed, and will refuse to properly function if rusted.
Metal items can [[rusted | rust]] and be pulled by {{Favilink | pulsed field magnet | plural}}. Creatures can be metallic as well. This means their entire body becomes pulled if magnetic pulsed, and will refuse to properly function if rusted.


For modding purposes, this property corresponds to the <code>Metal</code> object part.
For modding purposes, this property corresponds to the <code>Metal</code> object part.


===Organic===
==Organic==
{{Missing info | Describe the consequences of this property.}}
{{Missing info | Describe the consequences of this property.}}


For modding purposes, this property corresponds to having a zero <code>Inorganic</code> integer property.
For modding purposes, this property corresponds to having a zero <code>Inorganic</code> integer property.


===Cannot be removed once equipped===
==Cannot be removed once equipped==
{{Missing info | This section requires clean-up - in particular, the "Cursed" tag and internal terminology no longer exists.}}
Items with this property can't be unequipped normally by the player, but can be unequipped under other circumstances by the game, such as when they're destroyed.
Items with this property can't be unequipped normally by the player, but can be unequipped under other circumstances by the game, such as when they're destroyed.


For modding purposes, this property corresponds to the <code>Cursed</code>, <code>CursedCybernetics</code>, and <code>NaturalEquipment</code> object parts.
For modding purposes, this property corresponds to the <code>Cursed</code>, <code>CursedCybernetics</code>, and <code>NaturalEquipment</code> object parts.


===EMP Sensitive===
==EMP Sensitive==
This item will deactivate if hit by an EMP blast, usually from [[Electromagnetic Impulse]] or an EMP grenade.
This item will deactivate if hit by an EMP blast, usually from [[Electromagnetic Impulse]] or an EMP grenade.


Line 24: Line 25:
Some parts implement hardcoded EMP sensitivity because they do not use <code>IActivePart</code>. These include support parts for geomagnetic discs, night vision implants, mines, bombs, high-powered magnets, melee weapon elemental damage, walltraps, and conveyor belts.<ref>Most of these special cases can be found by searching the codebase for "IsEMPed", an IComponent method used for less conventional EMP status checking.</ref>
Some parts implement hardcoded EMP sensitivity because they do not use <code>IActivePart</code>. These include support parts for geomagnetic discs, night vision implants, mines, bombs, high-powered magnets, melee weapon elemental damage, walltraps, and conveyor belts.<ref>Most of these special cases can be found by searching the codebase for "IsEMPed", an IComponent method used for less conventional EMP status checking.</ref>


=== Reality Distortion Based ===
<div style="display:flex;flex-wrap:wrap;">
<div style="margin-right: 2.5em;">
==== EMP-Sensitive Furniture ====
{{#cargo_query:
  | tables=GeneralData=GD,ExtraInfo=EI
  | join on=GD.JoinKey=EI.JoinKey
  | fields=
      CONCAT('{{((}}favilink id{{!}}',CONCAT(GD.ObjectID),'{{))}}')=Object
  | where=EI.Info LIKE '%EMP Sensitive,,,%' AND GD._pageNamespace = 0 AND GD.Categories = 'Furniture'
  | format=ul
  | order by=GD._pageName
}}
</div>
<div style="margin-right: 2.5em;">
==== EMP-Sensitive Melee Weapons ====
{{#cargo_query:
  | tables=GeneralData=GD,ExtraInfo=EI
  | join on=GD.JoinKey=EI.JoinKey
  | fields=
      CONCAT('{{((}}favilink id{{!}}',CONCAT(GD.ObjectID),'{{))}}')=Object
  | where=EI.Info LIKE '%EMP Sensitive,,,%' AND GD._pageNamespace = 0 AND (GD.Categories = 'Melee Weapons' OR GD.Categories = 'Axes' OR GD.Categories = 'Long Blades' OR GD.Categories = 'Short Blades' OR GD.Categories = 'Cudgels')
  | format=ul
  | order by=GD._pageName
}}
==== EMP-Sensitive Ranged Weapons ====
{{#cargo_query:
  | tables=GeneralData=GD,ExtraInfo=EI
  | join on=GD.JoinKey=EI.JoinKey
  | fields=
      CONCAT('{{((}}favilink id{{!}}',CONCAT(GD.ObjectID),'{{))}}')=Object
  | where=EI.Info LIKE '%EMP Sensitive,,,%' AND GD._pageNamespace = 0 AND (GD.Categories = 'Rifles' OR GD.Categories = 'Pistols' OR GD.Categories = 'Bows' OR GD.Categories = 'Heavy Weapons' OR GD.Categories = 'Thrown Weapons' OR GD.ObjectID = 'Point-Defense Drone')
  | format=ul
  | order by=GD._pageName
}}
</div>
<div style="margin-right: 2.5em;">
==== EMP-Sensitive Equipment ====
{{#cargo_query:
  | tables=GeneralData=GD,ExtraInfo=EI,ItemsTable=IT
  | join on=GD.JoinKey=EI.JoinKey,GD.JoinKey=IT.JoinKey
  | fields=
      CONCAT('{{((}}favilink id{{!}}',CONCAT(GD.ObjectID),'{{))}}')=Object
  | where=EI.Info LIKE '%EMP Sensitive,,,%' AND GD._pageNamespace = 0 AND IT.WornOn IS NOT NULL
  | format=ul
  | order by=GD._pageName
}}
</div>
<div style="margin-right: 2.5em;">
==== EMP-Sensitive Creatures ====
{{#cargo_query:
  | tables=GeneralData=GD,ExtraInfo=EI,CreatureFactions=CF
  | join on=GD.JoinKey=EI.JoinKey,GD.ObjectID=CF.ObjectID
  | group by=GD._pageName
  | fields=
      CONCAT('{{((}}favilink id{{!}}',CONCAT(GD.ObjectID),'{{))}}')=Object
  | where=EI.Info LIKE '%EMP Sensitive,,,%' AND GD._pageNamespace = 0 AND CF.Value IS NOT NULL
  | format=ul
  | order by=GD._pageName
}}
</div>
<div style="margin-right: 2.5em;">
==== Other EMP-Sensitive Objects ====
{{#cargo_query:
  | tables=GeneralData=GD,ExtraInfo=EI,ItemsTable=IT,CreatureFactions=CF
  | join on=GD.JoinKey=EI.JoinKey,GD.JoinKey=IT.JoinKey,GD.ObjectID=CF.ObjectID
  | fields=
      CONCAT('{{((}}favilink id{{!}}',CONCAT(GD.ObjectID),'{{))}}')=Object
  | where=EI.Info LIKE '%EMP Sensitive,,,%' AND GD._pageNamespace = 0 AND CF.Value IS NULL AND IT.WornOn IS NULL AND (GD.Categories <> 'Melee Weapons' AND GD.Categories <> 'Axes' AND GD.Categories <> 'Long Blades' AND GD.Categories <> 'Short Blades' AND GD.Categories <> 'Cudgels' AND GD.Categories <> 'Rifles' AND GD.Categories <> 'Pistols' AND GD.Categories <> 'Bows' AND GD.Categories <> 'Heavy Weapons' AND GD.Categories <> 'Thrown Weapons' AND GD.ObjectID <> 'Point-Defense Drone' AND GD.Categories <> 'Furniture')
  | format=ul
  | order by=GD.Categories,GD._pageName
}}
</div>
</div>
 
== Reality Distortion Based ==
Capabilities that are reality distortion based are subject to being interfered with by [[normality]].  
Capabilities that are reality distortion based are subject to being interfered with by [[normality]].  


Line 31: Line 106:
Some mutation parts can also be configured for this property, using fields called either <code>IsRealityDistortionBased</code> or <code>RealityDistortionBased</code>.  There is no way to change these fields via Mutations.xml, so this is only manipulable by scripting mods.
Some mutation parts can also be configured for this property, using fields called either <code>IsRealityDistortionBased</code> or <code>RealityDistortionBased</code>.  There is no way to change these fields via Mutations.xml, so this is only manipulable by scripting mods.


===Occluding===
== Occluding ==
Occluding objects are objects that block a character's field of view. Objects that are occluding also block non-seeping [[gases]] from passing through their tile. In terms of AI, even though the enemy knows their target is behind an occluding object, and the object does not block bullets, they will still refuse to fire until they are able to see their target again. Occluding items can also prevent NPCs from witnessing the player stealing an object. The most common class of objects that occlude light are [[:Category:Walls|walls]] (including closed [[:Category:Doors|doors]] and [[:Category:Wall Traps|wall traps]]). Other occluding objects are shown below.<ref>Occlusion can be set on an object by adding <code>Occluding="true"</code> in the object's <code>Render</code> part.</ref>
Occluding objects are objects that block a character's field of view. Objects that are occluding also block non-seeping [[gases]] from passing through their tile. In terms of AI, even though the enemy knows their target is behind an occluding object, and the object does not block bullets, they will still refuse to fire until they are able to see their target again. Occluding items can also prevent NPCs from witnessing the player stealing an object. The most common class of objects that occlude light are [[:Category:Walls|walls]] (including closed [[:Category:Doors|doors]] and [[:Category:Wall Traps|wall traps]]). Other occluding objects are shown below.<ref>Occlusion can be set on an object by adding <code>Occluding="true"</code> in the object's <code>Render</code> part.</ref>