public override void Update() { float speed = 5; kinetics.velocity.X = ControllerInput.Instance().Sticks.Right.X *speed; kinetics.velocity.Y = -ControllerInput.Instance().Sticks.Right.Y *speed; if (ControllerInput.Instance().GetKey(Keys.Left).Held) { kinetics.velocity.X = -speed; } if (ControllerInput.Instance().GetKey(Keys.Right).Held) { kinetics.velocity.X = speed; } if (ControllerInput.Instance().GetKey(Keys.Down).Held) { kinetics.velocity.Y = speed; } if (ControllerInput.Instance().GetKey(Keys.Up).Held) { kinetics.velocity.Y = -speed; } Attack(); LevelBoundingBox(); kinetics.Update(); if (Melee) { if (currentAnimation.Finished()) { currentAnimation = walk; currentAnimation.Reset(); Melee = false; } } if (Magic) { if (currentAnimation.Finished()) { currentAnimation = walk; currentAnimation.Reset(); Magic = false; } } currentAnimation.Update(kinetics); if (Vector2.Distance(kinetics.position, Avatar.Instance().kinetics.position) < 50) { Avatar.Instance().health.grow(.05f); } }
public override void Attack() { if (waitTimer >= 0) { if (waitTimer <= 0) { if (this.AttackType == AttackType.Ranged) { thought = new SearchAndDestroy(this, Avatar.Instance(), 500, 150); } else { thought = new SearchAndDestroy(this, Avatar.Instance(), 500, 50); } } waitTimer--; return; } attackTimer++; kinetics.velocity = Vector2.Zero; kinetics.orientations.SetOrientation(Movement.Orientate(kinetics, Avatar.Instance().kinetics, 60)); if (attackTimer > 20) { if (this.AttackType == AttackType.Melee) { current = attack; if (current.Finished()) { DamageBox damageBox = new DamageBox(kinetics.position + kinetics.orientations.GetVecOrientation() * 3, kinetics.orientations.GetVecOrientation(), kinetics.orientations.GetVecOrientation(), 30, false); LevelManager.Instance().getCurrentLevel().InsertGameObject(damageBox); SoundManager.Instance().AddSound(new SFX("SFX\\swing")); attackTimer = 0; current.Reset(); current = walk; waitTimer = 20; } } if (this.AttackType == AttackType.Ranged) { FireBall damageBox = new FireBall(kinetics.position + kinetics.orientations.GetVecOrientation() * 3, kinetics.orientations.GetVecOrientation() * 10, 30, false); LevelManager.Instance().getCurrentLevel().InsertGameObject(damageBox); SoundManager.Instance().AddSound(new SFX("SFX\\fireball")); attackTimer = 0; if (current.Finished()) { current.Reset(); current = walk; waitTimer = 20; } } } }
public override void Attack() { if (ControllerInput.Instance().GetButton(Buttons.X).Pressed&& !Magic || ControllerInput.Instance().GetKey(Keys.X).Pressed&& !Magic) { DamageBox temp = new DamageBox(kinetics.position + kinetics.orientations.GetVecOrientation() * 100, Vector2.Zero, 3, true); LevelManager.Instance().getCurrentLevel().InsertGameObject(temp); SoundManager.Instance().AddSound(new SFX("SFX\\swing")); Melee = true; currentAnimation = attack; currentAnimation.Reset(); } if (ControllerInput.Instance().GetButton(Buttons.RightShoulder).Pressed) { still = !still; } if (still) { if (kinetics.velocity != Vector2.Zero) { kinetics.orientations.SetOrientation(kinetics.velocity); kinetics.velocity = Vector2.Zero; } } if (ControllerInput.Instance().GetButton(Buttons.RightTrigger).Held&& !Melee || ControllerInput.Instance().GetKey(Keys.Z).Pressed&& !Melee) { still = true; if (timer > 15) { FireBall fireBall = new FireBall(kinetics.position, kinetics.orientations.GetVecOrientation() * 30, 30, true); LevelManager.Instance().getCurrentLevel().InsertGameObject(fireBall); SoundManager.Instance().AddSound(new SFX("SFX\\fireball")); Magic = true; currentAnimation = magic; currentAnimation.Reset(); timer = 0; } else { timer++; } } if (ControllerInput.Instance().GetButton(Buttons.RightTrigger).Released) { timer = 15; still = false; } }
public override void Attack() { if (ControllerInput.Instance().GetButton(Buttons.X).Pressed&& !Magic || ControllerInput.Instance().GetKey(Keys.X).Pressed&& !Magic) { DamageBox temp = new DamageBox(kinetics.position + kinetics.orientations.GetVecOrientation() * 100, kinetics.orientations.GetVecOrientation(), Vector2.Zero, 3, true); LevelManager.Instance().getCurrentLevel().InsertGameObject(temp); SoundManager.Instance().AddSound(new SFX("SFX\\swing")); Melee = true; currentAnimation = attack; currentAnimation.Reset(); } if (ControllerInput.Instance().GetButton(Buttons.B).Pressed&& !Melee || ControllerInput.Instance().GetKey(Keys.Z).Pressed&& !Melee) { FireBall fireBall = new FireBall(kinetics.position, kinetics.orientations.GetVecOrientation() * 30, 30, true); LevelManager.Instance().getCurrentLevel().InsertGameObject(fireBall); SoundManager.Instance().AddSound(new SFX("SFX\\fireball")); Magic = true; currentAnimation = magic; currentAnimation.Reset(); } }
public override void Update() { float speed = 5; hurtTimer.Update(); if (hurtTimer.Ready()) { color = Color.White; hurtTimer.Reset(); hurtTimer.Puase(); } kinetics.velocity.X = ControllerInput.Instance().Sticks.Left.X *speed; kinetics.velocity.Y = -ControllerInput.Instance().Sticks.Left.Y *speed; if (ControllerInput.Instance().GetKey(Keys.Left).Held) { kinetics.velocity.X = -speed; } if (ControllerInput.Instance().GetKey(Keys.Right).Held) { kinetics.velocity.X = speed; } if (ControllerInput.Instance().GetKey(Keys.Down).Held) { kinetics.velocity.Y = speed; } if (ControllerInput.Instance().GetKey(Keys.Up).Held) { kinetics.velocity.Y = -speed; } Attack(); LevelBoundingBox(); kinetics.Update(); if (Melee) { if (currentAnimation.Finished()) { currentAnimation = walk; currentAnimation.Reset(); Melee = false; } } if (Magic) { if (currentAnimation.Finished()) { currentAnimation = walk; currentAnimation.Reset(); Magic = false; } } currentAnimation.Update(kinetics); }