player extensions

From Wiki

Jump to: navigation, search


corkscrew_power

Introduced around 1.1.1.7, this extension exponentiates the corkscrew gesture. The gesture is most sensitive at 1. The default power is 2. Refer to #do_not_corkscrew. Values are limited to real numbers.[#]

do_not_corkscrew

Introduced around 1.1.1.7, this extension in the affirmative eliminates the "corkscrew" maneuver that occurs when turning and moving in the same direction resulting in the player character turning at an accelerated rate. When dashing the accelerated turning is accompanied by ducking resulting in a downward spiral, or corkscrew.

It is still possible to corkscrew manually using the CORKSCREW extended #keyboard key code. Values are limited to binary statements.[#]

do_not_dash

Introduced around 1.1.1.7, this extension in the affirmative eliminates dashing maneuvers when pressing the SPACE #keyboard key, or "Action" button. Know that "dashing" includes many kinds of actions not limited to climbing, crouching, and sneaking.

It is still possible to dash manually using the DASH extended keyboard key code. Values are limited to binary statements.[#]

do_not_duck

Introduced around 1.1.1.7, this extension in the affirmative eliminates ducking, or crouching, when pressing the SPACE #keyboard key, or "Action" button.

It is still possible to duck manually using the DUCK extended keyboard key code. Values are limited to binary statements.[#]

do_not_jump

Introduced around 1.1.1.7, this extension in the affirmative eliminates the jumping maneuver that can occur automatically on release of the DASH extended #keyboard key code (including the SPACE keyboard key, or "Action" button, when #do_not_dash is not switched on) under different input scenarios.

It is still possible to jump manually using the JUMP extended keyboard key code. Values are limited to binary statements.[#]

Tip: manual jumping puts the player at a slight disadvantage, and may prove impossible to execute effectively without a game controller.

do_not_rush

Introduced around 1.1.1.7, this extension in the affirmative eliminates the dodging and or rushing maneuver normally experienced when tapping the DASH extended #keyboard key code and the SPACE keyboard key, or "Action" button, when #do_not_dash is not switched on.

This extension is not recommended. It exists in order to remove the ducking behavior facilitated by #player_character_duck, which should itself be set to 0 to fully remove ducking. Ducking corresponds to the acceleration from walking to dashing speed, so without rushing the duck may be short lived, and then appear unnatural or unpleasant.

There are no plans to add a manual rushing feature (via a RUSH extended #keyboard key code) at this time. Values are limited to binary statements.[#]

player_character_bob...

Introduced around 1.1.1.7, this extension establishes the distances covered by bobbing (and derivative) walking effects when moving at peek speeds. The default value is 0.075, or about 3 inches, when the part after player_character_bob is omitted. Values are limited to positive real numbers.[#]

player_character_bob2 Introduced around 1.2.0.8, this extension affects the horizontal swaying effect. The default is the same. This replaces sway_distance_multiplier. Values are limited to positive real numbers.[#]

player_character_dip...

Introduced around 1.1.1.7, this extension establishes how far the player character may dip when landing flat footed. Maximum dip is achieved after a relatively short fall, or even a jump. This effect is not intended to encompass falls from great heights. Refer to #do_buckle.

The part after player_character_ can be omitted or 2. The defaults are 0.3 and 0.532359, or 30 degrees. player_character_dip2 contributes a nodding effect. Refer to #player_character_nod.... Values are limited to positive real numbers.[#]

player_character_duck...

Introduced around 1.1.1.7, this extension establishes how far the player character ducks down when dashing and ducking all of the way down to the ground while remaining flat footed. When dashing the lowest point is reached after #tap_or_hold_ms_timeout.

The part after player_character_ can be omitted or 2 or 3. The defaults are 0.15, 0.3, and 0.75. 2 is reserved for future use, 3 is reached by doing a standing jump from the lowest point, also known as ducking. Values are limited to positive real numbers.[#]

Note: since 1.2.0.4 player_character_duck is borrowed by the "corkscrew" maneuver, so that it is doubled when dashing.

player_character_fence...

Formerly player_character_ascent in 1.1.1.5 and 6.

Introduced around 1.1.1.7, this extension establishes the height of obstacles that the player character is able to pass over. The default is 0.5 meters, or about 20 inches, when the part after player_character_fence is omitted. This is the height of platforms that Sword of Moonlight will natively step up onto. It is recommended that this figure be lowered to around 0.3, or about a foot, because 0.5 meters is much higher than a tall person is easily able to step up onto, much less the default 1.6 meter tall player character supplied by Sword of Moonlight.

1.1.1.7 adds four more levels, player_character_fence2, 3, 4, and 5. At level 2 the player must lean into the obstacle and press the SPACE #keyboard key, or "Action" button, to climb up onto and over it. The way the player character climbs is related to #player_character_dip. At level 3 the player character should be able to hang down by their hands from the platform. At level 4 the player character is able to reach the platform by performing a standing jump and grabbing with their hands. Finally level 5 is a standing jump lifting off from #player_character_duck3. Otherwise it works identically to 4.

Note that it may not be possible to grip the platform, or the player may lack the strength, but the player is still able to reach interactive elements placed at levels 3 and 4. As for 4, #do_g (gravity) must be switched on or the player will not be able to jump. Likewise the power of the jump is a function of 4 minus 3 and gravity.

The defaults for 2 through 5 are all 0, so you must set these up in order for them to work. It is safe to leave some at 0 or to have subsequent levels equal to one another. Values are limited to positive real numbers.[#]

Note: that Sword of Moonlight itself uses 0.51. Just in case the 0.01 part is important, 0.01 is automatically added to each fence.

player_character_height...

Introduced around 1.1.1.7, this extension establishes the physical height of the player character for purposes of passing underneath obstacles. When the part after player_character_height is omitted the default height is 1.6 meters, or about 5 foot 3 inches, corresponding to the physical height of the character when standing upright. Values are limited to positive real numbers.[#]

Note: It is recommended that #pov_baseline_adjustment be used to achieve an apparently taller or shorter player character, either to be in keeping with the narrative of the game or to customize height in order to enhance immersion, without inadvertently making areas of the game inaccessible or the game itself unwinnable. Heights above 1.8 meters may not fit under the doorways that come with Sword of Moonlight. It may or may not be possible to make a character appear to be slightly taller, but they will appear to be a giant in an otherwise dwarfish world. It might make more sense to shrink the NPCs for the time being (unfortunately there is not an extension for that. Yet.)

player_character_inseam

Introduced around 1.1.1.8, this extension establishes a distance roughly analogous to the difference in the player character's height when squatting down, or straddling the side of the highest ledge possible. The default is 0 meters. In which case #player_character_fence is used where this extension is preferred. This figure is used along with #player_character_shape to alight from platforms, but is not limited to this role. Normally you set it to be somewhere between player_character_fence and player_character_fence2. Values are limited to positive real numbers.[#]

player_character_nod...

Introduced around 1.1.1.7, this extension establishes symmetric angular limits when the player character looks up and down. The default value is 0.785398 radians, or plus or minus 45 degrees, when the part after player_character_nod is omitted. player_character_nod2 sets an outer limit reached by holding down the controls that defaults to 90 degrees. Values are limited to positive real numbers.[#]

player_character_radius...

Prior to 1.1.1.7 "player_character_radius" referred to #player_character_shape.

Introduced around 1.1.1.7, this extension establishes the interaction distances for in game elements. The default is 1.75 meters when the part after player_character_radius is omitted. This distance applies to NPCs, including "enemies", for purpose of event activation. It is the distance preferred by Sword of Moonlight for event activation, not from the center, but as added to the clipping radius of the in game elements its events are associated with. However 1.75 is not the default radius for non-NPC elements including events and built in facilities. That is established by player_character_radius2 which defaults to 0.75 meters.

Caution: 0.75 meters is a breaking change instituted by the Extension Library. The figure approximates the length of the default player character's legs, or the combined reach of the arm and upper body as if stretching to touch your toes. Care should be taken with games not originally made with this distance in mind (as elements may be inadvertently placed out of reach.)

Item pickup is established by player_character_radius3. It defaults to player_character_radius2. Unlike other elements items do not take up any space as such, and so the distance is from center to center. Likewise player_character_radius4 applies to money pickup and defaults to player_character_radius3. Values are limited to positive real numbers.[#]

Note: as of 1.1.1.8 doors (as they are not well understood) are handled differently. Their activation distance is a function of player_character_radius plus half the width of the door. Technically half the depth if greater than the width. Doors will behave like any other non-NPC element as soon as sufficient information about them becomes available.

player_character_shape...

Formerly player_character_radius prior to 1.1.1.7

Introduced around 1.1.1.7, this extension establishes the player character's shoulder width as measured from the center. Conceptually the classical character is cylindrically shaped, circular around the width and depth. The default radius is 0.25 meters however it should be noted that this is the radius used by Sword of Moonlight. A number of extensions work best with a radius of at least 0.325 meters. 0.5 meters is a good place to start with a new game project.

Since 1.1.1.7 you can set player_character_shape2 to change the "hitbox" radius, however it is unclear whether or not this is best practice, and even if set to near 0 many of Sword of Moonlight's stock monsters have attack radii that will land hits that look like near misses. Their PRF files may require attention. Values are limited to positive real numbers.[#]

Note that technically player_character_shape2 is reserved to set the smallest space that the player character is able to squeeze into. Which is then used as its default "hitbox" radius.

player_character_slip

Introduced around 1.1.1.8, this extension enables a "slip" effect and establishes the ground speed at which the player character will "fly" over platforms below #player_character_fence without losing speed. True to life. Lower speeds are met with ever greater adversity.

The default is 0 meters per second. How this effect works is a more involved than usual. Conceptually two circles exist at the player character's feet. The "slip" goes both ways. They can slip up stairs, for example. Or slip off of a step. Moving more quickly and pushing against obstacles causes one of the circles—lets call it the first—to grow. In the absence of moving and pushing the circle shrinks to a pinpoint. If it rests on a platform the player character does too. If it shrinks down until it no longer does so, then they slip off. At which point the second circle is initially the same size. This circle makes it possible to straddle the edge of the platform so that its side does not behave like a wall.

Fall further than #player_character_inseam and the circle grows to regular size, so that the side of the platform behaves like a wall, and it appears that the player character has taken a tumble. Otherwise the size of the circles do not change while slipping off, or falling, or stepping down, really the description depends upon the context, but the mechanics of the effect remain the same. The second circle grows along with the first as they move away. Values are limited to positive real numbers.

Note: that this effect is recommended along with a #player_character_shape of a half meter if possible. With a larger "shape" you will stand even further out over the edge of a platform in an unbelievable way if player_character_slip is 0. And for the record, the figure is subject to #pc_walk_speed_multiplier or #pc_dash_speed_multiplier. If the speed falls in the dashing range.

player_character_weight...

Introduced around 1.1.1.7, this extension establishes the player character's weight to be added to equipment and or inventory weight where applicable. The default weight is 50 kilograms, or about 110 pounds.

As of 1.1.2.2 player_character_weight is used by the default damage formula of #do_fix_damage_calculus to figure the first stat, aka. Strength, based bonuses. And player_character_weight2 is used to figure the second stat, aka. Magic, based bonuses. In 1.1.2.2 _weight2 defaults to 50. In 1.1.2.3 its default is _weight. Values are limited to positive real numbers.[#]

subtitles_ms_interim

Introduced around 1.1.1.7, this extension establishes the interval between (in fact each subtitle waits for the interval) subtitles. The time is in addition to #tap_or_hold_ms_timeout, and double that if a subtitle is the result of pressing the SPACE #keyboard key, or "Action" button, when #player_character_duck is non-zero and #do_not_dash is not switched on. The default is 300 milliseconds. Values are limited to whole numbers.[#]

Tip: negative times are allowed to subtract from the overall interval.

subtitles_ms_timeout

Introduced around 1.1.1.7, this extension establishes the duration of subtitles. The default is 1300 milliseconds. Note that the default is slightly more than what Sword of Moonlight uses, or 1000. Values are limited to positive whole numbers.[#]

tap_or_hold_ms_timeout

Introduced around 1.1.1.7, this extension tweaks keyboard and button gesture recognition. A press is determined to be a tap if release occurs before tap_or_hold_ms_timeout milliseconds. A press is determined to be a hold if not released in time.

Taps and holds may often result in different outcomes. The default timeout is 750 milliseconds. This is the timeout used by Sword of Moonlight's dashing game mechanic. If the timeout is shortened the transition from walking to dashing is shortened. Values are limited to positive whole numbers.[#]

Note: that this is an accessibility feature. 500 may make input appear more responsive, but some players may have a difficult time releasing the button with a half second. Sword of Moonlight's 750 figure likely constitutes a compromise. It should also be noted that this setting is roughly analogous to reaction and response times and may be lowered or raised according to in game parameters (eg. "Speed") so that players have the opportunity to train or practice to be able to play faster, or just to find a personal speed.