Beispiel #1
0
        public static bool Prefix(ref GameObject __result, Enums.StructureType structureType)
        {
            IPlaceableStructureCreator placeableStructureCreator = ActivePlaceableStructureCreators.GetCreatorFromEnum(structureType);

            if (placeableStructureCreator != null)
            {
                __result = placeableStructureCreator.Prefab;
                return(false);
            }

            return(true);
        }
    // Sets selected tile to structure with desired type
    public void SetTileToStructureAt(int x, int y, Enums.StructureType sType)
    {
        // Check if tile is empty
        if (_tileData[x, y]._state == Enums.MapTileState.Empty)
        {
            _tileData[x, y]._state     = Enums.MapTileState.Struture;
            _tileData[x, y]._structure = StoreService.GetStructureData(sType);

            const float offset = .33f;
            // TODO : fix for aligning tiles correctly because of sprite pivot is middle
            var tileLoc = new Vector3(transform.position.x + (offset * x) - .33f, transform.position.y + (offset * y) - .33f, 0);

            var go = Instantiate(_tilePrefab, tileLoc, Quaternion.identity, transform);
            go.GetComponent <TileControllerScript>().SetTileData(_tileData[x, y]);

            // If player tile, set appropriate tag
            if (sType == Enums.StructureType.Warfare)
            {
                go.tag = Constants.TAG_PLAYER_TILE;
            }
        }
    }
 public StructureData(Enums.StructureType type, float hp)
 {
     _type = type;
     _hp   = hp;
 }
Beispiel #4
0
 public static StructureData GetStructureData(Enums.StructureType type)
 {
     return(_structuresData[(int)type]);
 }
Beispiel #5
0
 protected abstract void PatchedStructureTypeEnum(Enums.StructureType structureType);
 protected override void PatchedStructureTypeEnum(Enums.StructureType structureType)
 {
 }
 internal static IPlaceableStructureCreator GetCreatorFromEnum(Enums.StructureType structureType)
 {
     return(HasCreatorFromEnum(structureType) ? ActiveEnums[structureType] : null);
 }
 internal static bool HasCreatorFromEnum(Enums.StructureType structureType)
 {
     return(ActiveEnums.ContainsKey(structureType));
 }
 internal static void Add <T>(IPlaceableStructureCreator o, Enums.StructureType structureType) where T : IPlaceableStructureCreator
 {
     PlaceableStructureCreators.Add(typeof(T), o);
     ActiveEnums.Add(structureType, o);
 }