protected override void UpdatePosition() { base.UpdatePosition(); switch (rocketAnimation) { case ProjectileAnimationState.Closed: if (totalTravelledTime < Parameter.ProjectileArmorSSTransformTime) { totalTravelledTime += Parameter.ProjectileMovementTotalTimeElapsed; } else { IsAbleToRefreshPosition = false; rocketAnimation = ProjectileAnimationState.Opening; FlipbookList[0].AppendAnimationIntoCycle(rocketAnimationPresets[ProjectileAnimationState.Opening], true); FlipbookList[0].AppendAnimationIntoCycle(rocketAnimationPresets[ProjectileAnimationState.Opened]); BaseDamage += Parameter.ProjectileArmorSSEBaseDamage; ExplosionRadius = Parameter.ProjectileArmorSSEExplosionRadius; } break; case ProjectileAnimationState.Opening: if (FlipbookList[0].CurrentAnimationInstance == rocketAnimationPresets[ProjectileAnimationState.Opened]) { IsAbleToRefreshPosition = true; rocketAnimation = ProjectileAnimationState.Opened; } break; case ProjectileAnimationState.Opened: break; } }
public DragonProjectile3SS(Dragon mobile, Vector2 initialPosition, Vector2 finalPosition, float spawnTime) : base(mobile, ShotType.SS, Parameter.ProjectileDragonSSExplosionRadius, Parameter.ProjectileDragonSSBaseDamage, projectileInitialPosition: initialPosition) { //Calculate the angle of the swords double angle = (float)Helper.AngleBetween(finalPosition, initialPosition); //Initializing Flipbook FlipbookList.Add(new Flipbook( initialPosition, new Vector2(49.5f, 40), 99, 80, "Graphics/Tank/Dragon/Shot3", new List <AnimationInstance>() { new AnimationInstance() { StartingFrame = 0, EndingFrame = 17, TimePerFrame = 1 / 20f }, new AnimationInstance() { StartingFrame = 18, EndingFrame = 40, TimePerFrame = 1 / 20f }, }, DepthParameter.Projectile, rotation: (float)angle)); SpawnTime = spawnTime; animationState = ProjectileAnimationState.Spawning; IsAbleToRefreshPosition = false; InitializeMovement(); }
protected override void UpdatePosition() { base.UpdatePosition(); switch (bubbleAnimation) { case ProjectileAnimationState.Closed: if (totalTravelledTime < Parameter.ProjectileTurtleSSTransformTime) { totalTravelledTime += Parameter.ProjectileMovementTotalTimeElapsed; } else { IsAbleToRefreshPosition = false; bubbleAnimation = ProjectileAnimationState.Opening; } break; case ProjectileAnimationState.Opening: bubbleAnimation = ProjectileAnimationState.Opened; SpecialEffectBuilder.TurtleProjectile3Division(FlipbookList[0].Position, FlipbookList[0].Rotation); TurtleProjectileEmitter.Shot3((Turtle)Mobile, force, FlipbookList[0].Position, FlipbookList[0].Rotation, OnFinalizeExecutionAction); PlayExplosionSFX(); GameScene.Camera.TrackObject(Mobile.LastCreatedProjectileList.First()); IsAbleToRefreshPosition = true; break; case ProjectileAnimationState.Opened: base.Destroy(); break; } }
protected override void UpdatePosition() { base.UpdatePosition(); switch (animationState) { case ProjectileAnimationState.Spawning: if (FlipbookList[0].FlipbookAnimationList.Count() == 1) { IsAbleToRefreshPosition = true; animationState = ProjectileAnimationState.Moving; } break; case ProjectileAnimationState.Moving: break; } }
public TurtleProjectile3(Turtle mobile) : base(mobile, ShotType.SS, Parameter.ProjectileTurtleSSExplosionRadius, Parameter.ProjectileTurtleSSBaseDamage) { //Initializing Flipbook FlipbookList.Add(new Flipbook( mobile.Crosshair.CannonPosition, new Vector2(26, 22.5f), 52, 45, "Graphics/Tank/Turtle/Bullet3", new AnimationInstance() { StartingFrame = 0, EndingFrame = 14, TimePerFrame = 1 / 20f }, DepthParameter.Projectile, angle)); bubbleAnimation = ProjectileAnimationState.Closed; //Physics/Trajectory setups mass = Parameter.ProjectileTurtleSSMass; windInfluence = Parameter.ProjectileTurtleSSWindInfluence; }
public ArmorProjectile3(Armor mobile) : base(mobile, ShotType.SS, Parameter.ProjectileArmorSSExplosionRadius, Parameter.ProjectileArmorSSBaseDamage) { Mobile = mobile; rocketAnimation = ProjectileAnimationState.Closed; totalTravelledTime = 0; //Initializing Flipbook FlipbookList.Add(new Flipbook( mobile.Crosshair.CannonPosition, new Vector2(65, 54), 131, 109, "Graphics/Tank/Armor/Bullet3", new List <AnimationInstance>() { rocketAnimationPresets[rocketAnimation] }, DepthParameter.Projectile, angle)); //Physics/Trajectory setups mass = Parameter.ProjectileArmorSSMass; windInfluence = Parameter.ProjectileArmorSSWindInfluence; SpawnTime = 0.7; }