public RocketLauncher() { if (rocketSprite == null) { rocketSprite = AnimationLib.getFrameAnimationSet("rocketProjectile"); } if (explosionAnim == null) { explosionAnim = AnimationLib.getFrameAnimationSet("rocketExplode"); } rocket.active = false; state = RocketLauncherState.IdleWait; }
public void daemonupdate(Player parent, GameTime currentTime, LevelState parentWorld) { updateRocketAndExplosion(parent, currentTime, parentWorld); if (state == RocketLauncherState.CoolDown) { timer += currentTime.ElapsedGameTime.Milliseconds; if (timer > coolDownDuration) { timer = 0; state = RocketLauncherState.IdleWait; } } }
public void update(Player parent, GameTime currentTime, LevelState parentWorld) { updateRocketAndExplosion(parent, currentTime, parentWorld); if (state == RocketLauncherState.IdleWait) { if ((parent.Index == InputDevice2.PPG_Player.Player_1 ? GameCampaign.Player_Ammunition : GameCampaign.Player2_Ammunition) >= 20) { if (!rocket.active && !explosion.active) { parent.Velocity = Vector2.Zero; timer = 0; state = RocketLauncherState.WindUp; if ((parent.Index == InputDevice2.PPG_Player.Player_1 ? GameCampaign.Player_Right_Item : GameCampaign.Player2_Item_1) == ItemType() && InputDevice2.IsPlayerButtonDown(parent.Index, InputDevice2.PlayerButton.UseItem1)) { slot1 = true; parent.LoadAnimation.Animation = parent.LoadAnimation.Skeleton.Data.FindAnimation(parent.Direction_Facing == GlobalGameConstants.Direction.Left ? "lRocket" : "rRocket"); } else if ((parent.Index == InputDevice2.PPG_Player.Player_1 ? GameCampaign.Player_Left_Item : GameCampaign.Player2_Item_2) == ItemType() && InputDevice2.IsPlayerButtonDown(parent.Index, InputDevice2.PlayerButton.UseItem2)) { slot1 = false; parent.LoadAnimation.Animation = parent.LoadAnimation.Skeleton.Data.FindAnimation(parent.Direction_Facing == GlobalGameConstants.Direction.Left ? "rRocket" : "lRocket"); } if (parent.Index == InputDevice2.PPG_Player.Player_1) { GameCampaign.Player_Ammunition -= ammo_consumption; } else { GameCampaign.Player2_Ammunition -= ammo_consumption; } parent.Animation_Time = 0; parent.LoopAnimation = false; } else { parent.Disable_Movement = false; parent.State = Player.playerState.Moving; } } else { parent.Disable_Movement = false; parent.State = Player.playerState.Moving; } } else if (state == RocketLauncherState.WindUp) { timer += currentTime.ElapsedGameTime.Milliseconds; if (timer > windUpDuration) { timer = 0; state = RocketLauncherState.Shooting; AudioLib.playSoundEffect(rocketSound); parentWorld.Particles.pushRocketCasing(new Vector2(parent.LoadAnimation.Skeleton.FindBone(parent.Direction_Facing == GlobalGameConstants.Direction.Left ? "rGun" : "lGun").WorldX, parent.LoadAnimation.Skeleton.FindBone(parent.Direction_Facing == GlobalGameConstants.Direction.Left ? "rGun" : "lGun").WorldY)); if (slot1) { rocket = new Rocket(new Vector2(parent.LoadAnimation.Skeleton.FindBone(parent.Direction_Facing == GlobalGameConstants.Direction.Left ? "lGunMuzzle" : "rGunMuzzle").WorldX, parent.LoadAnimation.Skeleton.FindBone(parent.Direction_Facing == GlobalGameConstants.Direction.Left ? "lGunMuzzle" : "rGunMuzzle").WorldY), parent.Direction_Facing); } else { rocket = new Rocket(new Vector2(parent.LoadAnimation.Skeleton.FindBone(parent.Direction_Facing == GlobalGameConstants.Direction.Left ? "lGunMuzzle" : "rGunMuzzle").WorldX, parent.LoadAnimation.Skeleton.FindBone(parent.Direction_Facing == GlobalGameConstants.Direction.Left ? "rGunMuzzle" : "lGunMuzzle").WorldY), parent.Direction_Facing); } } for (int i = 0; i < parentWorld.EntityList.Count; i++) { float distance = Vector2.Distance(parentWorld.EntityList[i].Position, new Vector2(parent.LoadAnimation.Skeleton.FindBone(parent.Direction_Facing == GlobalGameConstants.Direction.Left ? "lGunMuzzle" : "rGunMuzzle").WorldX, parent.LoadAnimation.Skeleton.FindBone(parent.Direction_Facing == GlobalGameConstants.Direction.Left ? "lGunMuzzle" : "rGunMuzzle").WorldY)); if (distance <= 1000 && parentWorld.EntityList[i] is Enemy) { ((Enemy)parentWorld.EntityList[i]).Sound_Alert = true; ((Enemy)parentWorld.EntityList[i]).Sound_Position = new Vector2(parent.LoadAnimation.Skeleton.FindBone(parent.Direction_Facing == GlobalGameConstants.Direction.Left ? "lGunMuzzle" : "rGunMuzzle").WorldX, parent.LoadAnimation.Skeleton.FindBone(parent.Direction_Facing == GlobalGameConstants.Direction.Left ? "lGunMuzzle" : "rGunMuzzle").WorldY); } } } else if (state == RocketLauncherState.Shooting) { timer += currentTime.ElapsedGameTime.Milliseconds; if (timer > shootDuration) { timer = 0; state = RocketLauncherState.CoolDown; } } else if (state == RocketLauncherState.CoolDown) { parent.Disable_Movement = false; parent.State = Player.playerState.Moving; timer += currentTime.ElapsedGameTime.Milliseconds; if (timer > coolDownDuration) { timer = 0; state = RocketLauncherState.IdleWait; } } else if (state == RocketLauncherState.InvalidState) { throw new Exception("Invalid Rocket Launcher State"); } }