≪

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
octa:objectgimmick [2026/07/25 21:33] – gameboyadv4002octa:objectgimmick [2026/11/05 17:30] (current) – gameboyadv4002
Line 1: Line 1:
 ====== Object Gimmicks ====== ====== Object Gimmicks ======
 +=====8-Ball =====
 +Obj_VictoryBallOcta is a fairly simple object on its own. The below example is taken from A03 Wassup 8-Ball Station (OctVBallUpDown):
 +<code>
 +    - Id: obj242
 +      IsEnableCulling: true
 +      IsLinkDest: true
 +      IsRotLaunchDashRing: false
 +      LayerConfigName: Cmn
 +      Links: {}
 +      ModelName: null
 +      Rotate: {X: 0.00000, Y: 0.00000, Z: 0.00000}
 +      Scale: {X: 1.00000, Y: 1.00000, Z: 1.00000}
 +      Team: !l 2
 +      Translate: {X: -297.50000, Y: 60.00000, Z: 670.00000}
 +      UnitConfigName: Obj_VictoryBallOcta
 +</code>
 +
 +If the 8-Ball falls below its original height for a little over a second, the mission failure is triggered. Note that if the ball falls down a slope of 30 degree incidence or less, it still counts as falling.
 +
 +A quick guide to fall speeds depending on slope incidence, measured in seconds needed to cross 180 units:
 +
 +|   ^ Starting at 0 vel^  Max vel^
 +^ 75 deg   |      2.566|      1.466|
 +^ 60 deg   |      2.066|      0.833|
 +^ 45 deg   |      1.266|      0.600|
 +^ 30 deg   |      1.200|      0.600|
 +
 +====8-Ball Launcher====
 +Obj_DashRingVBall(Strong)Octa will toss any VBall that enters its radius. The following example is from E04 Heinous 8-Ball Station (OctVBallPiroPiro):
 +<code>
 +    - Id: obj16
 +      InnerRadius: 20.00000
 +      IsAttractCenter: true
 +      IsLinkDest: false
 +      LayerConfigName: Cmn
 +      Links: {}
 +      ModelName: null
 +      Rotate: {X: 0.00000, Y: 90.00000, Z: 90.00000}
 +      Scale: {X: 1.00000, Y: 1.00000, Z: 1.00000}
 +      Team: !l 2
 +      Translate: {X: -539.92970, Y: 111.10160, Z: -840.03910}
 +      UnitConfigName: Obj_DashRingVBallStrongOcta
 +</code>
 +
 +The following is the amount of seconds in the air and distance units covered for a given angle (assuming 90 is pointing straight up):
 +|   ^ Seconds in Air^  Distance covered while in Air^  Distance after rolling^
 +^ 85 deg   |      1.866|      ~015|      ~015|
 +^ 80 deg   |      1.866|      ~040|      ~070|
 +^ 75 deg   |      1.800|      ~075|      ~130|
 +^ 60 deg   |      1.666|      ~140|      ~200|
 +^ 45 deg   |      1.466|      ~180|      ~330|
 +^ 30 deg   |      1.233|      ~180|      ~370|
 +^ 15 deg   |      0.866|      ~150|      ~390|
 +
 +and for the Strong variant:
 +|   ^ Seconds in Air^  Distance covered while in Air^  Distance after rolling^
 +^ 85 deg   |      2.333|      ~030|      ~030|
 +^ 80 deg   |      2.433|      ~090|      ~090|
 +^ 75 deg   |      1.833|      ~130|      ~200|
 +^ 60 deg   |      2.266|      ~230|      ~320|
 +^ 45 deg   |      1.800|      ~310|      ~450|
 +^ 30 deg   |      1.466|      ~360|      ~540|
 +^ 15 deg   |      1.033|      ~400|      ~540|
 +
 +===== Timed Splat Switch (Reversible Paintable Target) =====
 +Despite name and appearance, Obj_SwitchPaint(Small)Timer(Octa) is fairly different object from the perspective of a level editor. The most important part is that it instead refers to RailToggleOcta, the object that allows objects attached via ActorBindable to move back and forth across a rail according the player action. A more complete explanation can be found at [[blitz:special|Invisible Objects]].
 +
 +This example is from E11 Bodacious Rotation Station (OctBigRotate)
 +<code>
 +    - Id: obj549
 +      IsLinkDest: false
 +      IsPlayTimerSE: false
 +      IsUsePredictAlertOnOff: false
 +      LayerConfigName: Cmn
 +      Links:
 +        ActorBindable:
 +          - {DefinitionName: ActorBindable, DestUnitId: obj511, UnitFileName: ''}
 +        Switchable__SendTo:
 +          - {DefinitionName: Switchable__SendTo, DestUnitId: obj550, UnitFileName: ''}
 +      ModelName: null
 +      OffCounter: !l 660
 +      Switchable__InitialState: !l 0
 +      Switchable__RespawnReset: !l 2
 +      Team: !l 2
 +      UnitConfigName: Obj_SwitchPaintSmallTimerOcta
 +</code>
 +  * OffCounter: used to measure how long the SwitchPaintTimer remains active for before reverting
 +
 +===== Toggleable Splat Switch (Reversible Paintable Target) =====
 +Obj_SwitchPaintToggleOcta is identical to Obj_SwitchPaint in terms of byaml contents. The difference is the ability to enemies to paint them over, which reverses their effects when directed through a [[invisobject|Obj_LiftReverseObjOcta]]. Using an OffCounter timer to reset the Switch has the same effects as being painted over with hostile ink.
 +
 ===== Damage Laser ===== ===== Damage Laser =====
 These are the lasers normally exclusively seen in Escape 4: Intestinal Phase. They serve quite a useful function as insta-kill object, allowing for the creation of custom level boundaries and hazards. These are the lasers normally exclusively seen in Escape 4: Intestinal Phase. They serve quite a useful function as insta-kill object, allowing for the creation of custom level boundaries and hazards.
  
-Both of the current map editors use the generic box for the damage laser asset. The laser itself is roughly 2/3 of the length of the box, with the laser going from the U side to the D side. It should be noted, the hitbox can stretched in all directions, not just the Y axis (the axis which the laser itself visibly extends across). It is recommended this is only used if you are trying to make insta-kill boundaries, such as the kill zone at the bottom of the map.+Both of the current map editors use the generic box for the damage laser asset. The laser itself is roughly 2/3 of the length of the box, with the laser going from the U side to the D side. It should be noted, the hitbox can stretched by scaling the X axis, not just the Y axis (the axis which the laser itself visibly extends across). This extends the hitbox in both the X and Z dimensions (scaling the Z axis appears to have minimal effect), seemingly in the shape of a circle. This hitbox appears to be roughly 1/3 the width of the box.  
 + 
 +It is recommended to mainly use X axis scaling for making insta-kill boundaries due to the lack of visual clarity. Another issue is that lasers do not consistently render upon respawn. Further research is needed as to the circumstances.
  
 While setting it to team 0 makes it appear the player's colour, it is still insta-kill. I would recommend keeping it a team 2 for visual clarity. While setting it to team 0 makes it appear the player's colour, it is still insta-kill. I would recommend keeping it a team 2 for visual clarity.