public override void Update(GameTime gameTime) { UpdateMouse(); SquareClick squareClick = null; for (int n = 0; n < GetWidth(); n++) { for (int m = 0; m < GetHeight(); m++) { grid[n, m].Update(gameTime); grid[n, m].SetOffset(new Vector2(0, LevelMechanics.GetCurrentOffset())); if (grid[n, m].HasClickInformation()) { squareClick = grid[n, m].GetClickInformation(); } } } if (squareClick != null) { ClickLogic(squareClick); } else if (isRightClicked && IsSquareMarked()) { markedClick = null; } }
public SquareClick GetClickInformation() { SquareClick temp = clickInformation; clickInformation = null; return(temp); }
private DurationSquareDataChain GetDataChain(SquareClick squareClick) { DurationSquareDataChain durationChain = new DurationSquareDataChain(ActiveData.enemyState, ActiveData.durationEventState, ActiveData.movementState, (DurationSquareData)(markedClick.targetData), (DurationSquareData)(squareClick.targetData), GetRange(markedClick.coordinate, squareClick.coordinate), markedClick.coordinate, squareClick.coordinate); return(durationChain); }
private Boolean ClickIsValid(SquareClick squareClick) { if (markedClick != null) { if (squareClick.coordinate.X != markedClick.coordinate.X) { return(false); } } return(true); }
private void RightClick(SquareClick squareClick) { if (IsSquareMarked()) { markedClick = null; } else { DurationSquareDataChain targetedChain = GetTargetedChain(squareClick); if (targetedChain != null) { EraseChain(targetedChain); } } }
protected override void UpdateState() { if (IsLeftClicked()) { clickInformation = new SquareClick(true, data, coordinate); } else if (IsRightClicked()) { clickInformation = new SquareClick(false, data, coordinate); } if (data != null) { overlayDisplay = GetEventSprite(((DurationSquareData)data).durationEventType); } }
private DurationSquareDataChain GetTargetedChain(SquareClick squareClick) { Coordinate targetedCoord = squareClick.coordinate; foreach (DurationSquareDataChain dataChain in durationDataChains) { foreach (Coordinate chainCoord in dataChain.coordinates) { if (chainCoord.Equals(squareClick.coordinate)) { return(dataChain); } } } return(null); }
private void ClickLogic(SquareClick squareClick) { if (ClickIsValid(squareClick)) { if (squareClick.isLeftClicked) { LeftClick(squareClick); } else { RightClick(squareClick); } } else { markedClick = null; } }
private void LeftClick(SquareClick squareClick) { if (squareClick.targetData.enemyType == EnemyType.none && !IsSquareMarked()) { markedClick = squareClick; } else if (squareClick.targetData.enemyType == EnemyType.none && IsSquareMarked() && squareClick.coordinate.Y >= markedClick.coordinate.Y) { //This is where the datachains are created DurationSquareDataChain durationChain = GetDataChain(squareClick); durationDataChains.Add(durationChain); markedClick = null; } else { markedClick = null; } }