Skip to content

Field abilities

PlayerControl offers multiple player abilities and it manages 6 of the 7 available in the game (Beemerang Halt is managed separately in the Beemerang logic). This page focuses more on describing what these abilities do in detail rather than their actuation or requirements to use them which are explored in DoActionTap and DoActionHold.

This page will detail what each abilities does once actuated.

Bee's field abilities

This section will detail Bees field abilities. Exceptionally, Bee only has 2 instead abilities because while Beemerang toss is managed in PlayerControl, Beemerang halt is managed in Beemerang.

Beemerang Toss

This ability causes a Beemerang to be created and assigned to the player's beemerang. The beemerang is only destroyed and set to null when its travel is over or when some other circumstances cancels its travel so it is one of the only dynamically created NPCControl in the game.

The travel and colliders management logic as well as Beemerang halt is handled in NPCControl, but the game still has special logic when it comes to things that collides with the player's beemerang which also has a unique BeeRang tag. Here's what this collider allows:

  • When the beemerang collides with an Item, as long as some other specific conditions are fufilled, the item's beerang will be set to the player's beemerang which will have the item move alongside the beemerang and prevent any Hazard from respawning the item
  • When the beemerang collides with an Enemy, it places them in a dizzy state
  • All collisions with Hazards and the player's beemerang are ignored
  • If thrown near an NPC with a SteathAI behavior, the player gets spotted
  • During a WackaWorm game, a worm colliding with the player's beemerang causes them to get hit and increment the score. Also, the game's timer doesn't decrease while the player's beemerang exists
  • The player's beemerang is the only practical way to actuate a ScrewSwitch in a sustainable fashion
  • Collisions with the player's beemerang and these NPCControl are recognised:

Bee Fly

This ability's main feature is setting flying to true which mainly causes changes in the movement logic as well as some other visual logic in EntityControl for up to 240.0 frames:

  • entity.rigid no longer has gravity
  • entity.rigid y velocity is zeroed out on each LateUpdate so only x/z movements are possible
  • The player y position constantly increases up to + 1.0 every LateUpdate using a lerp from the existing one to the starting value when the flight was started (startheight) + 1.0 with a factor of 0.05
  • The spd movement speed used by Movement is halved from regular movement logic

Beetle abilities

This section will detail Beetles field abilities. They have 4 abilities available.

Horn Slash

This ability creates a BeetleHorn tagged trigger collider that lives for only 0.15 seconds, but it has special properties because it is recognised by many other colliders in the game. Here is how these colliders reacts when colliding with a BeetleHorn tagged collider:

  • Hornable: Allows to move the object
  • MusicSpinner: Allows to hit and roll the spinner
  • BreakableRock: Allows to shake, but not destroy the rock
  • SavePoint: Allows to interact with the save to save the game
  • PushRock: Allows to move the object
  • CoiledObject: Allows to uncoil the object trapped
  • Switch, StencilSwitch and WaterSwitch: Allows to actuate all of these switches
  • BeetleGrass: Allows to cut the grass
  • ScrewSwitch: Allows to very slightly actuate the switch, but not enough for sustained actuation
  • Geizer: Allows to break a frozen geizer
  • An Enemy: Allows to move the enemy into a dizzy state
  • Any NPCControl whose entity's name has the ITAH modifier: Allows for the NPCControl to call Interact
  • JumpSpring: Allows to make the spring bounce
  • Any ShakeHorn: Allows to shake the object

Dash

This ability is very similar to horn slash detailed above, but the player is dashing which means the collider now stays in front of the player as long as the dashing is in effect.

This is the NON upgraded version of the dash, the upgraded version is detailed in the section below.

It means that while the colliders effects are the same, the difference comes from the player dashing which causes a complete override of most inputs processing and Movement by DashBehavior which uses its own movement tracking fields such as dashdelta. Overall, movement inputs are more delayed and harder to control because the direction vector is based on a lerp of where the movement inputs are pointing towards where the factor is relatively small.

Here is what changes when the player is dashing:

  • The CloseMove logic never applies on followers
  • UpdateVelocity ensures that the entity.rigid y velocity is clamped from -20.0 to jumpheight * 1.5
  • The act of placing an Enemy in a dizzy state doesn't happen because while the collider allows it, it doesn't take effect when the player is dashing
  • entity.speed is always basespeed * 2.5. Since basespeed should always be 5, it means the entity.speed is always 12.5 while it normally would have been 6.5 (when no dynamic friction is on the ccol) or 7.8 (when there is dynamic friction on the ccol)

Horn Dash

This ability is almost identical to the dash, but it is upgraded because the only difference besides some visuals changes is the collider tag is not BeetleHorn, but BeetleDash. The player dashing still functions the same way so the only change is the collider tag which generally provides more benefits.

This collider includes all of the effects of BeetleHorn and all of the effects of dashing with the following changes:

  • BreakableRock: Allows to destroy the rock instead of just making it shake
  • The act of placing an Enemy in a dizzy state can now happen even while dashing and if they were frozen, they are immeditately unfrozen
  • Any NPCControl whose entity's name has the ITHD modifier: allows for the NPCControl to call Interact. It now means that both ITAH and ITHD modifiers are recognised

Beetle dig

This ability allows to ignore certain colliders and it also include some NPCControl changes as well as some movement changes. Actuating it will set startdig to true which will make FixedUpdate decrease the entity.sprite local y position so it reaches -2.0. Only when it reaches -1.5 will digging be set to true and include all the abilities's benefits and changes.

Here's what a digging does:

  • It avoids detection by a DeadLanderOmega
  • It avoids detection by an NPCControl with StealthAI
  • DigWall colliders gets disabled so it allows to pass through them
  • NPC and Enemy never have their inrange beahvior take effect, only their default one takes effect
  • It avoids Event 116 (getting crushed) to trigger by colliding with a RollingRock
  • A ToeBitter enemy has its ShootProjectile change such that it yields all frames until the player stops diggin so they cannot throw a rock until that happens
  • CameraChange collisions are ignored and they will not cause any camera changes
  • Ending the dig by releasing the ability input sets uproot to true for 0.1 seconds which reveals the hidden object under a DigSpot
  • The spd movement speed used by Movement is divided by 1.5 from regular movement logic

Moth abilities

This section will detail Moths field abilities. They have 3 abilities available.

Freeze

This ability creates an Icecle tagged trigger collider that lives for only 1.0 seconds, but it has special properties because it is recognised by many other colliders in the game. Here is how these colliders reacts when colliding with a Icecle tagged collider:

  • SavePoint: Allows to interact with the save to save the game (doing so will call Kill on the Icecle's DestroyOnLayer)
  • CoiledObject: Allows to uncoil the object trapped
  • Switch, StencilSwitch and WaterSwitch: Allows to actuate all of these switches
  • Dropplet: Allows to hit the dropplet which turns it into an ice cube
  • Geizer: Allows to freeze the geizer
  • Any Enemy: Allows to freeze the enemy or to renew an existing freeze
  • JumpSpring: Allows to make the spring bounce

Icicle

This ability creates a Prefabs/Objects/icecle GameObject with the icefall tag with a RigidBody that has its gravity enabled with a y position of 4.0. It will fall down until colliding with layer 8 (Ground) or 13 (NoDigGround) trigger collider where the GameObject gets destroyed.

Due to the icefall tag and the presence of a BoxCollider on the GameObject, it has special properties because it is recognised by many other colliders in the game. Here is how these colliders reacts when colliding with a icefall tagged collider:

  • Water type Hazards: Creates a Prefabs/Objects/iceplatform GameObject that acts as a frozen platform
  • Switch, StencilSwitch and WaterSwitch: Allows to actuate all of these switches
  • Geizer: Allows to freeze the geizer

Shield

This abilities allows to reveal the bubbleshield GameObject which is a Prefabs/Objects/BubbleShield GameObject that lives on PlayerControl.

The GameObject is untagged, but the ability also sets the player to be in a shield. This changes some collisions logic:

  • The player party and their followers will Follow the player much more closely than usual
  • GlowTrigger's hbox collider changes to be offscreen which prevents their elecharz Hazards component from colliding with the player
  • WalkableSpike Hazards have their col center moved offscreen so the Hazards cannot be collided with
  • Prevents to start a battle with an Enemy and instead, it places them in a dizzy state
  • Prevents any OverworldProjectile launched due to any ShootProjectile to start a battle
  • The spd movement speed used by Movement is divided by 1.5 from regular movement logic