예제 #1
0
        private void CheckForTransparency(object sender, MouseHoverTile.OnHoverTileChangedArgs args)
        {
            if (!transparentHover)
            {
                return;
            }
            if (args.HoverTileUi == null)
            {
                TurnOpaque();
                return;
            }

            var camPos   = _mainCamera.transform.position;
            var propPos  = transform.position;
            var mousePos = args.HoverTileUi.transform.position;

            if (camPos.x < propPos.x && mousePos.x > propPos.x && Vector3.Distance(mousePos, propPos) < 3.0F ||
                camPos.z < propPos.z && mousePos.z > propPos.z && Vector3.Distance(mousePos, propPos) < 3.0F)
            {
                TurnTransparent();
            }
            else
            {
                TurnOpaque();
            }
        }
예제 #2
0
        private void DrawIcons(object sender, MouseHoverTile.OnHoverTileChangedArgs args)
        {
            DestroyAll();
            if (args.HoverTileUi == null)
            {
                return;
            }

            var hoverTile = MapTile.GetMapTileFromUi(args.HoverTileUi);
            var iconTiles = hoverTile.GetAdjacentTiles(true).Values.ToList();

            iconTiles.Add(hoverTile);

            foreach (var iconTile in iconTiles)
            {
                if (iconTile == null)
                {
                    continue;
                }
                var tileCover = iconTile.Cover;
                foreach (var coverType in tileCover)
                {
                    CreateIcon(iconTile, coverType.Key, coverType.Value, iconTile == hoverTile);
                }
            }
        }
예제 #3
0
 private static void UpdateUi(object sender, MouseHoverTile.OnHoverTileChangedArgs args)
 {
     if (args.HoverTileUi == null)
     {
         RouteLine.DestroyMoveLine();
         _hoverTile = null;
         return;
     }
     _hoverTile = MapTile.GetMapTileFromUi(args.HoverTileUi);
     UpdateMovementUi();
 }
예제 #4
0
        private void RefreshArc(object sender, MouseHoverTile.OnHoverTileChangedArgs args)
        {
            if (args.HoverTileUi == null)
            {
                Object.Destroy(_arcTarget);
                MapTile.UnhighlightAllTiles();
                Unit.ActiveUnit.selectedMapTile = null;
                return;
            }

            if (Vector3.Distance(args.HoverTileUi.transform.position,
                                 Unit.ActiveUnit.GetCurrentMapTile().UiTile.transform.position) > _throwRange)
            {
                return;
            }

            Unit.ActiveUnit.selectedMapTile = MapTile.GetMapTileFromUi(args.HoverTileUi);
            Object.Destroy(_arcTarget);
            MapTile.UnhighlightAllTiles();
            Unit.ActiveUnit.LookAtGameObject(args.HoverTileUi);
            _arcTarget = new GameObject {
                name = "ThrowTarget"
            };
            var lineRenderer = _arcTarget.AddComponent <LineRenderer>();

            lineRenderer.positionCount = 16;
            var startPos = Unit.ActiveUnit.transform.position;

            startPos.y += 0.9F;
            lineRenderer.SetPositions(CalculateArcArray(startPos, args.HoverTileUi.transform.position));
            lineRenderer.useWorldSpace = false;
            lineRenderer.startColor    = new Color32(121, 187, 191, 200);
            lineRenderer.endColor      = new Color32(121, 187, 191, 200);
            lineRenderer.material      = new Material(Shader.Find("Legacy Shaders/Particles/Alpha Blended Premultiply"));
            lineRenderer.startWidth    = 0.05F;
            lineRenderer.endWidth      = 0.05F;
            var areaOfEffectTiles = FindAOETiles(args.HoverTileUi, _blastAreaOfEffect, _shrapnelAreaOfEffect);

            MapTile.HighlightMultipleTiles(areaOfEffectTiles.Item1, _blastColor);
            MapTile.HighlightMultipleTiles(areaOfEffectTiles.Item2, _shrapnelColor);
        }
예제 #5
0
        private void RefreshCone(object sender, MouseHoverTile.OnHoverTileChangedArgs args)
        {
            Object.Destroy(_coneTarget);
            MapTile.UnhighlightAllTiles();
            if (args.HoverTileUi == null)
            {
                return;
            }

            Unit.ActiveUnit.LookAtGameObject(args.HoverTileUi);
            Unit.ActiveUnit.selectedMapTile = MapTile.GetMapTileFromUi(args.HoverTileUi);
            var conePos = Unit.ActiveUnit.transform.position;
            var coneRot = Unit.ActiveUnit.transform.rotation;

            conePos.y  += 0.1F;
            _coneTarget = new GameObject {
                name = "ConeTarget"
            };
            _coneTarget.transform.position = conePos;
            _coneTarget.transform.rotation = coneRot;
            DrawCone(13, 90);
            MapTile.HighlightMultipleTiles(FindTilesInCone(), Color.white);
        }