private void Update() { if (UnitPanel == null) { return; } if (Input.GetMouseButtonDown(0)) { var eventData = new PointerEventData(EventSystem.current); eventData.position = Input.mousePosition; var raycastResults = new List <RaycastResult>(); EventSystem.current.RaycastAll(eventData, raycastResults); var click_on_panel = false; foreach (var item in raycastResults) { if (item.gameObject.GetComponent <UnitPanelController>() != null) { click_on_panel = true; break; } } if (!click_on_panel) { UnitPanel.DestroyThis(); return; } } if (Input.GetMouseButtonDown(1)) { UnitPanel.DestroyThis(); } }
private void UnitEventHappened(object sender, UnitEventArgs e) { switch (e.EventType) { //Unit movement animation event was raised case UnitEventType.MoveCommand: { break; } case UnitEventType.StatusUpdate: { UnitPanel.Refresh(); break; } case UnitEventType.NewUnitActivated: { UnitPanel.Refresh(); break; } default: break; } }
public void OnPointerClick(PointerEventData eventData) { if (eventData.pointerId != -1) { return; } if (UnitPanel != null) { if (UnitPanel.GetComponent <UnitPanelController>().Cell == this) { return; } UnitPanel.DestroyThis(); } var screen_pos = Camera.main.WorldToScreenPoint(transform.position); var canvas_pos = new Vector3(screen_pos.x / Screen.width * 1920 - 960, screen_pos.y / Screen.height * 1080 - 540); var unit_panel = Instantiate(Resources.Load <Transform>("Prefabs/UI/UnitPanel")); unit_panel.SetParent(canvas); unit_panel.localScale = Vector3.one; unit_panel.localPosition = canvas_pos + new Vector3(0, 125); UnitPanel = unit_panel.gameObject.GetComponent <UnitPanelController>(); UnitPanel.Cell = this; UnitPanel.gameObject.AddComponent <PanelEnable>(); }
public void SetUnit(SelectebleObject selectebleObject) { int count = SelecteblObjectPanel.childCount; for (int i = 0; i < count; i++) { var v = SelecteblObjectPanel.GetChild(i).GetComponent <UnitPanel>(); if (selectebleObject.Name == v.unit.Name) { v.Count++; v.Hp = -1; return; } } UnitPanel unit = Instantiate(UnitImage, SelecteblObjectPanel); var destroyd = selectebleObject.GetComponent <DestroydObject>(); if (destroyd != null) { unit.Hp = destroyd.Hp / destroyd.MaxHp; } else { unit.Hp = -1; } unit.Icon = selectebleObject.sprite; unit.unit = selectebleObject; unit.Count = 1; }
private void MapEventHappened(object sender, MapEventArgs e) { switch (e.EventType) { case MapEventType.MapViewChanged: { UnitPanel.Refresh(); break; } default: break; } }
// Use this for initialization void Start() { map = GameObject.FindObjectOfType <HexMap>(); line = GameObject.FindObjectOfType <LineRenderer>(); hexinfo = GameObject.Find("Hex Info"); line.sortingOrder = 10; buttons = new Button[1]; buttons[0] = GameObject.Find("Settle").GetComponent <Button>(); unitPanel = GameObject.FindObjectOfType <UnitPanel>(); unitPanel.gameObject.SetActive(false); }
private void Panel_Click(object sender, MouseEventArgs e) { if (WaitingAtEndOfTurn) { WaitingAtEndOfTurn = false; Game.NewPlayerTurn(); } else { _main.ViewPieceMode = !_main.ViewPieceMode; UnitPanel.Refresh(); OnMapEvent?.Invoke(null, new MapEventArgs(MapEventType.SwitchViewMovePiece)); } }
private void PlayerEventHappened(object sender, PlayerEventArgs e) { switch (e.EventType) { case PlayerEventType.NewTurn: { WaitingAtEndOfTurn = false; StatsPanel.Refresh(); UnitPanel.Refresh(); break; } default: break; } }
private void SetPanel(Transform panel, PartyPosition position) { ClearPanel(panel); Unit unit = _AssignedParty.GetAssignedUnit(position); if (unit != null) { GameObject unitPanel = Instantiate(UnitPanelPrefab); unitPanel.transform.SetParent(panel, false); UnitPanel panelControl = unitPanel.GetComponent <UnitPanel>(); if (panelControl != null) { panelControl.DisplayedUnit = unit; panelControl.UnitPosition = position; } } }
public void NextGroup() { SeparatePanel.SetActive(false); MergePanel.SetActive(false); aux = aux + 1; if (Groups.Count > aux) { if (Groups[aux] == null) { NextGroup(); } UnitMovement.text = ""; GameManager.GetComponent <MovingManager>().NewAssigmentGroup(Groups[aux]); Groups[aux].GetComponent <PlayerMovement>().NextTurn(); } else { UnitPanel.SetActive(false); CityPanel.SetActive(true); } }
public override void SelectOption() { base.SelectOption(); Menu.HideAllMenus(); UnitPanel.ClearAllPanels(); Tile t = Engine.MapCursor.GetTile(); Engine.MapCursor.X = Menu.Attach.GetComponent <TileOccupier>().X; Engine.MapCursor.Y = Menu.Attach.GetComponent <TileOccupier>().Y; Engine.MapCursor.GoToTile(); Engine.MapCursor.Hide(); Engine.TileManager.ClearHighlights(); CombatUnit caster = Menu.Attach.GetComponent <CombatUnit>(); if (Engine.CombatManager.ActionTable[Action].CTR == 0) { // Fast Action Engine.CombatManager.ActionTable[Action].Execute(caster, t, null); WaitingForExecution = true; Engine.AssignControl(this); } else { // Slow Action SlowAction sa = Engine.CombatManager.gameObject.AddComponent <SlowAction>(); sa.Action = Action; sa.Caster = Menu.Attach.GetComponent <CombatUnit>(); sa.TargetTile = t; sa.Action = Action; sa.CTR = Engine.CombatManager.ActionTable[Action].CTR; sa.Caster.gameObject.AddComponent <Charging>(); PostExecute(); } }
public void PlayerTurn() { Food += 10; Food -= Units; RecourseText.text = "Alimento: " + Food.ToString("0000") + " Rec.Construcción: " + Resources.ToString("0000") + '\n' + " Unidades: " + Units + " / " + MaxUnits; FinishButton.SetActive(true); if (Groups.Count > 0) { aux = 0; UnitPanel.SetActive(true); //llama a mover grupo if (Groups[aux] == null) { NextGroup(); } GameManager.GetComponent <MovingManager>().NewAssigmentGroup(Groups[aux]); Groups[aux].GetComponent <PlayerMovement>().NextTurn(); } else { CityPanel.SetActive(true); } }
private void Timer_Tick(object sender, EventArgs e) { UnitPanel.Refresh(); }
private void InitiateWaitAtTurnEnd(object sender, WaitAtTurnEndEventArgs e) { WaitingAtEndOfTurn = true; Timer.Start(); UnitPanel.Refresh(); }
public void GameChanged() { if (MapDisplay.Game.CurrentPlayer == null) { BeginTurnButton.Show(); NextTurnButton.Hide(); BeginTurnButton.Text = "Begin " + MapDisplay.Game.NextPlayer.Faction.ToString() + "'s turn"; } else { BeginTurnButton.Hide(); NextTurnButton.Show(); } MovePictureBox.BorderStyle = BorderStyle.None; BuildPictureBox.BorderStyle = BorderStyle.None; LoadPictureBox.BorderStyle = BorderStyle.None; UnloadPictureBox.BorderStyle = BorderStyle.None; RepairPictureBox.BorderStyle = BorderStyle.None; LightArtilleryPictureBox.BorderStyle = BorderStyle.None; HeavyArtilleryPictureBox.BorderStyle = BorderStyle.None; TorpedoPictureBox.BorderStyle = BorderStyle.None; DivePictureBox.BorderStyle = BorderStyle.None; LoadTorpedoesPictureBox.BorderStyle = BorderStyle.None; DepthChargePictureBox.BorderStyle = BorderStyle.None; InstallBatteryPictureBox.BorderStyle = BorderStyle.None; CapturePictureBox.BorderStyle = BorderStyle.None; MinePictureBox.BorderStyle = BorderStyle.None; LoadMinesPictureBox.BorderStyle = BorderStyle.None; SweepPictureBox.BorderStyle = BorderStyle.None; SearchMinesPictureBox.BorderStyle = BorderStyle.None; if (MapDisplay.Game.SelectedUnit != null) { DivePictureBox.Image = MapDisplay.Game.SelectedUnit.IsSubmerged ? Bitmaps.Get("Data\\Surface.png") : Bitmaps.Get("Data\\Dive.png"); } switch (MapDisplay.CurrentOrder) { case null: break; case Order.Move: MovePictureBox.BorderStyle = BorderStyle.Fixed3D; break; case Order.Build: BuildPictureBox.BorderStyle = BorderStyle.Fixed3D; break; case Order.LightArtillery: LightArtilleryPictureBox.BorderStyle = BorderStyle.Fixed3D; break; case Order.HeavyArtillery: HeavyArtilleryPictureBox.BorderStyle = BorderStyle.Fixed3D; break; case Order.Repair: RepairPictureBox.BorderStyle = BorderStyle.Fixed3D; break; case Order.Load: LoadPictureBox.BorderStyle = BorderStyle.Fixed3D; break; case Order.Unload: UnloadPictureBox.BorderStyle = BorderStyle.Fixed3D; break; case Order.Torpedo: TorpedoPictureBox.BorderStyle = BorderStyle.Fixed3D; break; case Order.DiveOrSurface: DivePictureBox.BorderStyle = BorderStyle.Fixed3D; break; case Order.LoadTorpedoes: LoadTorpedoesPictureBox.BorderStyle = BorderStyle.Fixed3D; break; case Order.DepthCharge: DepthChargePictureBox.BorderStyle = BorderStyle.Fixed3D; break; case Order.InstallBattery: InstallBatteryPictureBox.BorderStyle = BorderStyle.Fixed3D; break; case Order.Capture: CapturePictureBox.BorderStyle = BorderStyle.Fixed3D; break; case Order.Mine: MinePictureBox.BorderStyle = BorderStyle.Fixed3D; break; case Order.LoadMines: LoadMinesPictureBox.BorderStyle = BorderStyle.Fixed3D; break; case Order.Sweep: SweepPictureBox.BorderStyle = BorderStyle.Fixed3D; break; case Order.SearchMines: SearchMinesPictureBox.BorderStyle = BorderStyle.Fixed3D; break; } if (MapDisplay.Game.CurrentPlayer != null) { FlagBox.Image = Game.GetFactionFlag(MapDisplay.Game.CurrentPlayer.Faction); GreetingText.Text = Game.GetFactionGreetings(MapDisplay.Game.CurrentPlayer.Faction); GreetingText.BackColor = Game.GetFactionColor(MapDisplay.Game.CurrentPlayer.Faction); NextTurnButton.Show(); BeginTurnButton.Hide(); } else { FlagBox.Image = null; GreetingText.Text = "Press the Begin Turn button."; GreetingText.BackColor = SystemColors.Control; NextTurnButton.Hide(); BeginTurnButton.Show(); } var selectedUnit = MapDisplay.Game.SelectedUnit; if (selectedUnit != null) { if (MapDisplay.Game.CurrentPlayer != null && MapDisplay.Game.CurrentPlayer.Faction != Faction.Neutral) { if (MapDisplay.Game.CurrentPlayer == selectedUnit.Player) { OrdersPanel.Show(); } UnitPanel.Show(); InfoPanel.Show(); } UnitPictureBox.SizeMode = PictureBoxSizeMode.Zoom; UnitPictureBox.Image = MapDisplay.Game.SelectedUnit.Type.LargeBitmap; UnitTextBox.Text = selectedUnit.Name; UnitTextBox.Text += " : " + selectedUnit.Type.Name; UnitTextBox.Text += Environment.NewLine + "Integrity: " + Math.Round(selectedUnit.Health * 100).ToString() + "%"; if (selectedUnit.Type.Capacity >= 1) { UnitTextBox.Text += Environment.NewLine + "Cargo: " + selectedUnit.Cargo + "/" + selectedUnit.Type.Capacity; } if (selectedUnit.TurnsUntilCompletion > 0) { UnitTextBox.Text += Environment.NewLine + "Turns until completion: " + selectedUnit.TurnsUntilCompletion; } if (selectedUnit.Type == UnitType.Submarine && selectedUnit.IsSubmerged) { UnitTextBox.Text += Environment.NewLine + "Oxygen left: " + ((Submarine)selectedUnit).OxygenLeft.ToString(); } if (selectedUnit.Type.Abilities.Contains(Order.Torpedo)) { UnitTextBox.Text += Environment.NewLine + "Torpedo salvoes left: " + selectedUnit.Torpedoes; } if (selectedUnit.Type.Abilities.Contains(Order.Mine)) { UnitTextBox.Text += Environment.NewLine + "Mine placements left: " + selectedUnit.Mines; } if (selectedUnit.Type.Abilities.Contains(Order.Move)) { UnitTextBox.Text += Environment.NewLine + "Moves Left: " + selectedUnit.MovesLeft.ToString("0.0"); } if (selectedUnit.Type.Abilities.Contains(Order.LightArtillery)) { UnitTextBox.Text += Environment.NewLine + "Light Artillery " + "Power: " + selectedUnit.Type.LightPower + ", Range: " + selectedUnit.Type.LightRange; } if (selectedUnit.Type.Abilities.Contains(Order.HeavyArtillery)) { UnitTextBox.Text += Environment.NewLine + "Heavy Artillery " + "Power: " + selectedUnit.Type.HeavyPower + ", Range: " + selectedUnit.Type.HeavyRange; } if (!float.IsPositiveInfinity(selectedUnit.Type.Armour)) { UnitTextBox.Text += Environment.NewLine + "Armour: " + selectedUnit.Type.Armour; } if (selectedUnit.Type.Abilities.Contains(Order.Move)) { MoveBox.Show(); } else { MoveBox.Hide(); } if (selectedUnit.Type.Abilities.Contains(Order.LightArtillery)) { LightArtilleryBox.Show(); } else { LightArtilleryBox.Hide(); } if (selectedUnit.Type.Abilities.Contains(Order.HeavyArtillery)) { HeavyArtilleryBox.Show(); } else { HeavyArtilleryBox.Hide(); } if (selectedUnit.Type.Abilities.Contains(Order.Repair)) { RepairBox.Show(); } else { RepairBox.Hide(); } if (selectedUnit.Type.Abilities.Contains(Order.Build)) { BuildBox.Show(); } else { BuildBox.Hide(); } if (selectedUnit.Type.Abilities.Contains(Order.Load)) { LoadBox.Show(); } else { LoadBox.Hide(); } if (selectedUnit.Type.Abilities.Contains(Order.Unload)) { UnloadBox.Show(); } else { UnloadBox.Hide(); } if (selectedUnit.Type.Abilities.Contains(Order.Torpedo)) { TorpedoBox.Show(); } else { TorpedoBox.Hide(); } if (selectedUnit.Type.Abilities.Contains(Order.DiveOrSurface)) { DiveBox.Show(); DiveButton.Text = selectedUnit.IsSubmerged ? "Surface" : "Dive"; } else { DiveBox.Hide(); } if (selectedUnit.Type.Abilities.Contains(Order.LoadTorpedoes)) { LoadTorpedoesBox.Show(); } else { LoadTorpedoesBox.Hide(); } if (selectedUnit.Type.Abilities.Contains(Order.DepthCharge)) { DepthChargeBox.Show(); } else { DepthChargeBox.Hide(); } if (selectedUnit.Type.Abilities.Contains(Order.InstallBattery)) { InstallBatteryBox.Show(); } else { InstallBatteryBox.Hide(); } if (selectedUnit.Type.Abilities.Contains(Order.Capture)) { CaptureBox.Show(); } else { CaptureBox.Hide(); } if (selectedUnit.Type.Abilities.Contains(Order.Mine)) { MineBox.Show(); } else { MineBox.Hide(); } if (selectedUnit.Type.Abilities.Contains(Order.LoadMines)) { LoadMinesBox.Show(); } else { LoadMinesBox.Hide(); } if (selectedUnit.Type.Abilities.Contains(Order.Sweep)) { SweepBox.Show(); } else { SweepBox.Hide(); } if (selectedUnit.Type.Abilities.Contains(Order.SearchMines)) { SearchMinesBox.Show(); } else { SearchMinesBox.Hide(); } MoveBox.Enabled = selectedUnit.MovesLeft >= 1; LightArtilleryBox.Enabled = selectedUnit.LightShotsLeft >= 1 && !selectedUnit.IsSubmerged; HeavyArtilleryBox.Enabled = selectedUnit.HeavyShotsLeft >= 1 && !selectedUnit.IsSubmerged; BuildBox.Enabled = !selectedUnit.IsSubmerged; RepairBox.Enabled = selectedUnit.RepairsLeft >= 1 && !selectedUnit.IsSubmerged; LoadBox.Enabled = selectedUnit.LoadsLeft >= 1 && !selectedUnit.IsSubmerged; UnloadBox.Enabled = selectedUnit.LoadsLeft >= 1 && !selectedUnit.IsSubmerged; TorpedoBox.Enabled = selectedUnit.TorpedoesLeft >= 1 && selectedUnit.Torpedoes >= 1; DiveBox.Enabled = selectedUnit.DivesLeft >= 1; LoadTorpedoesBox.Enabled = selectedUnit.Torpedoes < selectedUnit.Type.MaxTorpedoes; DepthChargeBox.Enabled = selectedUnit.DepthChargesLeft >= 1; InstallBatteryBox.Enabled = selectedUnit.InstallsLeft >= 1; CaptureBox.Enabled = selectedUnit.CapturesLeft >= 1; MineBox.Enabled = selectedUnit.MinesLeft >= 1 && selectedUnit.Mines >= 1; LoadMinesBox.Enabled = selectedUnit.Mines < selectedUnit.Type.MaxMines; SweepBox.Enabled = selectedUnit.SweepsLeft >= 1; SearchMinesBox.Enabled = selectedUnit.MineSearchesLeft >= 1; if (MapDisplay.CurrentOrder == Order.Move && selectedUnit.MovesLeft < 1) { MapDisplay.CurrentOrder = null; } if (MapDisplay.CurrentOrder == Order.LightArtillery && selectedUnit.LightShotsLeft < 1) { MapDisplay.CurrentOrder = null; } if (MapDisplay.CurrentOrder == Order.HeavyArtillery && selectedUnit.HeavyShotsLeft < 1) { MapDisplay.CurrentOrder = null; } if (MapDisplay.CurrentOrder == Order.Repair && selectedUnit.RepairsLeft < 1) { MapDisplay.CurrentOrder = null; } if (MapDisplay.CurrentOrder == Order.Load && selectedUnit.LoadsLeft < 1) { MapDisplay.CurrentOrder = null; } if (MapDisplay.CurrentOrder == Order.Unload && selectedUnit.LoadsLeft < 1) { MapDisplay.CurrentOrder = null; } if (MapDisplay.CurrentOrder == Order.Torpedo && selectedUnit.TorpedoesLeft < 1) { MapDisplay.CurrentOrder = null; } if (MapDisplay.CurrentOrder == Order.LoadTorpedoes && selectedUnit.Torpedoes >= selectedUnit.Type.MaxTorpedoes) { MapDisplay.CurrentOrder = null; } if (MapDisplay.CurrentOrder == Order.DepthCharge && selectedUnit.DepthChargesLeft < 1) { MapDisplay.CurrentOrder = null; } if (MapDisplay.CurrentOrder == Order.InstallBattery && selectedUnit.InstallsLeft < 1) { MapDisplay.CurrentOrder = null; } if (MapDisplay.CurrentOrder == Order.Capture && selectedUnit.CapturesLeft < 1) { MapDisplay.CurrentOrder = null; } if (MapDisplay.CurrentOrder == Order.Mine && selectedUnit.MinesLeft < 1) { MapDisplay.CurrentOrder = null; } if (MapDisplay.CurrentOrder == Order.LoadMines && selectedUnit.Mines >= selectedUnit.Type.MaxMines) { MapDisplay.CurrentOrder = null; } if (MapDisplay.CurrentOrder == Order.Sweep && selectedUnit.SweepsLeft < 1) { MapDisplay.CurrentOrder = null; } if (MapDisplay.CurrentOrder == Order.SearchMines && selectedUnit.MineSearchesLeft < 1) { MapDisplay.CurrentOrder = null; } HealthBar.Value = (int)(selectedUnit.Health * 100); } else { UnitPanel.Hide(); OrdersPanel.Hide(); InfoPanel.Hide(); } Invalidate(); }