Plasma Wall

From Serious Sam Wiki
Jump to: navigation, search
Editor model of CPlasmaWallEntity using the default params. Info 16x16.png Note: There is no editor model when a new CPlasmaWallEntity is created.

General information

Class: CPlasmaWallEntity

The plasma wall is a door-like object that can be activated and deactivated. When active, it behaves like a solid wall. When inactive, anything may pass through it. This is a common puzzle mechanic in The Talos Principle.

Properties

The parameters of the Plasma wall


Width (FLOAT)

Sets the width of the Plasma wall


Info 16x16.png Note: This property moves the Plasma wall's model to align with the width of the blue field
Height (FLOAT)

Sets the height of the Plasma wall


Info 16x16.png Note: This does not change the Plasma wall's model. The Plasma wall's model is about 2.75 units tall.
Segments (INDEX)

The number of segments the Plasma wall consists of. This is used in conjunction with the "Curvature" property.


Warning 16x16.png Warning: Setting this value to anything other than 1 is discouraged by the editor. Look under Other Information if you want to use this property.
Curvature (FLOAT)

The angle by which two conjoining segments are "bent." This is used in conjunction with the "Segments" property. ADD A PICTURE??


Warning 16x16.png Warning: Setting this value to anything other than 0 is discouraged by the editor. Look under Other Information if you want to use this property.
Auto activate (BOOL)

Sets the default state of the Plasma wall (activated or deactivated)


Sets the activators for the Plasma wall. The activators change the state of the Plasma wall. If no activators are chosen, then the Plasma wall will remain in its default state, unless activated/deactivate by a script.


Illumination (Color3f)

Sets the color and intensity of the light affect applied to the Plasma wall.


Visibility box factor Y (FLOAT)

To do: Add description


Fast light configuration override (INDEX)

To do: Add description


Spawn flags (LFLAGS)

Defines in which difficulty levels and game types the Plasma wall is spawned.


Name (CString)

Defines the name of the Plasma wall.


Defines a entity pointer to the parent of the Plasma wall.


Platforms (LFLAGS)

Defines on which platforms the Plasma wall is spawned.


Entity ID (ULONG)

Displays the entity ID of the Plasma wall.


Info 16x16.png Note: Entity ID cannot be edited.

Script Functions

Methods

CPlasmaWallEntity Methods
Name Parameters Return Data Type Description
Name Data Type
Activate - void Activates the Plasma wall
Warning 16x16.png Warning: Behaves strangely if the activators under the Plasma wall's properties are set
Deactivate - void Deactivates the Plasma wall
Warning 16x16.png Warning: Behaves strangely if the activators under the Plasma wall's properties are set
ForceClose - void Activates the Plasma wall and then permanently keeps it activated until ForceOpen() is called
ForceOpen - void Deactivates the Plasma wall and then permanently keeps it deactivated until ForceClose() is called
IsOpen - BOOL Returns TRUE if the Plasma wall is deactivated
RequestActivation penActivator CBaseEntity* void To do: Add description
RequestDeactivation penDeactivator CBaseEntity* void To do: Add description
CBaseEntity Methods
Name Parameters Return Data Type Description
Name Data Type
ApplyDamageTool
SEd3.5 or higher
DamageSource CString void To do: Add description
DamageType CString
WeaponIndex WeaponIndex
CharacterClass IDENT
Damage SLONG
EnableReceiveDamageScriptEvent
SEd3.5 or higher
- void Enables ReceiveDamage script events (see below).
Warning 16x16.png Warning: This function disables native damage handling.
EnableTouchAutoMoveTarget
SEd4.0 only
Enabled BOOL void Enables the entity to become an auto move target.
GetAngularVelocity - Vector3f Returns angular velocity of the entity in Vector3f format.
GetAttachmentAbsolutePlacement Attachment IDENT QuatVect Returns placement of attachment in relation to World Spawn in QuatVect format.
GetAttachmentRelativePlacement Attachment IDENT QuatVect Returns placement of attachment in relation to entity in QuatVect format.
GetClassName
SEd3.5 or higher
- CString Returns classname in CString format.
GetLinearVelocity - Vector3f Returns linear velocity of entity in Vector3f format.
GetName - CString Returns the name of the entity in CString format.
GetParent Name IDENT Handle Returns a CBaseEntity handle of the parent of the entity.
GetPlacement - QuatVect Returns position and orientation of the entity in QuatVect format.
GetWorld
SEd3.5 or higher
- CWorld* To do: Add description
GetWorldInfo
SEd3.5 or higher
- CWorldInfoEntity* To do: Add description
InflictDamage Amount SLONG void Inflicts damage to entity.
InflictDamageOfType Amount SLONG void Inflicts damage of a specified damage type to entity.
DamageType CString
InflictDamageToTarget
SEd3.5 or higher
Target Handle void To do: Add description
Amount SLONG
Weapon IDENT
DamageType CString
InflictWeaponDamage
SEd3.5 only
Amount SLONG void To do: Add description
Weapon IDENT
DamageType CString
IsDestroyed - BOOL Returns 1 if entity is destroyed.
IsReceiveDamageScriptEventEnabled
SEd3.5 or higher
- BOOL Returns 1 if ReceiveDamageScriptEvent is enabled (see above).
SetAngularVelocity AngVelocity Vector3f void Sets angular velocity of entity to the specified Vector3f value.
SetLinearVelocity Velocity Vector3f void Sets the velocity of the entity to the specifed Vector3f values.
SetPlacement Placement QuatVect void Sets position and orientation of the entity to the specified QuatVect values.

Events

Closed
Triggers when the Plasma wall closes. (or more specifically, when it is activated)
Info 16x16.png Note: Unjamming the Plasma wall will not trigger the event.
Destroyed
Triggers when the Plasma wall is destroyed.
EntityDeleted → SEd3.5 or higher
Triggers when the Plasma wall is deleted.
Jammed
Triggers when the Plasma wall is jammed.
Opened
Triggers when the Plasma wall opens. (or more specifically, when it is deactivated)
Info 16x16.png Note: Jamming the Plasma wall will not trigger the event.
ReceiveDamage → SEd3.5 or higher
Triggers when the Plasma wall receives damage.
Info 16x16.png Note: This event requires enabling via EnableReceiveDamageScriptEvent method.

Other Information

If the Segments and Curvature are being used, it is suggested to make the Plasma wall relatively smooth. That is to say that the number of segments should be high and the width should be small. While the blue field of each segment appears to be at a different angle to other segments, the collision boxes of each segment all have the same rotation of the first segment. If the Plasma wall is not smooth enough, the player will feel jagged areas around the Plasma wall and they might even be able to walk through it. The smoother the Plasma wall is, the less this error is noticeable.

Relevant Pages and Links

Jammer
Switch
Pressure Plate
Transponder