public Player(int newPlayerNum) { //just initialziing the shiled here because; sheild_currentsprite = 0; sheild_totalsprite = 3; sheildSprite = GameState.content.Load<Texture2D>(@"Textures\Player\sheildBubble"); //Base initialization line = new Line2D(new Vector2(150, 80), new Vector2(150, 180), Color.White); playerNum = newPlayerNum; myRect.Width = (int)posOffSet.X * 2; myRect.Height = (int)posOffSet.Y * 2; foundPickup = new Pickup(0, 'e', new Vector2(0, 0)); energyBarBGPosition = new Rectangle[10]; energyBarPosition = new Rectangle[10]; //Speed and movement initialization speed = 1; baseAccel = 0.15f; maxSpeed = 2.0f; velocity = new Vector2(0, 0); speedChanged = false; onVictoryTile = false; //Invincibility initializations invTime = 0; isInvincible = false; blinkTimer = 0; isBlinking = false; blinkTimeLength = 20; //Sprites counts currentSprite = 0; totalSprites = 27; spritecolumn = 0; //Energy initializations baseMaxEnergy = 100; maxEnergy = 100; currentEnergy = maxEnergy; energyDrainSpeed = 16; energyRechargeSpeed = 0.5f; //Speed Zones speedModifier = 0; //Distance declarations minDistance = 65; strongDistance = 130; mediumDistance = 200; maxDistance = 320; data_deathsPerLevel = new int[16]; for (int i = 0; i < 16; i++) { data_deathsPerLevel[i] = 0; } //Player Specific positions and textures. if (newPlayerNum == 0) { myPos = line.StartPosition; droneTexture = GameState.content.Load<Texture2D>(@"Textures\Player\spider_blue_trimmed_shrinked"); energyTexture = GameState.content.Load<Texture2D>(@"Textures\Player\energyBar_sprite_small"); energyBGTexture = GameState.content.Load<Texture2D>(@"Textures\Player\battery"); energyBarPosition[0] = new Rectangle(44, GameState.SCREEN_HEIGHT - 120, 12, 80); energyBarBGPosition[0] = new Rectangle(40, GameState.SCREEN_HEIGHT - 130, 20, 100); for (int i = 0; i < 10; i++) { energyBarPosition[i] = energyBarPosition[0]; energyBarBGPosition[i] = energyBarBGPosition[0]; energyBarPosition[i].X += 26 * i; energyBarBGPosition[i].X += 26 * i; } } else { myPos = line.EndPosition; droneTexture = GameState.content.Load<Texture2D>(@"Textures\Player\spider_orange_trimmed_shrinked"); energyTexture = GameState.content.Load<Texture2D>(@"Textures\Player\energybar_sprite_small2"); energyBGTexture = GameState.content.Load<Texture2D>(@"Textures\Player\battery2"); energyBarPosition[0] = new Rectangle(GameState.SCREEN_WIDTH - 52, GameState.SCREEN_HEIGHT - 120, 12, 80); energyBarBGPosition[0] = new Rectangle(GameState.SCREEN_WIDTH - 56, GameState.SCREEN_HEIGHT - 130, 20, 100); for (int i = 0; i < 10; i++) { energyBarPosition[i] = energyBarPosition[0]; energyBarBGPosition[i] = energyBarBGPosition[0]; energyBarPosition[i].X -= 26 * i; energyBarBGPosition[i].X -= 26 * i; } } Set_Rectangle(); //Fun statistics initializations data_distanceTraveled = 0.0f; data_timeSpentInFront = 0.0f; data_timeSpentIdle = 0.0f; data_timeWalkingIntoWalls = 0.0f; data_energyDrained = 0.0f; data_pickupsGrabbed = 0; data_crushDeaths = 0; data_batteryDeaths = 0; data_damageDeaths = 0; //These are the level up bonuses playerCash = 0; cashForPartner = 0; playerCashPickedUp = 0; maxEnergyBonus = 0; maxEnergyLevel = 0; energyDrainBonus = 0; energyDrainLevel = 0; energyRechargeBonus = 0; energyRechargeLevel = 0; damageLevel = 0; accelBonus = 0; accelLevel = 0; speedBonus = 0; speedLevel = 0; invTimeLevel = 0; invTimeBonus = 0; healthPickupLevel = 0; healthPickupBonus = 0; }
private void Check_Pickups() { if (GameState.objectManager.pickupManager.Check_Collisions(myRect)) { foundPickup = GameState.objectManager.pickupManager.Collided_Pickup(myRect); if(foundPickup.effect == 'm') { GameState.soundBank.PlayCue("Coin"); GameState.objectManager.AddExplosion(new Explosion("coin", new Vector2(myPos.X , myPos.Y))); playerCashPickedUp += (int)((double)foundPickup.amount * 0.6); data_totalCashEarned += (int)((double)foundPickup.amount * 0.6); cashForPartner += (int)((double)foundPickup.amount * 0.4); data_pickupsGrabbedTotal++; } else if(foundPickup.effect == 'e') { GameState.soundBank.PlayCue("Heal"); GameState.objectManager.AddExplosion(new Explosion("health", new Vector2(myPos.X, myPos.Y))); maxEnergy += 20 + healthPickupBonus; currentEnergy += (float)(20 + healthPickupBonus) * 0.5f; if (maxEnergy > baseMaxEnergy + maxEnergyBonus) maxEnergy = baseMaxEnergy + maxEnergyBonus; data_pickupsGrabbedTotal++; if(currentEnergy > maxEnergy) { currentEnergy = maxEnergy; } } else if(foundPickup.effect == 'i') { GameState.soundBank.PlayCue("Invincibility"); GameState.objectManager.AddExplosion(new Explosion("invuln", new Vector2(myPos.X, myPos.Y))); isInvincible = true; invFromDamage = false; blinkTimer = blinkTimeLength; invTime = foundPickup.amount + invTimeBonus; data_pickupsGrabbedTotal++; } else if(foundPickup.effect == 'f') { GameState.soundBank.PlayCue("TimeStop"); GameState.objectManager.AddExplosion(new Explosion("freeze", new Vector2(myPos.X, myPos.Y))); if(GameState.freezeTime <= 0) GameState.prevGameSpeed = GameState.GameSpeed; GameState.freezeTime = foundPickup.amount; GameState.GameSpeed = 0; data_pickupsGrabbedTotal++; } } }