Beispiel #1
0
 private void WriteInfo(BulletBehaviourInfoClassOnBattleFieldClass origin)
 {
     origin.Show = EditorGUILayout.Foldout(origin.Show, "Tiles");
     if (origin.Show)
     {
         foreach (BattleFieldTileInfo item in TilesInfo.Where(r => r.Parent == origin).ToList())
         {
             item.Show = EditorGUILayout.Foldout(item.Show, item.Tile.Pos.ToString());
             if (item.Show)
             {
                 ShowTileObject(ref item.Tile);
             }
         }
     }
 }
Beispiel #2
0
 public BattleFieldTileInfo(BulletBehaviourInfoClassOnBattleFieldClass parent, BattleFieldAttackTileClass tile)
 {
     Parent = parent;
     Tile   = tile;
 }
Beispiel #3
0
    public void DrawBattleTileAtk(BulletBehaviourInfoClassOnBattleFieldClass BattleTileTrajectory, Vector2Int horizontal, Vector2Int vertical)
    {
        bool showClose = true;

        BattleFieldTileInfo        bfti = null;
        BattleFieldAttackTileClass bfatc;

        for (int x = horizontal.x; x < horizontal.y; x++)
        {
            EditorGUILayout.BeginHorizontal();
            for (int y = vertical.x; y < vertical.y; y++)
            {
                //Debug.Log(x + "   " + y);

                bfatc = BattleTileTrajectory.BulletEffectTiles.Where(r => r.Pos == new Vector2Int(x, y)).FirstOrDefault();
                if (firstOpen && bfatc != null)
                {
                    bfti = new BattleFieldTileInfo(BattleTileTrajectory, bfatc);
                    TilesInfo.Add(bfti);
                }
                else
                {
                    bfti = TilesInfo.Where(r => r.Tile.Pos == new Vector2Int(x, y)).FirstOrDefault();
                }
                showClose = EditorGUILayout.ToggleLeft(x + "," + y, bfatc != null ? true : false, GUILayout.Width(40));

                if (showClose)
                {
                    if (bfatc == null)
                    {
                        if (TilesInfo.Count == 0)
                        {
                            bfatc = new BattleFieldAttackTileClass(new Vector2Int(x, y));
                        }
                        else
                        {
                            ScriptableObjectAttackEffect[] copyOfEffects = new ScriptableObjectAttackEffect[TilesInfo[TilesInfo.Count - 1].Tile.Effects.Count];
                            TilesInfo[TilesInfo.Count - 1].Tile.Effects.CopyTo(copyOfEffects);
                            bfatc = new BattleFieldAttackTileClass(new Vector2Int(x, y), TilesInfo[TilesInfo.Count - 1].Tile.HasEffect, copyOfEffects.ToList(),
                                                                   TilesInfo[TilesInfo.Count - 1].Tile.IsEffectOnTile,
                                                                   TilesInfo[TilesInfo.Count - 1].Tile.TileParticlesID, TilesInfo[TilesInfo.Count - 1].Tile.DurationOnTile);
                        }
                        bfti = new BattleFieldTileInfo(BattleTileTrajectory, bfatc);
                        BattleTileTrajectory.BulletEffectTiles.Add(bfatc);
                        TilesInfo.Add(bfti);
                    }
                }
                else if (!showClose && bfatc != null)
                {
                    TilesInfo.Remove(bfti);
                    BattleTileTrajectory.BulletEffectTiles.Remove(bfatc);
                }
            }
            EditorGUILayout.EndHorizontal();
        }

        if (TilesInfo.Count > 0)
        {
            WriteInfo(BattleTileTrajectory);
        }
    }