public void Attack(bool bomb) { if (bomb) { if (myGame.level.mainCharacter.state is AliveState) { bombItem.canMove = true; bombItem.isVisible = true; bombUpdate = true; bombItem.position = new Vector2(position.X, bombItem.position.Y); } } else { bombUpdate = false; if (beamMeter.BeamPercent > GameConstants.Three) { beamMeter.DecreaseBeamPercentBy(GameConstants.Three); if (myGame.level.mainCharacter.state is AliveState && beamMeter.BeamPercent > GameConstants.Three) { AliveState f = myGame.level.mainCharacter.state as AliveState; f.beam = true; myGame.level.mainCharacter.state = f; } } } }
public MainCharacter(Game1 game, Vector2 position) { myGame = game; state = new AliveState(this); state.Sprite = CharacterSpriteFactory.Instance.CreateFlyingUFOSprite(); beamMeter = new BeamMeter(myGame); this.position = position; canMove = true; scoreCounter = 0; gravity = GameConstants.UFOInitialGravity; animated = false; isVisible = true; isScored = false; IsJumping = false; JumpCounter = 0; bombUpdate = false; bombItem = new Bomb(new Vector2(position.X + 20, position.Y + 64)); }