コード例 #1
0
        public bool IsTargeted(Loc tile, TileAlignment tileAlignment)
        {
            if (!Collision.InBounds(ZoneManager.Instance.CurrentMap.Width, ZoneManager.Instance.CurrentMap.Height, tile))
            {
                return(false);
            }

            if (tileAlignment == TileAlignment.None)
            {
                return(false);
            }
            if (tileAlignment == TileAlignment.Any)
            {
                return(true);
            }

            uint mobility = 0;

            mobility |= (1U << (int)TerrainData.Mobility.Lava);
            mobility |= (1U << (int)TerrainData.Mobility.Water);
            mobility |= (1U << (int)TerrainData.Mobility.Abyss);
            if (ZoneManager.Instance.CurrentMap.TileBlocked(tile, mobility))
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
コード例 #2
0
    IEnumerator ReturnToInitialAlignment()
    {
        yield return(new WaitForSeconds(10));

        tileAlignment = initialAlignment;
        SetColour(initialMaterialColour);
    }
コード例 #3
0
 public void ChangeAlignment(Color c, TileAlignment _t)
 {
     StopCoroutine(ReturnToInitialAlignment());
     SetColour(c, false);
     tileAlignment = _t;
     StartCoroutine(ReturnToInitialAlignment());
 }
コード例 #4
0
ファイル: Hitbox.cs プロジェクト: Parakoopa/RogueEssence
 public StaticHitbox(Character user, Alignment targetAlignments, bool hitTiles, TileAlignment burstTiles, Loc origin, FiniteEmitter tileEmitter, FiniteEmitter emitter, int delay)
     : base(user, origin * GraphicsManager.TileSize, tileEmitter, delay)
 {
     TargetAlignments = targetAlignments;
     HitTiles         = hitTiles;
     BurstTiles       = burstTiles;
     Origin           = origin;
     Emitter          = (FiniteEmitter)emitter.Clone();
     Emitter.SetupEmit(MapLoc, user.MapLoc, user.CharDir);
 }
コード例 #5
0
ファイル: Hitbox.cs プロジェクト: Parakoopa/RogueEssence
 public CircleSquareHitbox(Character user, Alignment targetAlignments, bool hitTiles, TileAlignment burstTiles, Loc origin, FiniteEmitter tileEmitter,
                           CircleSquareEmitter emitter, int maxRadius, int speed, int delay, AreaLimit hitArea, Dir8 dir)
     : base(user, origin * GraphicsManager.TileSize, tileEmitter, delay)
 {
     TargetAlignments = targetAlignments;
     HitTiles         = hitTiles;
     BurstTiles       = burstTiles;
     Origin           = origin;
     MaxRadius        = maxRadius;
     Speed            = (speed > 0) ? speed : Math.Max(1, (int)Math.Ceiling(MaxRadius * 1.4142136 * GraphicsManager.MAX_FPS));
     HitArea          = hitArea;
     Dir     = dir;
     Emitter = (CircleSquareEmitter)emitter.Clone();
     Emitter.SetupEmit(MapLoc, user.CharDir, HitArea, MaxRadius * GraphicsManager.TileSize + GraphicsManager.TileSize / 2, Speed * GraphicsManager.TileSize);
 }
コード例 #6
0
 public TileText(
     string text,
     int fontSize,
     TileSize backgroundSize,
     Color backgroundColor,
     TileAlignment alignment,
     TilePosition position,
     int marginHorizontal,
     int marginVertical,
     bool visible)
 {
     Text             = text;
     FontSize         = fontSize;
     BackgroundSize   = backgroundSize;
     BackgroundColor  = backgroundColor;
     Alignment        = alignment;
     Position         = position;
     MarginHorizontal = marginHorizontal;
     MarginVertical   = marginVertical;
     Visible          = visible;
 }
コード例 #7
0
 public TileIcon(
     string name,
     TileSize backgroundSize,
     Color backgroundColor,
     string folder,
     int iconSize,
     TileAlignment alignment,
     TilePosition position,
     int marginHorizontal,
     int marginVertical,
     bool visible)
 {
     Name             = name;
     BackgroundSize   = backgroundSize;
     BackgroundColor  = backgroundColor;
     Folder           = folder;
     Size             = iconSize;
     Alignment        = alignment;
     Position         = position;
     MarginHorizontal = marginHorizontal;
     MarginVertical   = marginVertical;
     Visible          = visible;
 }
コード例 #8
0
ファイル: StatusBarTile.cs プロジェクト: vorov2/slot
 public StatusBarTile(TileAlignment alignment)
 {
     Alignment = alignment;
 }
コード例 #9
0
    private void OnGUI()
    {
        if (!initiated)
        {
            Init();
        }
        DrawSeparator(1, 5.0f);

        GUI.enabled = _Textures.Count > 1 && _Textures.FindAll((tex) => tex != null).Count > 1;
        if (GUILayout.Button("Execute!"))
        {
            // Clear Null and Duplicated
            EditorGUIUtility.AddCursorRect(position, MouseCursor.Orbit);
            _Textures.RemoveAll((txm) => txm == null);
            Execute();
        }
        GUI.enabled = true;

        DrawSeparator(1, 5.0f);
        var allowDup = EditorGUILayout.Toggle("Allow Duplicates", AllowDuplicates);

        if (AllowDuplicates != allowDup && !(AllowDuplicates = allowDup))
        {
            _Textures = _Textures.Distinct().ToList();
        }

        DrawSeparator(1, 5.0f);
        _TileSize   = (TileSize)EditorGUILayout.EnumPopup("Tile Size", _TileSize);
        GUI.enabled = _TileSize != TileSize.Auto;

        EditorGUILayout.BeginHorizontal();
        var new_Scale = EditorGUILayout.Vector2IntField(new GUIContent("", "Scale in X:With Y:Height"), g_Scale);

        KeepRatio = EditorGUILayout.Toggle(KeepRatio, GUILayout.Width(15));
        EditorGUILayout.EndHorizontal();

        g_Scale = (KeepRatio) ? new Vector2Int(Mathf.Max(1, new_Scale.x + (new_Scale.y - g_Scale.y)), Mathf.Max(1, new_Scale.y + (new_Scale.x - g_Scale.x))) : new Vector2Int(Mathf.Max(1, new_Scale.x), Mathf.Max(1, new_Scale.y));

        GUI.enabled = true;

        DrawSeparator(1, 5.0f);
        _TileAlignment = (TileAlignment)EditorGUILayout.EnumPopup("Tile Alignment", _TileAlignment);
        GUI.enabled    = _TileAlignment == TileAlignment.CustomGrid;
        if (_TileAlignment == TileAlignment.Vertically)
        {
            g_Columns = 1;
        }
        if (_TileAlignment == TileAlignment.Horizontally)
        {
            g_Columns = _Textures.Count;
        }
        g_Columns   = Mathf.Max(EditorGUILayout.IntField("Columns", g_Columns), 1);
        GUI.enabled = false;
        EditorGUILayout.IntField("Rows (Auto)", g_Rows);
        GUI.enabled = true;

        DrawSeparator(1, 5.0f);
        var foldRect = GUILayoutUtility.GetRect(new GUIContent("Texture 2D List"), EditorStyles.foldout);

        if (foldRect.Contains(Event.current.mousePosition))
        {
            if (Event.current.type == EventType.DragUpdated)
            {
                DragAndDrop.visualMode = DragAndDropVisualMode.Copy;
                Event.current.Use();
            }
            else if (Event.current.type == EventType.DragPerform)
            {
                for (int i = 0; i < DragAndDrop.objectReferences.Length; i++)
                {
                    var obj = DragAndDrop.objectReferences[i] as Texture2D;
                    if (obj != null && (AllowDuplicates || !_Textures.Contains(obj)))
                    {
                        var idx = _Textures.IndexOf(null);
                        if (idx < 0)
                        {
                            _Textures.Add(obj);
                        }
                        else
                        {
                            _Textures[idx] = obj;
                        }
                    }
                }
                Event.current.Use();
            }
        }

        if (TexturesFoldout = EditorGUI.Foldout(foldRect, TexturesFoldout, "Texture 2D List"))
        {
            EditorGUILayout.BeginHorizontal();
            GUILayout.Space(15);
            int newCount = Mathf.Min(Mathf.Max(0, EditorGUILayout.IntField("Count", _Textures.Count)), 100);
            if (GUILayout.Button("C", EditorStyles.miniButton, GUILayout.Width(20)))
            {
                _Textures.Clear(); newCount = 0;
            }
            EditorGUILayout.EndHorizontal();

            DrawSeparator(1, 0.0f);
            scrollPos = EditorGUILayout.BeginScrollView(scrollPos);

            while (newCount < _Textures.Count)
            {
                _Textures.RemoveAt(_Textures.Count - 1);
            }
            while (newCount > _Textures.Count)
            {
                _Textures.Add(null);
            }

            for (int i = 0; i < _Textures.Count; i++)
            {
                EditorGUILayout.BeginHorizontal();
                GUILayout.Space(15);
                GUILayout.Label($"Item {i}", GUILayout.Width(50));

                bool move_up   = GUILayout.Button("\u2191", EditorStyles.miniButton, GUILayout.Width(15));
                bool move_down = GUILayout.Button("\u2193", EditorStyles.miniButton, GUILayout.Width(15));
                _Textures[i] = (Texture2D)EditorGUILayout.ObjectField(_Textures[i], typeof(Texture2D), false, GUILayout.MaxHeight(16));
                bool remove = GUILayout.Button("X", EditorStyles.miniButton, GUILayout.Width(20));
                EditorGUILayout.EndHorizontal();
                if (remove)
                {
                    if (_Textures[i] != null)
                    {
                        _Textures[i] = null;
                    }
                    else
                    {
                        _Textures.RemoveAt(i);
                    }
                    return;
                }

                if (move_up || move_down)
                {
                    int indexA = i;
                    int indexB = Mathf.Max(Mathf.Min(i + ((move_up) ? -1 : 1), _Textures.Count - 1), 0);

                    var tmp = _Textures[indexA];
                    _Textures[indexA] = _Textures[indexB];
                    _Textures[indexB] = tmp;
                }
            }
            EditorGUILayout.EndScrollView();
        }

        DrawSeparator(1, 5.0f);
        DrawNetwork();
        DrawSeparator(1, 5.0f);
    }
コード例 #10
0
 public void SetVariables()
 {
     column           = (int)transform.position.x + 1;
     row              = (int)transform.position.y + 1;
     initialAlignment = tileAlignment;
 }