private void HandleClickingStuff()
        {
            if (Input.GetKeyDown(KeyCode.Escape))
            {
                FSM.SetTrigger("Deselect");
            }

            if (Input.GetMouseButtonDown(0))
            {
                RaycastHit hit;
                Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                if (Physics.Raycast(ray, out hit, 100.0f))
                {
                    if (hit.transform.gameObject.CompareTag("Unit"))
                    {
                        SelectedUnit = hit.transform.gameObject.GetComponent <UnitRenderer>();
                        FSM.SetTrigger("UnitClicked");
                    }
                    else if (hit.transform.gameObject.CompareTag("Target"))
                    {
                        if (OnTargetClick != null)
                        {
                            OnTargetClick(this, hit.transform.position);
                        }
                    }
                    else
                    {
                        FSM.SetTrigger("Deselect"); //TODO: let FSM handle this stuff
                    }
                }
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Occurs when this scene is entered
        /// </summary>
        public override void Enter()
        {
            // setup graphics resources
            sbGUI  = new SpriteBatch(GraphicsManager.Instance.Device);
            sbFore = new SpriteBatch(GraphicsManager.Instance.Device);
            sbBack = new SpriteBatch(GraphicsManager.Instance.Device);
            font   = Engine.Instance.Content.GetAsset <Font>(Constants.ASSET_FONT_CONSOLE);

            camera                   = new Camera2();
            boardRenderer            = new BoardRenderer(manager.Client, camera);
            unitRenderer             = new UnitRenderer(boardRenderer, camera, manager.Client);
            camera.Translation       = boardRenderer.GetTileCentre(manager.Client.GetMyUnits()[0].Location);
            camera.TranslationTarget = camera.Translation;

            // set up gui elements
            canvas = new Canvas(GraphicsManager.Instance.Viewport.Bounds);
            ConsoleForm   consoleForm = new ConsoleForm(canvas);
            GUI_Map       map         = new GUI_Map(camera, manager.Client, boardRenderer, canvas);
            GUI_StatusBar statusBar   = new GUI_StatusBar(manager.Client, this, canvas);
            GUI_EndTurn   endTurn     = new GUI_EndTurn(manager.Client, canvas);

            CityList      = new GUI_CityList(manager.Client, this, canvas);
            UnitList      = new GUI_UnitList(manager.Client, this, canvas);
            UnitActions   = new GUI_UnitActions(manager.Client, this, camera, boardRenderer, canvas);
            CityManagment = new GUI_CityManagment(manager.Client, this, canvas);
            GUI_NamePlates namePlates = new GUI_NamePlates(manager.Client, canvas, camera, boardRenderer);

            TechTree     = new GUI_Tech(manager.Client, this, canvas);
            GameMenu     = new GUI_GameMenu(manager.Client, this, canvas);
            SocialPolicy = new GUI_SocialPolicy(manager.Client, this, canvas);
        }
Exemplo n.º 3
0
    public void CreateUnitRenderer(Unit unit)
    {
        UnitRenderer unitRenderer = Instantiate(unitRendererPrefab, transform);

        unitRenderer.Setup(unit);
        unitRenderers.Add(unitRenderer);
    }
Exemplo n.º 4
0
 public void RemoveVisual()
 {
     if (visual != null)
     {
         ObjectPool.Destroy(visual);
         visual = null;
     }
 }
Exemplo n.º 5
0
        /// <summary>
        /// Creates and presents the Preferences dialog to the user.
        /// </summary>
        /// <param name="mapRenderer">The map to render as a minimap.</param>
        /// <param name="unitRenderer">The units to render to the minimap.</param>
        /// <param name="onCloseCB">The callback fired when the dialog closes.</param>
        public static MinimapDialog Create(MapRenderer mapRenderer, UnitRenderer unitRenderer, OnCloseCallback onCloseCB = null)
        {
            GameObject    goDialog = Instantiate(Resources.Load <GameObject>("Dialogs/MinimapDialog"));
            MinimapDialog dialog   = goDialog.GetComponent <MinimapDialog>();

            dialog.Initialize(mapRenderer, unitRenderer, onCloseCB);

            return(dialog);
        }
Exemplo n.º 6
0
        /// <summary>
        /// Creates and presents the Mission Variants dialog to the user.
        /// </summary>
        public static MissionVariantsDialog Create(UnitRenderer unitRenderer)
        {
            GameObject            goDialog = Instantiate(Resources.Load <GameObject>("Dialogs/MissionVariantsDialog"));
            MissionVariantsDialog dialog   = goDialog.GetComponent <MissionVariantsDialog>();

            dialog.Initialize(unitRenderer);

            return(dialog);
        }
 public void ClearHighlights()
 {
     foreach (var unit in _unitRegistry.GetAllUnits())
     {
         // TODO: Maybe expose UnitRenderer only to the interested parties instead of using "GetComponent"
         UnitRenderer unitRenderer = _unitTransformRegistry
                                     .GetTransformableUnit(unit.UnitId).Transform.GetComponent <UnitRenderer>();
         unitRenderer.SetSelected(true);
     }
 }
Exemplo n.º 8
0
        private void Initialize(MapRenderer mapRenderer, UnitRenderer unitRenderer, OnCloseCallback onCloseCB)
        {
            m_MapRenderer  = mapRenderer;
            m_UnitRenderer = unitRenderer;
            m_OnCloseCB    = onCloseCB;

            mapRenderer.onMapRefreshedCB += OnMapRefreshed;
            m_UnitRenderer.onRefreshedCB += OnUnitRendererRefreshed;

            OnMapRefreshed(mapRenderer);
        }
Exemplo n.º 9
0
        public static void Set(PerformerTask newTask)
        {
            if (!newTask.Enabled)
            {
                return;
            }

            task     = newTask;
            roadTask = task is ConstructRoad;
            bool seedTask = task is PlantSeed;

            System.Type[] taskTypes;
            if (roadTask)
            {
                taskTypes = new [] { typeof(Road) };
            }
            else if (seedTask)
            {
                taskTypes = new [] { typeof(Seed) };
            }
            else
            {
                taskTypes = task.GetType().GetGenericArguments();
            }

            if (taskTypes.Length > 0)
            {
                string renderer = UnitRenderer.GetRenderer(DataManager.GetUnitSymbol(taskTypes[0]));
                visual = ObjectPool.Instantiate(renderer) as UnitRenderer;
                visual.SetAlpha(0.33f);
                GameCursor.Instance.SetVisual(task, visual);
            }

            GameCursor.Instance.onClick += OnClick;

            if (roadTask)
            {
                Events.instance.AddListener <ClickConnectionEvent> (OnClickConnectionEvent);
                Events.instance.AddListener <MouseEnterConnectionEvent> (OnMouseEnterConnectionEvent);
                Events.instance.AddListener <MouseExitConnectionEvent> (OnMouseExitConnectionEvent);
            }
            else
            {
                Events.instance.AddListener <ClickPointEvent> (OnClickPointEvent);
                Events.instance.AddListener <MouseEnterPointEvent> (OnMouseEnterPointEvent);
                Events.instance.AddListener <MouseExitPointEvent> (OnMouseExitPointEvent);
            }
        }
Exemplo n.º 10
0
        private void Initialize(UnitRenderer unitRenderer)
        {
            m_UnitRenderer = unitRenderer;

            UserData.current.onChangedValuesCB += OnChanged_UserData;

            // Initialize display
            m_DropdownMissionVariant.value = UserData.current.selectedVariantIndex >= 0 ? UserData.current.selectedVariantIndex + 1 : 0;
            m_InputVariantName.SetTextWithoutNotify(UserData.current.selectedVariant.name);
            m_InputVariantName.interactable = UserData.current.selectedVariantIndex >= 0;

            m_DropdownDifficulty.value = UserData.current.selectedDifficultyIndex >= 0 ? UserData.current.selectedDifficultyIndex + 1 : 0;

            RefreshVariantDropdown();
            RefreshDifficultyDropdown();
        }
Exemplo n.º 11
0
    private void OnUnitRemoved(UnitRemovedFromMap e)
    {
        UnitRenderer removedRenderer = null;

        foreach (UnitRenderer unitRenderer in unitRenderers)
        {
            if (unitRenderer.unit == e.unit)
            {
                removedRenderer = unitRenderer;
                break;
            }
        }
        if (removedRenderer != null)
        {
            unitRenderers.Remove(removedRenderer);
            removedRenderer.OnRemoval();
        }
    }
Exemplo n.º 12
0
 private void Awake()
 {
     unitRendererPrefab = Resources.Load <UnitRenderer>("Prefabs/UnitRenderer");
 }
Exemplo n.º 13
0
 public void SetVisual(PerformerTask task, UnitRenderer newVisual)
 {
     RemoveVisual();
     this.visual = newVisual;
     StartCoroutine(CoVisualFollowCursor(task));
 }