Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Basic Actions - Guarding #7

Open
4 of 25 tasks
Phanterm opened this issue Jun 13, 2018 · 0 comments
Open
4 of 25 tasks

Basic Actions - Guarding #7

Phanterm opened this issue Jun 13, 2018 · 0 comments

Comments

@Phanterm
Copy link
Collaborator

Phanterm commented Jun 13, 2018

The player can press the guard button while standing or crouching to go into a defensive stance. In this stance, they can reduce or prevent damage from most sources at the cost of stamina per hit.

The following are requirements of the guard feature.

Controls

  • The player should be able to guard while standing. (control_guard)
  • The player should be able to guard while crouching. (control_guard + control_down)
  • The player should be able to change from standing to crouch while guarding.
  • The player should be able to change his facing while guarding, either while standing or crouching.

Damage

  • When the player receives an attack while guarding, the type of damage will determine the following behavior:
    • Light Damage (dmg_light): When guarding against Light damage attacks, Miyamoto will

      • completely negate the damage and lose some stamina per attack guarded.
    • Medium Damage (dmg_med): When guarding against Medium damage attacks, Miyamoto will

      • take only a quarter of the damage
      • lose some stamina per attack guarded
      • slide back roughly 16-32 pixels from the impact.
      • If Miyamoto should hit a wall from this, he will enter a state of wallbounce (defined in damage types).
      • If he should be knocked off of a ledge, he falls backward as if entering a state of being damaged normally, and is unable to perform aerial moves until he hits the ground.
    • Heavy Damage (dmg_heavy)* - When guarding against any type of Heavy damage attacks, Miyamoto will react as if he had not guarded at all against them. The only difference here is that Miyamoto takes half the amount of damage he would have otherwise taken.

      • If Miyamoto should hit a wall from this, he will enter a state of wallbounce (defined in damage types).
      • If Miyamoto should hit a ceiling from this, he will enter a state of ceilingbounce (defined in damage types).
    • Projectile Damage (dmg_proj) - When guarding against Light damage attacks, Miyamoto will completely negate the damage.

      • He will also be knocked back/slide backward a few pixels per successful hit guarded.

Hitboxes

  • The player's guard area (the area where damage is negated) while standing should only be centered where his upper body is concerned. i.e., if a guarding, standing player would take damage from an attack hitting their legs, they should react as if it had not been blocked, since the attack did not interact with the guard area.

  • The player's guard area (the area where damage is negated) while crouching should not interact in any way with the space that their standing guard area would be (i.e., if the player were to alternate between stand-guarding and crouch-guarding, there should be no overlap at all between the guard areas). This is important so as to clearly define future enemy attacks in relation to these parameters.

States

  • When successfully blocking an attack (dmg_proj, dmg_light, dmg_med), the player will enter a state universally known as "blockstun". The amount of blockstun is an arbitrary value, and determines how long Miyamoto remains locked in the 'guarding' state before being able to act again.

  • At any time, if Miyamoto would guard an attack and the resulting depletion in stamina would put him below 0 stamina (being put at 0 is fine), he enters a new state: "Guard Break." While in guard break:

    • Miyamoto reels from the damage
    • his guard is broken, and is stunned for 1 second. -- long enough for most enemies to take advantage and attack.
    • After 1 second, he returns to normal.

Related: #6

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants