void PlayerObject_PlayerDeath(DodgerX arg1, Player arg2) { int pos = 0; if (-1 < (pos = arg1.HighScoreData.Eligible((int)CurrentScore))) { ValueEntryState ves = new ValueEntryState("High Score (#" + (pos+1).ToString() + ")", GetUsername(), "YOu got a High Score! Please Enter your name.", HighScoreEntered); arg1.CurrentState = ves; } }
private bool CheckPlayerCollision(DodgerX go,Player playerobject) { if (playerobject == null) return false; List<Player.PlayerCircleItem> removethese = new List<Player.PlayerCircleItem>(); Vector2 ourCenter = new Vector2(Location.X + Texture.Width / 2, Location.Y + Texture.Height / 2); bool returnvalue = false; foreach (var iterate in playerobject.CircleItems) { Vector2 iteratecenter = new Vector2(iterate.X + iterate.Texture.Width / 2, iterate.Y + iterate.Texture.Height / 2); if(Distance(ourCenter,iteratecenter) < (Texture.Width / 2 + iterate.Texture.Width / 2)) { //HIT. //destroy. DestructionReturnType destructiontype = Destroy(iterate); if ((destructiontype & DestructionReturnType.Destruct_PlayerPiece) == DestructionReturnType.Destruct_PlayerPiece) { iterate.hitcount++; if(iterate.hitcount > iterate.Textures.Length-1) removethese.Add(iterate); DodgerX.soundBank.GetCue("gren").Play(); } if ((destructiontype & DestructionReturnType.Destruct_Heal) == DestructionReturnType.Destruct_Heal) { if (iterate.hitcount > 0) { DodgerX.soundBank.GetCue("charge").Play(); iterate.hitcount--; } else { playerobject.Heal(1); } } if ((destructiontype & DestructionReturnType.Destruct_Self) == DestructionReturnType.Destruct_Self) { returnvalue = true; break; } } } foreach (var removethis in removethese) { playerobject.CircleItems.Remove(removethis); } return returnvalue; }
protected override AttackingObject.DestructionReturnType Destroy(Player.PlayerCircleItem impactwith) { return DestructionReturnType.Destruct_Heal | DestructionReturnType.Destruct_Self; }
protected virtual DestructionReturnType Destroy(Player.PlayerCircleItem impactwith) { return DestructionReturnType.Destruct_Both; }