public virtual void SetExecute(Execute_MenuOption e) { }
private void Update() { if (Engine.InputManager.Attach != this) { return; } switch (State) { case TargetableActionState.WaitingForTileSelect: Engine.MapCursor.DelegatedInput(); if (Engine.InputManager.Accept) { Engine.InputManager.Accept = false; Tile TargetTile = Engine.MapCursor.GetTile(); if (TargetTile.CurrentlySelectable) { TargetTile = Engine.MapCursor.GetTile(); HighlightAffectedTiles(TargetTile); Caster.gameObject.GetComponent <UnitPanel>().ModeOverride = 1; State = TargetableActionState.WaitingForTileConfirm; if (TileOccupier.GetTileOccupant(TargetTile) != null) { CombatUnit target = TileOccupier.GetTileOccupant(TargetTile).GetComponent <CombatUnit>(); if (target) { PredictEffect(target); } } } else { Message m = new GameObject().AddComponent <Message>(); m.BoxMessageLabel = "Check"; m.BoxMessage = "Select within range."; m.ReturnControlTo = this; Engine.AssignControl(m); } } else if (Engine.InputManager.Cancel) { Engine.InputManager.Cancel = false; State = TargetableActionState.Inactive; Menu.ShowAllMenus(); Engine.AssignControl(Menu); Engine.TileManager.ClearHighlights(); //Engine.PathManager.ClearAll(false); Engine.CameraManager.SetTargetPosition(Caster.transform.position, .5f); Engine.MapCursor.X = Caster.gameObject.GetComponent <TileOccupier>().X; Engine.MapCursor.Y = Caster.gameObject.GetComponent <TileOccupier>().Y; Engine.MapCursor.GoToTile(); } break; case TargetableActionState.WaitingForTileConfirm: if (Engine.InputManager.Accept) { Engine.InputManager.Accept = false; Menu m = new GameObject().AddComponent <Menu>(); m.Attach = Caster.gameObject; m.Top = .5f; m.Left = .7f; m.name = "Confirm Effect"; m.ReturnControlTo = this; Execute_MenuOption e = m.gameObject.AddComponent <Execute_MenuOption>(); SetExecute(e); m.AddMenuOption("Execute", e); NoExecute_MenuOption ne = m.gameObject.AddComponent <NoExecute_MenuOption>(); m.AddMenuOption("Quit", ne); } if (Engine.InputManager.Cancel) { Engine.InputManager.Cancel = false; State = TargetableActionState.WaitingForTileSelect; Engine.TileManager.ClearHighlights(); HighlightSelectableTiles(); //Prediction[] ps = ReturnControlTo.gameObject.GetComponents<Prediction>(); //foreach (Prediction p in ps) //{ // Destroy(p); //} } break; } }
public override void SetExecute(Execute_MenuOption e) { e.Action = Action; }