private OrderButton CreateOrderButton(UnityAction action, UnityAction onHover, string spriteName, string colorHex = "#ffffff", bool isSubButton = true) { var btn = CreateOrderButton(action, onHover, Loc.GetSpriteStore().GetSprite(spriteName), isSubButton); btn.Button.image.color = colorHex.GetColorFromHex(); return(btn); }
private void SetZoneCellTile(ZoneBase newZone, string sprite, Cell cell) { var tile = ScriptableObject.CreateInstance <Tile>(); tile.sprite = Loc.GetSpriteStore().GetSprite(sprite); tile.color = newZone.ColorString.GetColorFromHex(); ZoneTilemap.SetTile(new Vector3Int(cell.X, cell.Z, 0), tile); }
internal List <FilterViewOption> GetAllItemOptions() { var options = new List <FilterViewOption>(); foreach (var item in ItemDataReference.Values) { options.Add(new FilterViewOption(item.Name, Loc.GetSpriteStore().GetSprite(item.Icon), item.Categories)); } return(options); }
internal void Load(WorkStructureBase structure, WorkDefinition definition, WorkOption option, StructureInfoPanel panel) { Panel = panel; Structure = structure; Definition = definition; Option = option; Image.sprite = Loc.GetSpriteStore().GetSprite(Option.Icon); Title.text = $"{definition.Name}: {option.Name}"; }
public ImageButton AddButton(string spriteName) { var button = Instantiate(ImageButtonPrefab, ButtonPanel.transform); button.SetImage(Loc.GetSpriteStore().GetSprite(spriteName)); _contextButtons.Add(button); button.SetOnClick(() => SetActiveButton(button)); return(button); }
private void MoveClicked() { Loc.Current.Get <CursorController>().SetSelectionPreference(SelectionPreference.Cell); Loc.Current.Get <CursorController>().SetSprite(Loc.GetSpriteStore().GetSprite(MoveIcon), (cell) => cell.TravelCost > 0); CellClickOrder = cells => { var cell = cells[0]; Loc.GetFactionController().PlayerFaction.AddTask(new Move(cell)); }; }
internal Texture2D GetTexture() { if (this._texture != null) { return(this._texture); } _texture = new Texture2D(Width * MapController.PixelsPerCell, Height * MapController.PixelsPerCell); var z = 0; var x = 0; foreach (var line in FlippedPlan) { foreach (var character in line) { var startX = x * MapController.PixelsPerCell; var startZ = z * MapController.PixelsPerCell; Texture2D sourceTexture; if (character == '.') { sourceTexture = new Texture2D(1, 1); sourceTexture.SetPixel(0, 0, new Color(0, 0, 0, 0)); sourceTexture.Apply(); } else { var structure = Loc.GetStructureController().StructureDataReference.Values.First(s => s.Name == GetStructure(character)); sourceTexture = Loc.GetSpriteStore().GetSprite(structure.Icon).texture; } var constructTexture = sourceTexture.Clone(); constructTexture.ScaleToGridSize(1, 1); for (var subTexX = 0; subTexX < MapController.PixelsPerCell; subTexX++) { for (var subTexY = 0; subTexY < MapController.PixelsPerCell; subTexY++) { var pixel = constructTexture.GetPixel(subTexX, subTexY); _texture.SetPixel(startX + subTexX, startZ + subTexY, pixel); } } x++; } z++; } _texture.Apply(); return(_texture); }
public void Start() { var lightObject = transform.Find("Light").gameObject; var spriteObject = transform.Find("Sprite").gameObject; var particleObject = transform.Find("Particle").gameObject; if ((Data.EffectType & EffectType.Light) == EffectType.Light) { Light = lightObject.GetComponent <Light>(); } else { lightObject.SetActive(false); } if ((Data.EffectType & EffectType.Sprite) == EffectType.Sprite) { Sprite = spriteObject.GetComponent <SpriteRenderer>(); } else { spriteObject.SetActive(false); } if ((Data.EffectType & EffectType.Particle) == EffectType.Particle) { ParticleSystem = particleObject.GetComponent <ParticleSystem>(); } else { particleObject.SetActive(false); } if (Data.Properties.ContainsKey("Sprite")) { Sprite.sprite = Loc.GetSpriteStore().GetSprite(Data.GetProperty("Sprite")); } if (Data.Properties.ContainsKey("Color")) { Sprite.color = Data.GetProperty("Color").GetColorFromHex(); } var x = float.Parse(Data.GetProperty("X")); var y = float.Parse(Data.GetProperty("Y")); var z = float.Parse(Data.GetProperty("Z")); transform.position = new Vector3(x, y, z); }
private void AttackClicked(IEnumerable <CreatureData> creatures) { Loc.Current.Get <CursorController>().SetSelectionPreference(SelectionPreference.Cell); Loc.Current.Get <CursorController>().SetSprite(Loc.GetSpriteStore().GetSprite(OrderSelectionController.AttackIcon), (cell) => cell.GetEnemyCreaturesOf(FactionConstants.Player).Any()); Loc.GetGameController().OrderSelectionController.CellClickOrder = cells => { foreach (var creature in creatures) { foreach (var cell in cells) { foreach (var enemy in cell.GetEnemyCreaturesOf(creature.FactionName)) { creature.Combatants.Add(enemy); break; } } } }; }
private void RemoveStructureClicked() { Loc.Current.Get <CursorController>().SetSelectionPreference(SelectionPreference.Cell); Loc.Current.Get <CursorController>().SetSprite(Loc.GetSpriteStore().GetSprite(DefaultRemoveIcon), (cell) => cell.Structures != null); CellClickOrder = cells => { foreach (var cell in cells) { if (cell.Structures.Count > 0) { var structure = cell.Structures.First(); if (Loc.GetFactionController().PlayerFaction.AvailableTasks.OfType <RemoveStructure>().Any(t => t.StructureToRemove == structure)) { continue; } Loc.GetFactionController().PlayerFaction.AddTask(new RemoveStructure(structure)); } } }; }
private void MoveClicked(IEnumerable <CreatureData> creatures) { Loc.Current.Get <CursorController>().SetSelectionPreference(SelectionPreference.Cell); Loc.Current.Get <CursorController>().SetSprite(Loc.GetSpriteStore().GetSprite(OrderSelectionController.MoveIcon), (cell) => cell.TravelCost > 0); Loc.GetGameController().OrderSelectionController.CellClickOrder = cells => { foreach (var creature in creatures) { if (creature.InCombat) { creature.Combatants.Clear(); } var cell = cells[0]; var faction = creature.Faction; var task = new Move(cell); creature.AbandonTask(); creature.Task = task; } }; }
public void Initialize() { Sprite = Loc.GetSpriteStore().GetSprite(ZoneSprite); }
private void SetCursorAndSpriteForZone(string sprite) { Loc.Current.Get <CursorController>().SetSprite(Loc.GetSpriteStore().GetSprite(sprite), CanAddCellToZone); Loc.Current.Get <CursorController>().SetSelectionPreference(SelectionPreference.Cell); }
public void Start() { Image.sprite = Loc.GetSpriteStore().GetSprite("Blank"); Clothes.sprite = Loc.GetSpriteStore().GetSprite("Blank"); Text.text = "__"; }