Chuckya: Difference between revisions
mNo edit summary |
m (new template) |
||
(12 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{object_infobox_2 | ||
|title= Chuckya | |title= Chuckya | ||
|image= | |image= STROOP- Chuckya.png|100×100px|A chuckya | ||
| | |group= General Actor | ||
| | |group2= Common 0 | ||
|damage= | |modelID= 0xDF | ||
| | |tangibility=1000 | ||
| | |draw= | ||
| | |gravity=4 | ||
| | |friction=10 | ||
| | |buoyancy=2 | ||
| | |interaction=Grabbable | ||
|damage= | |||
|health= | |||
|radius=150 | |||
|height=100 | |||
|hurtbox_radius= | |||
|hurtbox_height= | |||
|offset= | |||
|coins=5 | |||
|behaviorScript=[https://github.com/n64decomp/sm64/blob/master/data/behavior_data.c#L662 Chuckya Initialization Code] | |||
|behaviorCode=[https://github.com/n64decomp/sm64/blob/master/src/game/behaviors/chuckya.inc.c Chuckya behavior file] | |||
}} | }} | ||
'''Chuckyas''' are purple enemies. They try to pick up Mario, and after doing so, spin around and then throw him. They do not directly damage Mario, but can throw him into the death barrier or cause fall damage if they throw him off a ledge. Mario can defeat them by picking them up and throwing them onto the ground. | |||
'''Chuckyas''' are purple enemies. They try to pick up Mario, and after doing so, spin around and then throw him. They do not directly damage Mario, but can cause fall damage if they throw him off a ledge. | |||
==Locations== | |||
The following courses have Chuckyas: | |||
*[[Wet-Dry World]] | |||
*[[Tall, Tall Mountain]] | |||
*[[Tiny-Huge Island]] | |||
*[[Rainbow Ride]] | |||
*[[Bowser in the Sky]] | |||
== Escaping Chuckya == | == Escaping Chuckya == | ||
When Chuckya grabs Mario a counter is initialized that lets Mario escape from Chuckya if it reaches 11. The counter starts at zero, and increases by one every time the player presses the A button or moves the joystick from the inside to the outside of its radius.<ref>[https://youtu.be/_R8c70zuJSw "Escaping from Chuckya's Grasp" by UncommentatedPannen]</ref> This is possible to do 1.5 times per frame with [[pause buffering]]. | |||
== Behavior == | |||
=== Moving === | |||
Through all movement, Chuckya accelerates at a rate of 4 units/f<sup>2</sup> up to a maximum of 30 units/f and slows down at the same rate. Chuckya's movement is composed of three different steps, which loop over and over again: | |||
# Chuckya turns towards Mario in increment of maximum 1024 angular units until he is less than 4096 horizontal angular units in front of him or for 41 frames, whichever happens first | |||
#* Even if Mario is already within 4096 angular units, Chuckya will turn for at least one frame toward Mario and will stop early if it reaches exactly 0 angular units | |||
# If Mario is in less than 2000 units laterally from Chuckya's home, Chuckya will chase forwards until Mario is behind a line perpendicular to Chuckya's forward direction | |||
#* If Mario is more than 2000 units away from the home, Chuckya will turn back and move toward its home, modifying its speed until it reaches 10 speed, until it is within 500 units laterally, afterwhich it will instantly stop and wait for Mario to be within 1900 units of the home to turn again | |||
# Chuckya will stop for 48 frames | |||
Due to the way the engine functions, Chuckya's position will not be updated if Mario is more than 4000 units away from it, but its angle and speed will still update | |||
This behavior is exploited in the [[A Button Challenge]] to have Chuckya drop at the start of the stage in Bowser in the Sky<ref>[https://www.youtube.com/watch?v=opnLYxrVWMc "The Chuckya Drop" by UncommentatedPannen]</ref> | |||
=== Throwing === | |||
When Chuckya grabs Mario, a random number between 10 and 40 is generated to serve as a timer. Every frame, Chuckya will rotate by 2048 horizontal angular units counterclockwise and the timer is decreased by 1. If Mario does not escape, he will be thrown when the timer is less than 0 and one of the following conditions is met: | |||
* There is a floor no more than 50 units below a point 150 units in front of Chuckya | |||
* The timer reaches -17 | |||
Once one of those conditions is met, Chuckya will throw Mario at its anchor point (Similar to Mario's [[HOLP]]). This anchor point is only updated when Chuckya is rendered, which opens itself to [[Chuckya Wrong Throw]]. | |||
== References == | |||
<references /> | |||
[[Category: Enemies]] | {{objects}} | ||
[[Category:Enemies]] | |||
[[Category:Objects]] |
Latest revision as of 14:18, 12 October 2023
Chuckya | |
Technical Constants | |
Object Group | General Actor |
Actor Group | Common 0 |
Model ID | 0xDF |
Tangibility Radius | 1000 |
Physical Constants | |
Gravity | 4 |
Friction | 10 |
Buoyancy | 2 |
Hitbox | |
Interaction Type | Grabbable |
Radius | 150 |
Height | 100 |
Code | |
Initialization Behavior Script [1] | |
Behavior Code [2] |
Chuckyas are purple enemies. They try to pick up Mario, and after doing so, spin around and then throw him. They do not directly damage Mario, but can throw him into the death barrier or cause fall damage if they throw him off a ledge. Mario can defeat them by picking them up and throwing them onto the ground.
Locations
The following courses have Chuckyas:
Escaping Chuckya
When Chuckya grabs Mario a counter is initialized that lets Mario escape from Chuckya if it reaches 11. The counter starts at zero, and increases by one every time the player presses the A button or moves the joystick from the inside to the outside of its radius.[3] This is possible to do 1.5 times per frame with pause buffering.
Behavior
Moving
Through all movement, Chuckya accelerates at a rate of 4 units/f2 up to a maximum of 30 units/f and slows down at the same rate. Chuckya's movement is composed of three different steps, which loop over and over again:
- Chuckya turns towards Mario in increment of maximum 1024 angular units until he is less than 4096 horizontal angular units in front of him or for 41 frames, whichever happens first
- Even if Mario is already within 4096 angular units, Chuckya will turn for at least one frame toward Mario and will stop early if it reaches exactly 0 angular units
- If Mario is in less than 2000 units laterally from Chuckya's home, Chuckya will chase forwards until Mario is behind a line perpendicular to Chuckya's forward direction
- If Mario is more than 2000 units away from the home, Chuckya will turn back and move toward its home, modifying its speed until it reaches 10 speed, until it is within 500 units laterally, afterwhich it will instantly stop and wait for Mario to be within 1900 units of the home to turn again
- Chuckya will stop for 48 frames
Due to the way the engine functions, Chuckya's position will not be updated if Mario is more than 4000 units away from it, but its angle and speed will still update
This behavior is exploited in the A Button Challenge to have Chuckya drop at the start of the stage in Bowser in the Sky[4]
Throwing
When Chuckya grabs Mario, a random number between 10 and 40 is generated to serve as a timer. Every frame, Chuckya will rotate by 2048 horizontal angular units counterclockwise and the timer is decreased by 1. If Mario does not escape, he will be thrown when the timer is less than 0 and one of the following conditions is met:
- There is a floor no more than 50 units below a point 150 units in front of Chuckya
- The timer reaches -17
Once one of those conditions is met, Chuckya will throw Mario at its anchor point (Similar to Mario's HOLP). This anchor point is only updated when Chuckya is rendered, which opens itself to Chuckya Wrong Throw.
References
|