private void UpdateSuperShieldFromInput(Entity player, float dt) { PlayerComponent play = player.GetComponent <PlayerComponent>(); PlayerShipComponent ship = player.GetComponent <PlayerShipComponent>(); if (play.Player.InputMethod.GetSnapshot().SuperShield == true && ship.SuperShieldAvailable && ship.SuperShieldMeter > 0) { foreach (Entity shield in ship.ShipShields) { //shield.GetComponent<PlayerShieldComponent>().LaserReflectionActive = true; shield.GetComponent <VectorSpriteComponent>().Hidden = false; shield.GetComponent <CollisionComponent>().CollisionMask = (byte)(Constants.Collision.COLLISION_GROUP_ENEMIES | Constants.Collision.COLLISION_GROUP_RAYCAST); shield.GetComponent <CollisionComponent>().CollisionGroup = (byte)(Constants.Collision.COLLISION_GROUP_PLAYER); } ship.SuperShieldMeter = Math.Max(ship.SuperShieldMeter - CVars.Get <float>("player_super_shield_spend_rate") * dt, 0); //Console.WriteLine("Super shield meter at " + ship.SuperShieldMeter); } else { if (ship.SuperShieldMeter <= 0 || play.Player.InputMethod.GetSnapshot().SuperShield == false) { for (int i = 1; i < 4; i++) { //ship.ShipShields[i].GetComponent<PlayerShieldComponent>().LaserReflectionActive = false; ship.ShipShields[i].GetComponent <VectorSpriteComponent>().Hidden = true; ship.ShipShields[i].GetComponent <CollisionComponent>().CollisionMask = Constants.Collision.GROUP_MASK_NONE; ship.ShipShields[i].GetComponent <CollisionComponent>().CollisionGroup = Constants.Collision.GROUP_MASK_NONE; //Console.WriteLine("Super Shield collision mask set to NONE"); } } ship.SuperShieldMeter = MathHelper.Min(ship.SuperShieldMeter + CVars.Get <float>("player_super_shield_regen_rate") * dt, CVars.Get <float>("player_super_shield_max")); //Console.WriteLine("Super shield at " + ship.SuperShieldMeter); if (ship.SuperShieldMeter == CVars.Get <float>("player_super_shield_max")) { //Console.WriteLine("Super shield resource replenished"); ship.SuperShieldAvailable = true; } else { ship.SuperShieldAvailable = false; //Console.WriteLine("Player super shield out of resource"); } } }
private void SpawnPlayer(Player player, Vector2 position, Color color) { Entity playerShipEntity = PlayerShipEntity.Create(SharedState.Engine, position, color); SuperShieldDisplayEntity.Create(SharedState.Engine, playerShipEntity); PlayerShipComponent playerShipComp = playerShipEntity.GetComponent <PlayerShipComponent>(); // Default playerShipComp.AddShield(PlayerShieldEntity.Create(SharedState.Engine, playerShipEntity, MathHelper.ToRadians(0.0f), true)); // Super shields playerShipComp.AddShield(PlayerShieldEntity.Create(SharedState.Engine, playerShipEntity, MathHelper.ToRadians(90.0f), false)); playerShipComp.AddShield(PlayerShieldEntity.Create(SharedState.Engine, playerShipEntity, MathHelper.ToRadians(180.0f), false)); playerShipComp.AddShield(PlayerShieldEntity.Create(SharedState.Engine, playerShipEntity, MathHelper.ToRadians(270.0f), false)); playerShipEntity.AddComponent(new PlayerComponent(player)); // Queue an event EventManager.Instance.QueueEvent(new PlayerShipSpawnEvent(playerShipEntity, position)); }
protected override void HandlePlayerSpawned(PlayerShipComponent playerShipController) { base.HandlePlayerSpawned(playerShipController); _shipMovement = playerShipController.ShipMovement; }
protected override bool HandlePlayerDespawned(PlayerShipComponent playerShipController) { base.HandlePlayerDespawned(playerShipController); _shipMovement = null; return(true); }
protected override void HandlePlayerSpawned(PlayerShipComponent playerShipController) { base.HandlePlayerSpawned(playerShipController); _playerWeapon = playerShipController.PlayerWeapon; }
protected override void HandlePlayerSpawned(PlayerShipComponent playerShipController) { base.HandlePlayerSpawned(playerShipController); _shipHyperSpace = playerShipController.HyperSpace; }