示例#1
0
 void Awake()
 {
     inputState = eInputState.DISABLED;
     GetComponent <BattleController>().stateChange += BattleStateChanged;
     highlighter   = GetComponent <GridHighlighter> ();
     guiController = GetComponent <BattleGUIController> ();
 }
    void OnMouseExit()
    {
        if ((BattleInputController.inputState == BattleInputController.eInputState.PLAYER_DEFAULT ||
             BattleInputController.inputState == BattleInputController.eInputState.NPC_DEFAULT) && currentUnit != null)
        {
            BattleInputController.mouseHoverEvent = false;
            cellHoverExitEvent();

            if (BattleController.instance.currentUnit != currentUnit)
            {
                currentUnit.SetIndicatorEnabled(false);
            }

            if (gridHighlighter == null)
            {
                gridHighlighter = GameObject.FindGameObjectWithTag("Battle Controller").GetComponent <GridHighlighter> ();
            }
            gridHighlighter.ClearAll();
        }
        else if (BattleInputController.inputState == BattleInputController.eInputState.TARGET_SELECT && currentUnit != null)
        {
            if (cellHoverInfoEvent != null)
            {
                cellHoverExitEvent();
            }
            if (BattleController.instance.currentUnit != currentUnit)
            {
                currentUnit.SetIndicatorEnabled(false);
            }
        }
    }
示例#3
0
    // Use this for initialization
    void Start()
    {
        current_amount = 0f;
        powerup_ui     = GameObject.FindObjectOfType <PowerUpUI>();
        UpdateDisplay();

        grid_highlighter = transform.parent.GetComponentInChildren <GridHighlighter>();
        grid             = grid_highlighter.GetComponent <SpriteRenderer>();

        shaker = GetComponent <Shaker>();
        shaker.RegisterObject(transform.parent.position);
    }
示例#4
0
 void Awake()
 {
     instance    = this;
     pathObjects = new List <GameObject>();
     for (int i = 0; i < pathObjectsSize; i++)
     {
         var pathGO = GameObject.Instantiate(pathPrefab) as GameObject;
         pathObjects.Add(pathGO);
         pathGO.SetActive(false);
         pathGO.transform.parent = transform;
     }
 }
    //Hover info.
    void OnMouseEnter()
    {
        if ((BattleInputController.inputState == BattleInputController.eInputState.PLAYER_DEFAULT ||
             BattleInputController.inputState == BattleInputController.eInputState.NPC_DEFAULT) & currentUnit != null)
        {
            BattleInputController.mouseHoverEvent = true;

            if (cellHoverInfoEvent != null)
            {
                cellHoverInfoEvent(currentUnit);
            }
            currentUnit.SetIndicatorEnabled(true);

            if (currentUnit.stats.mp > 0)
            {
                int mpLoss = currentUnit.MovementLockPenalty();
                HashSet <GridCell> remainingMoveRange = Pathfinder.GetMoveRange(this, currentUnit.stats.mp - mpLoss);
                HashSet <GridCell> unitMoveRange      = Pathfinder.GetMoveRange(this, currentUnit.stats.mp);

                if (gridHighlighter == null)
                {
                    gridHighlighter = GameObject.FindGameObjectWithTag("Battle Controller").GetComponent <GridHighlighter> ();
                }
                gridHighlighter.ClearAll();

                if (currentUnit == BattleController.instance.currentUnit)
                {
                    if (input == null)
                    {
                        input = GameObject.FindGameObjectWithTag("Battle Controller").GetComponent <BattleInputController> ();
                    }
                    input.ShowMovementRange();
                }
                else
                {
                    gridHighlighter.HighlightNonVisibleCell(unitMoveRange);
                    gridHighlighter.HighlightMoveRange(remainingMoveRange);
                }
            }
        }
        else if (BattleInputController.inputState == BattleInputController.eInputState.TARGET_SELECT && currentUnit != null)
        {
            if (cellHoverInfoEvent != null)
            {
                cellHoverInfoEvent(currentUnit);
            }
            currentUnit.SetIndicatorEnabled(true);
        }
    }
 void Awake()
 {
     GetComponent <BattleController>().stateChange += BattleStateChanged;
     highlighter     = GetComponent <GridHighlighter> ();
     inputController = GetComponent <BattleInputController> ();
 }
        public override void Apply(ref Bitmap bitmap, out Highlighter[] highlightersOut)
        {
            // Make a copy of the bitmap filtered with the Difference filter
            Bitmap differenceBitmap = new Bitmap(bitmap);
            var    filter           = new Images.Filters.FilterDifference();

            Highlighter[] temp;

            filter.Apply(ref differenceBitmap, out temp);

            // Analyse gridlines
            ImageReader        reader           = new ImageReader(ref bitmap);
            ImageReader        differenceReader = new ImageReader(ref differenceBitmap);
            List <Highlighter> highlighters     = new List <Highlighter>();

            int numHorizontalDivisions = bitmap.Width / gridInterval, numVerticalDivisions = bitmap.Height / gridInterval;

            List <EdgePoint>[] horizontalEdges = new List <EdgePoint> [numVerticalDivisions];
            List <EdgePoint>[] verticalEdges   = new List <EdgePoint> [numHorizontalDivisions];

            // Verticals
            for (int tileX = 0; tileX < bitmap.Width / gridInterval * gridInterval; tileX += gridInterval)
            {
                FindEdgesOnLine(ref reader, ref differenceReader, out verticalEdges[tileX / gridInterval], new Point(tileX, 0), 0, 1);
            }

            // Horizontals
            for (int tileY = 0; tileY < bitmap.Height / gridInterval * gridInterval; tileY += gridInterval)
            {
                FindEdgesOnLine(ref reader, ref differenceReader, out horizontalEdges[tileY / gridInterval], new Point(0, tileY), 0, 1);
            }

            // Debug: highlight the edges
            foreach (List <EdgePoint> edgeList in verticalEdges)
            {
                foreach (EdgePoint edge in edgeList) // ow the edge
                {
                    // ow the edge
                    highlighters.Add(new PointHighlighter(edge.X, edge.Y));
                    highlighters.Add(new PointHighlighter(edge.SegmentCentre.X, edge.SegmentCentre.Y)
                    {
                        Pen = new Pen(Color.Orange)
                    });

                    // add a line too
                    if (edge.LastPoint != null)
                    {
                        highlighters.Add(new EdgeHighlighter(new Point(edge.LastPoint.X, edge.LastPoint.Y), new Point(edge.X, edge.Y))
                        {
                            Pen = new Pen(edge.AverageSegmentColour, 2.0f)
                        });
                    }
                }
            }

            // Connect the edge points
            ConnectEdgePoints(verticalEdges, highlighters);

            // Add a grid highlighter representing the grid we checked
            GridHighlighter grid = new GridHighlighter(new Rectangle(0, 0, bitmap.Width, bitmap.Height), gridInterval);

            grid.Pen.Width = 1;
            grid.Pen.Color = Color.Gray;

            //highlighters.Add(grid);

            // Complete the highlighter array
            highlightersOut = highlighters.ToArray();

            // Release resources
            reader.Dispose();
        }
 void Awake()
 {
     Instance = this;
 }