public static void HandleCollision(ILink link, IBlock block, Enumerations.CollisionSide collision) { Contract.Requires(link != null); Contract.Requires(block != null); if (block.IsMovable) { block.Knockback = true; block.CollisionLocation = block.Position; switch (collision) { case Enumerations.CollisionSide.Right: RightCollision(block); break; case Enumerations.CollisionSide.Left: LeftCollision(block); break; case Enumerations.CollisionSide.Top: UpCollision(block); break; case Enumerations.CollisionSide.Bottom: DownCollision(block); break; default: break; } } link.Knockback = false; link.Velocity = new Vector2(0, 0); }
public static void HandleCollision(IUsableItem item, IBlock block, Enumerations.CollisionSide collision) { Contract.Requires(block != null); Contract.Requires(item != null); block.IsDestructable = true; foreach (IDoorTrigger doorTrigger in Room.CurrentRoomDoorTriggers) { if (doorTrigger.GameObjectType == Enumerations.GameObjectType.DoorTriggerUp) { doorTrigger.IsDestructable = true; } } IBlock newDoor = new BlockUpBombedOpening(); newDoor.Position = block.Position; IDoorTrigger newTrigger = new BlockUpOverBombed(); newTrigger.Position = new Vector2(Constant.UpOverBombedPositionNative.X * Game1.Instance.graphics.PreferredBackBufferWidth / Constant.OriginalNesWidth, (Constant.UpOverBombedPositionNative.Y + HUDConstants.HUDHeight) * Game1.Instance.graphics.PreferredBackBufferHeight / Constant.OriginalNesHeight); Room.CurrentRoomBlocks.Add(newDoor); Room.CurrentRoomDoorTriggers.Add(newTrigger); SoundManager.Instance.PlayFoundSecret(); int oppositeRoom = GameObjects.Instance.LevelListPosition - Constant.DungeonGridWidth; Enumerations.Direction doorDirection = Enumerations.Direction.Down; Enumerations.DoorType doorType = Enumerations.DoorType.Bombed; ToolsXML toolsXml = new ToolsXML(); toolsXml.ReplaceOppositeDoorNodeXML(oppositeRoom, doorType, doorDirection); }
public static void HandleCollision(ILink link, IProjectile projectile, Enumerations.CollisionSide collisionSide) { Contract.Requires(link != null); Contract.Requires(projectile != null); //Contract.Requires(collision != null); link.DamagePlayer(projectile.DamageAmount); SoundManager.Instance.PlayLinkHit(); link.Knockback = true; link.CollisionLocation = link.Position; switch (collisionSide) { case Enumerations.CollisionSide.Left: LeftCollision(link); break; case Enumerations.CollisionSide.Right: RightCollision(link); break; case Enumerations.CollisionSide.Top: UpCollision(link); break; case Enumerations.CollisionSide.Bottom: DownCollision(link); break; default: break; } }
public static void HandleCollision(IBlock blockOne, IBlock blockTwo, Enumerations.CollisionSide collision) { Contract.Requires(blockOne != null); Contract.Requires(blockTwo != null); if (blockOne.IsMovable) { blockOne.Knockback = true; blockOne.CollisionLocation = blockOne.Position; switch (collision) { case Enumerations.CollisionSide.Right: RightCollision(blockOne); break; case Enumerations.CollisionSide.Left: LeftCollision(blockOne); break; case Enumerations.CollisionSide.Top: UpCollision(blockOne); break; case Enumerations.CollisionSide.Bottom: DownCollision(blockOne); break; default: break; } } blockTwo.Knockback = false; }
public static void HandleCollision(IUsableItem projectile, IBlock block, Enumerations.CollisionSide collision) { Contract.Requires(block != null); Contract.Requires(projectile != null); if (block.IsMovable) { block.Knockback = true; block.CollisionLocation = block.Position; switch (collision) { case Enumerations.CollisionSide.Right: RightCollision(block); break; case Enumerations.CollisionSide.Left: LeftCollision(block); break; case Enumerations.CollisionSide.Top: UpCollision(block); break; case Enumerations.CollisionSide.Bottom: DownCollision(block); break; default: break; } } block.Knockback = false; }
public static void HandleCollision(INPC character, IUsableItem item, Enumerations.CollisionSide collisionSide) { character.TakeDamage(item.DamageAmount); item.IsDestructable = true; UsableWoodenSword.projectile = null; UsableWoodenSword.IsMoving = false; // Room.CurrentRoomSpriteEffects.Add(new EffectSwordBeamCollision(item.Position)); SoundManager.Instance.PlayEnemyHit(); switch (collisionSide) { case Enumerations.CollisionSide.Right: RightCollision(character); break; case Enumerations.CollisionSide.Left: LeftCollision(character); break; case Enumerations.CollisionSide.Top: UpCollision(character); break; case Enumerations.CollisionSide.Bottom: DownCollision(character); break; default: break; } }
public static void HandleCollision(ILink link, IBlock block, Enumerations.CollisionSide collision) { Contract.Requires(link != null); Contract.Requires(block != null); link.Position += new Vector2(-1 * Constant.DisplayScaleX, 0); }
public static void HandleCollision(ILink link, IItem item, Enumerations.CollisionSide collisionSide) { Contract.Requires(link != null); Contract.Requires(item != null); item.PickUp(link); }
public static void HandleCollision(ILink link, IBlock block, Enumerations.CollisionSide collision) { Contract.Requires(link != null); Contract.Requires(block != null); link.Position += new Vector2(0, -1); }
public static void HandleCollision(INPC character, IUsableItem item, Enumerations.CollisionSide collisionSide) { character.TakeDamage(item.DamageAmount); item.IsDestructable = true; SoundManager.Instance.PlayEnemyHit(); switch (collisionSide) { case Enumerations.CollisionSide.Right: RightCollision(character); break; case Enumerations.CollisionSide.Left: LeftCollision(character); break; case Enumerations.CollisionSide.Top: UpCollision(character); break; case Enumerations.CollisionSide.Bottom: DownCollision(character); break; default: break; } }
public static void HandleCollision(ILink link, IItem item, Enumerations.CollisionSide collisionSide) { Contract.Requires(link != null); Contract.Requires(item != null); item.PickUp(link); SoundManager.Instance.PlayFairyPickUp(); }
public static void HandleCollision(IUsableItem item, IBlock block, Enumerations.CollisionSide collision) { Contract.Requires(block != null); Contract.Requires(item != null); item.IsDestructable = true; UsableWoodenSword.projectile = null; UsableWoodenSword.IsMoving = false; Room.CurrentRoomSpriteEffects.Add(new EffectSwordBeamCollision(item.Position)); }
public static void HandleCollision(ILink link, IItem item, Enumerations.CollisionSide collisionSide) { Contract.Requires(link != null); Contract.Requires(item != null); item.PickUp(link); SoundManager.Instance.PlayEquipmentItemPickUp(); link.State = new LinkGetItemState(link); }
public static void HandleCollision(ILink link, IItem item, Enumerations.CollisionSide collisionSide) { Contract.Requires(link != null); Contract.Requires(item != null); item.PickUp(link); SoundManager.Instance.PlayPickUpTriforcePieceMusic(); link.State = new LinkGetItemState(link); Game1.Instance.State = new StateWinning(Game1.Instance.State); }
private static void DownCollision(ILink link, IUsableItem projectile, Enumerations.CollisionSide collisionSide) { if (link.FacingDirection.Equals(collisionSide)) { projectile.Velocity = Vector2.UnitY * ItemConstants.ItemKnockbackSpeed; } else { link.Velocity = -Vector2.UnitY * Constant.LinkKnockbackSpeed; } }
public static void HandleCollision(ILink link, IDoorTrigger doorTrigger, Enumerations.CollisionSide collision) { Contract.Requires(link != null); Contract.Requires(doorTrigger != null); GameObjects.Instance.currentRoom.UpdateSavedStateXML(); ToolsXML toolsXml = new ToolsXML(); toolsXml.SaveUpdatedRoomXml(); roomTransition.Update(doorTrigger); toolsXml.SetStageXmlDocument(); }
public static void HandleCollision(ILink link, IItem item, Enumerations.CollisionSide collisionSide) { Contract.Requires(link != null); Contract.Requires(item != null); item.PickUp(link); /* * * //Add One heart to Link's Max Life * * //play the following for the length of time it takes to fill one heart (2 half hearts) * int currentTick = 0; * while (currentTick < (2 * Constant.TicksPerFrameHalfHeart)) * { * SoundManager.Instance.PlayFillHeartMeterLooped(); * currentTick++; * } */ }
public static void HandleCollision(ILink link, IUsableItem projectile, Enumerations.CollisionSide collisionSide) { Contract.Requires(link != null); Contract.Requires(projectile != null); //Contract.Requires(collision != null); projectile.IsDestructable = true; if (link.FacingDirection.Equals(collisionSide)) { projectile.Knockback = true; projectile.CollisionLocation = projectile.Position; } else { link.Knockback = true; link.CollisionLocation = link.Position; } switch (collisionSide) { case Enumerations.CollisionSide.Right: RightCollision(link, projectile, collisionSide); break; case Enumerations.CollisionSide.Left: LeftCollision(link, projectile, collisionSide); break; case Enumerations.CollisionSide.Top: UpCollision(link, projectile, collisionSide); break; case Enumerations.CollisionSide.Bottom: DownCollision(link, projectile, collisionSide); break; default: break; } }
public List <Tuple <IGameObject, IGameObject, Rectangle, Enumerations.CollisionSide> > CollisionSideDetect() { if (collisionRectangleEventList != null) { foreach (Tuple <IGameObject, IGameObject, Rectangle> closeProximityEvent in collisionRectangleEventList) { gameObject1 = closeProximityEvent.Item1; gameObject2 = closeProximityEvent.Item2; intersectionRectangle = closeProximityEvent.Item3; collisionSideObject1 = Enumerations.CollisionSide.None; if (intersectionRectangle.Width >= intersectionRectangle.Height) { if (gameObject1.Center.Y < gameObject2.Center.Y) { collisionSideObject1 = Enumerations.CollisionSide.Bottom; } else { collisionSideObject1 = Enumerations.CollisionSide.Top; } } else { if (gameObject1.Center.X < gameObject2.Center.X) { collisionSideObject1 = Enumerations.CollisionSide.Right; } else { collisionSideObject1 = Enumerations.CollisionSide.Left; } } Tuple <IGameObject, IGameObject, Rectangle, Enumerations.CollisionSide> collisionSideEvent = new Tuple <IGameObject, IGameObject, Rectangle, Enumerations.CollisionSide>(gameObject1, gameObject2, intersectionRectangle, collisionSideObject1); collisionSideEventList.Add(collisionSideEvent); } } return(collisionSideEventList); }
public static void HandleCollision(ILink link, IBlock block, Enumerations.CollisionSide collision) { Contract.Requires(link != null); Contract.Requires(block != null); if (InventoryAgrees(link)) { block.IsDestructable = true; foreach (IDoorTrigger doorTrigger in Room.CurrentRoomDoorTriggers) { if (doorTrigger.GameObjectType == Enumerations.GameObjectType.DoorTriggerLeft) { doorTrigger.IsDestructable = true; } } foreach (IBlock blockDoor in Room.CurrentRoomBlocks) { if (block.GameObjectType == Enumerations.GameObjectType.DoorLeft) { blockDoor.IsDestructable = true; } } IBlock newDoor = new BlockLeftOpenDoor(); newDoor.Position = new Vector2(Constant.LeftDoorPositionNative.X * Game1.Instance.graphics.PreferredBackBufferWidth / Constant.OriginalNesWidth, (Constant.LeftDoorPositionNative.Y + HUDConstants.HUDHeight) * Game1.Instance.graphics.PreferredBackBufferHeight / Constant.OriginalNesHeight); IDoorTrigger newTrigger = new BlockLeftOverDoor(); newTrigger.Position = new Vector2(Constant.LeftOverDoorPositionNative.X * Game1.Instance.graphics.PreferredBackBufferWidth / Constant.OriginalNesWidth, (Constant.LeftOverDoorPositionNative.Y + HUDConstants.HUDHeight) * Game1.Instance.graphics.PreferredBackBufferHeight / Constant.OriginalNesHeight); Room.CurrentRoomBlocks.Add(newDoor); Room.CurrentRoomDoorTriggers.Add(newTrigger); SoundManager.Instance.PlayDoorStateChange(); int oppositeRoom = GameObjects.Instance.LevelListPosition - 1; Enumerations.Direction doorDirection = Enumerations.Direction.Right; Enumerations.DoorType doorType = Enumerations.DoorType.Locked; ToolsXML toolsXml = new ToolsXML(); toolsXml.ReplaceOppositeDoorNodeXML(oppositeRoom, doorType, doorDirection); } }
public static void HandleCollision(IUsableItem item, IBlock block, Enumerations.CollisionSide collision) { Contract.Requires(block != null); Contract.Requires(item != null); item.IsDestructable = true; }
public static void HandleCollision(INPC character, IBlock block, Enumerations.CollisionSide collisionSide) { character.Knockback = false; character.HasHitWall = true; }
public static void HandleCollision(ILink link, IBlock block, Enumerations.CollisionSide collision) { Contract.Requires(link != null); Contract.Requires(block != null); }