public EBoss(World world, SpriteBatch spriteBatch, Vector2 position) : base(world, spriteBatch, position) { this.Mass = 1; this.Name = EBoss.NAME; //Load the boss' information from the XML file LoadBossXmlFile(); //Load the boss' Roles SetUpRoles(); //Create the Animation Player and give it the Idle Animation this.animationPlayer = new AnimationPlayer(spriteBatch, currentRole.AnimationMap["Idle"]); //Set the current animation currentAnimation = animationPlayer.Animation; //Set the current state currentState = "Idle"; //Set the Velocity Velocity = new Vector2(0, 0); //Set the position this.Position = position; didBulletCollide = false; //Set the facing facing = SpriteEffects.FlipHorizontally; //Set the Death push back deathPushBack = new Vector2(-1.0f, 0); //Set Movement Speed this.groundVelocity = new Vector2(0.5f, 0); // set up our FAKE jump velocity this.jumpVelocity = new Vector2(0f, 13f); List<CollisionHotspot> hotspots = new List<CollisionHotspot>(); hotspots.Add(new CollisionHotspot(this, new Vector2(13, -27), HOTSPOT_TYPE.top)); hotspots.Add(new CollisionHotspot(this, new Vector2(1, -6), HOTSPOT_TYPE.left)); hotspots.Add(new CollisionHotspot(this, new Vector2(1, 12), HOTSPOT_TYPE.left)); hotspots.Add(new CollisionHotspot(this, new Vector2(17, -6), HOTSPOT_TYPE.right)); hotspots.Add(new CollisionHotspot(this, new Vector2(17, 12), HOTSPOT_TYPE.right)); hotspots.Add(new CollisionHotspot(this, new Vector2(11, 30), HOTSPOT_TYPE.bottom)); Hotspots = hotspots; //Setup the Bounding Box boundingBoxHeight = 59; boundingBoxWidth = 34; this.boundingBoxOffset = new Vector2(); this.boundingBoxOffset.X = boundingBoxWidth / 2; this.boundingBoxOffset.Y = boundingBoxHeight / 2; laughingAIState = new EBossLaughingState(this); shootAIState = new EBossShootState(this, this.ParentScreen); jumpAIState = new EBossJumpState(this.ParentScreen, this); moveAIState = new EbossMoveState(this); hitAIState = new EBossHitState(this); }
private void SetAIState(EBossState state) { if (currentAIState != state) { currentAIState = state; } }