public bool CanAfford(GameManagerScript gmScript) { if (SoulsCost < 0) { if (!(gmScript.Souls + SoulsCost >= 0)) { Debug.Log("Can't afford Souls"); return false; } } if (PeopleCost < 0) { if (!(gmScript.People + PeopleCost >= 0)) { Debug.Log("Can't afford People"); return false; } } if (MoneyCost < 0) { if (!(gmScript.Money + MoneyCost >= 0)) { Debug.Log("Can't afford Money"); return false; } } if (InfCost < 0) { if (!(gmScript.Inf + InfCost >= 0)) { Debug.Log("Can't afford Influence"); return false; } } if (NotCost < 0) { if (!(gmScript.Not + NotCost >= 0)) { Debug.Log("Can't afford Notoriety"); return false; } } return true; }
public override void Action(GameManagerScript gameManager, GridScript grid, TileInformation tile) { if (tile != _tile) return; var tileList = grid.TileList; var tileScript = grid.TileList.FirstOrDefault(x => x.TileInformation == tile); if (tileScript != null) { if (tileScript.Y%2 == 0) { if (tileList.Any(ts => ts.X == tileScript.X - 1 && ts.Y == tileScript.Y + 0)) { var buffTile = tileList.First(ts => ts.X == tileScript.X - 1 && ts.Y == tileScript.Y + 0); buffTile.TileInformation.DeltaInf *= 2; buffTile.TileInformation.DeltaMoney *= 2; } if (tileList.Any(ts => ts.X == tileScript.X - 1 && ts.Y == tileScript.Y - 1)) { var buffTile = tileList.First(ts => ts.X == tileScript.X - 1 && ts.Y == tileScript.Y - 1); buffTile.TileInformation.DeltaInf *= 2; buffTile.TileInformation.DeltaMoney *= 2; } if (tileList.Any(ts => ts.X == tileScript.X + 0 && ts.Y == tileScript.Y - 1)) { var buffTile = tileList.First(ts => ts.X == tileScript.X + 0 && ts.Y == tileScript.Y - 1); buffTile.TileInformation.DeltaInf *= 2; buffTile.TileInformation.DeltaMoney *= 2; } if (tileList.Any(ts => ts.X == tileScript.X + 1 && ts.Y == tileScript.Y + 0)) { var buffTile = tileList.First(ts => ts.X == tileScript.X + 1 && ts.Y == tileScript.Y + 0); buffTile.TileInformation.DeltaInf *= 2; buffTile.TileInformation.DeltaMoney *= 2; } if (tileList.Any(ts => ts.X == tileScript.X + 0 && ts.Y == tileScript.Y + 1)) { var buffTile = tileList.First(ts => ts.X == tileScript.X + 0 && ts.Y == tileScript.Y + 1); buffTile.TileInformation.DeltaInf *= 2; buffTile.TileInformation.DeltaMoney *= 2; } if (tileList.Any(ts => ts.X == tileScript.X - 1 && ts.Y == tileScript.Y + 1)) { var buffTile = tileList.First(ts => ts.X == tileScript.X - 1 && ts.Y == tileScript.Y + 1); buffTile.TileInformation.DeltaInf *= 2; buffTile.TileInformation.DeltaMoney *= 2; } } else { if (tileList.Any(ts => ts.X == tileScript.X - 1 && ts.Y == tileScript.Y + 0)) { var buffTile = tileList.First(ts => ts.X == tileScript.X - 1 && ts.Y == tileScript.Y + 0); buffTile.TileInformation.DeltaInf *= 2; buffTile.TileInformation.DeltaMoney *= 2; } if (tileList.Any(ts => ts.X == tileScript.X - 1 && ts.Y == tileScript.Y - 1)) { var buffTile = tileList.First(ts => ts.X == tileScript.X - 1 && ts.Y == tileScript.Y - 1); buffTile.TileInformation.DeltaInf *= 2; buffTile.TileInformation.DeltaMoney *= 2; } if (tileList.Any(ts => ts.X == tileScript.X - 1 && ts.Y == tileScript.Y - 1)) { var buffTile = tileList.First(ts => ts.X == tileScript.X - 1 && ts.Y == tileScript.Y - 1); buffTile.TileInformation.DeltaInf *= 2; buffTile.TileInformation.DeltaMoney *= 2; } if (tileList.Any(ts => ts.X == tileScript.X + 0 && ts.Y == tileScript.Y - 1)) { var buffTile = tileList.First(ts => ts.X == tileScript.X + 0 && ts.Y == tileScript.Y - 1); buffTile.TileInformation.DeltaInf *= 2; buffTile.TileInformation.DeltaMoney *= 2; } if (tileList.Any(ts => ts.X == tileScript.X - 1 && ts.Y == tileScript.Y - 1)) { var buffTile = tileList.First(ts => ts.X == tileScript.X - 1 && ts.Y == tileScript.Y - 1); buffTile.TileInformation.DeltaInf *= 2; buffTile.TileInformation.DeltaMoney *= 2; } if (tileList.Any(ts => ts.X == tileScript.X - 1 && ts.Y == tileScript.Y - 1)) { var buffTile = tileList.First(ts => ts.X == tileScript.X - 1 && ts.Y == tileScript.Y - 1); buffTile.TileInformation.DeltaInf *= 2; buffTile.TileInformation.DeltaMoney *= 2; } } } }
public override void Action(GameManagerScript gameManager, GridScript grid, TileInformation tile) { tile.AreActionsEnabled = true; }
public override bool CanUse(GameManagerScript gameManager, GridScript grid, TileInformation tile) { return true; }
public override void Action(GameManagerScript gameManager, GridScript grid, TileInformation tile) { gameManager.Souls += 3; gameManager.People -= 3; gameManager.Not += 1; tile.AreActionsEnabled = false; }
public override bool CanUse(GameManagerScript gameManager, GridScript grid, TileInformation tile) { return gameManager.People >= 3; }
public override void Action(GameManagerScript gameManager, GridScript grid, TileInformation tile) { if (_tile.BonusReceived) return; var neighbours = grid.GetNeighbours(grid.TileList.First(t => t.TileInformation == _tile)); var influenceCount = 0; foreach (var neighbour in neighbours) { influenceCount += neighbour.TileInformation.DeltaInf; influenceCount -= neighbour.TileInformation.DeltaNot; } if (influenceCount >= 10) { Debug.Log("Got Bonus!!!!"); _tile.BonusReceived = true; gameManager.People += 10; } }
public abstract void Action(GameManagerScript gameManager, GridScript grid, TileInformation tile);
public abstract bool CanUse(GameManagerScript gameManager, GridScript grid, TileInformation tile);