Requirement
##Overview
The Requirement
setting applies one or more mandatory requirements to Rooms - the room will not become active until the specified requirements have been met.
##Syntax
The setting is used in materials.txt
and must be within a BEGIN Room ...
definition block. It can be used multiple times per definition block, once for each <requirement>
.
BEGIN Requirement Type <requirement> END
Each <requirement>
is a bit like a block in that it can have multiple settings, however they do not have their own BEGIN ... END
wrappers (see "Examples" later on this page and it will make more sense).
A list of available
-
MinimumSize
x <tiles>
y <tiles>
- room must be at least this size -
Enclosed
- room must be enclosed (walls/doors all around it) -
Secure
- room must be secure (no escape routes) -
Indoor
- room must be indoors -
Outdoor
- room must be outdoors -
Object *
Id <objectId>
- room must contain specified object -
AdjacentObject *
Id <objectId>
- specified object must be next to room
##Example
Taken from the [Shop
(Room)](Shop (Room)):
BEGIN Requirement Type MinimumSize x 4 y 4 END
BEGIN Requirement Type Indoor END
BEGIN Requirement Type Object Id Table END
BEGIN Requirement Type Object Id ShopShelf END
BEGIN Requirement Type AdjacentObject Id ShopFront END
##Notes
Secure
and Enclosed
are never used together in the base game.
Indoor
and Outdoor
requirements are incompatible with each other. If neither of them are specified, your room can be placed both indoors and outdoors.
Custom objects must be declared above the room definition in materials.txt in order for them to be valid room requirements. Otherwise the game will say "Failed: None".
Requirements are not currently exposed via the object scripting API :(
##See Also
^ Open "Pages" to Search
Settings:
*
= multi-use per block...
=BEGIN...END
block
-
Name
<objectId>
-
AttachToWall
true|false
-
AttackPower
<number>
-
AutoOrder
<objectId>
-
AutoOrderQuantity
<num>
-
BlockedBy *
<groupId>
-
BlockMovement
true|false
-
BlockVisibility
true|fals
-
Capturable
true|false
-
ConstructionTime
<time>
-
Contraband ... *
<eqipId>
- [
Entity
](Entity (Callout))<entityId>
-
Equipment
<equipmentId>
-
Group
<groupId>
-
Height
<tiles>
-
IndoorOutdoor
<mode>
-
LikelyObject ... *
<objId>
-
MadeOf
<id>
-
MaxNumber
<number>
-
MaxStackSize
<number>
-
MoveCost
<number>
-
MoveSpeedFactor
<number>
-
NumEntities
<number>
-
NumSlots
<number>
-
NumSprites
<number>
-
ObjectRequired
<consumableId>
-
Price
<number>
-
Properties *
<id>
-
Qualification
-
Range
<tiles>
-
RechargeTime
-
RenderDepth
<number>
-
RenderPostOffset
<number>
-
RenderPreOffset
<number>
-
Requirement ... *
<id>
-
Research
[<researchId>
](Name (research.txt)) -
Rotatable
true|false
-
Scale
<number>
-
SoftEdged
<mode>
-
Sprite
<spriteId>
- [
Sprite ... *
](Sprite (sprites.png))x <offset> y <offset>
w <offset> h <offset>
-
RotateType
<mode>
Marker ... *
-
Sprite0..N ... *
x <x> y <y>
-
SpriteOverlayScale
<num>
-
SpriteScale
<number>
-
SpriteType
<mode>
-
SpriteVariants
<number>
-
StackSprite
<spriteId>
-
Teleportable
true|false
-
ToolbarSprite
<spriteId>
-
Toughness
<number>
-
TwoHanded
true|false
- [
Vehicle
](Vehicle (Callout))<vehicleId>
-
ViewRange
<tiles>
-
Width
<tiles>
-
Workers ...
-
Workgroup
<id>
Equipment:
Name Sprite AttackPower num RechargeTime num Properties Weapons Properties NoImport Properties Improvised Properties Metal Properties Tools Scale TwoHanded true|false Range num Rotatable true|false - eg. book
Callouts:
Name Cost num MaxNumber num Vehicle vehicleId Entity entityId NumEntities Sprite