public Fleet(List <StarShip> ships, TileMap tileMap, Neuron tileMapNeuron, HexTileCoord coord) { _starShips = ships; _currentTileMap = tileMap; _currentTileMapNeuron = tileMapNeuron; HexCoord = coord; }
public bool IsAvailable(HexTileCoord coord) { var side = _unit.OwnerType == OwnerType.Me && Game.IsMyTurn || _unit.OwnerType == OwnerType.Enemy && !Game.IsMyTurn; return(side && _unit.RemainMovePoint >= _unit.HexCoord.GetDistance(coord)); }
public UnInhabitablePlanet(string name, HexTileCoord coord) { Name = name; HexCoord = coord; PlanetType = "Barren"; }
public StarSystem(Neuron parentNeuron) { _neuron = parentNeuron.LinkNewChildNeuron(); Size = 6; Name = "TestSystem"; HexCoord = new HexTileCoord(3, 3); TileMap = new TileMap(6, _neuron); SetPlanets(); }
public void DoSpecialAction(HexTileCoord coord) => _moveAction(coord);
public MoveInfo(HexTileCoord fromCoord, int costUntilHere) { FromCoord = fromCoord; CostUntilHere = costUntilHere; }
public BuildingConstructedSignal(Neuron neuron, string buildingName, HexTileCoord coord) { FromNeuron = neuron; BuildingName = buildingName; Coord = coord; }
public Building(Neuron parentNeuron, BuildingPrototype prototype, Planet planet, HexTileCoord coord, IReadOnlyList <Modifier> modifiers = null) { _neuron = parentNeuron.LinkNewChildNeuron(); Name = prototype.Name; HexCoord = coord; _planet = planet; YieldFromBuilding = prototype.BuildingYield; UpkeepFromBuilding = prototype.BuildingUpkeep; var resourceData = GameDataStorage.Instance.GetGameData <GameFactorResourceData>(); var slotData = GameDataStorage.Instance.GetGameData <PopSlotData>(); // Initialize yield kind var yieldKind = new HashSet <string>(); foreach (var kv in prototype.BasePopSlots) { foreach (var k in slotData[kv.Key].YieldFactorKind.Where(x => resourceData.AllResourceSet.Contains(x))) { yieldKind.Add(k); } } YieldResourceKind = yieldKind; // Initialize modifiers if (modifiers != null) { foreach (var m in modifiers) { if (!m.ModifierInfo.GameFactorAmount.Keys.Any(x => x == "Happiness" && m.ModifierInfo.TopHolder == ModifierHolderKind.Building || x == "AnyResource" || yieldKind.Contains(x))) { continue; } _modifiers.Add(m); ApplyModifierChange(m, true); } } // Initialize slots foreach (var kv in prototype.BasePopSlots) { var p = slotData[kv.Key]; var slot = new PopSlot(_neuron, this, p); for (var i = 0; i < kv.Value; i++) { _popSlots.Add(slot); } } // Initialize adjacency bonus var adj = prototype.AdjacencyBonus; AdjacencyBonusMaxLevel = adj.MaxLevel; AdjacencyBonusPerLevel = adj.BonusPerLevel; AdjacencyBonusDict = adj.BonusChangeInfo; _neuron.Subscribe <BuildingConstructedSignal>(OnBuildingConstructedSignal); _neuron.Subscribe <GameCommandSignal>(OnGameCommandSignal); }
public static int GetDistance(this HexTileCoord c1, HexTileCoord c2) => (Mathf.Abs(c1.Q - c2.Q) + Mathf.Abs(c1.Q + c1.R - c2.Q - c2.R) + Mathf.Abs(c1.R - c2.R)) / 2;
public BuildingQueueElement(BuildingPrototype prototype, HexTileCoord coord, bool isUpgrading = false) { Prototype = prototype; Coord = coord; IsUpgrading = isUpgrading; }