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); } } } }
public BattleFieldTileInfo(BulletBehaviourInfoClassOnBattleFieldClass parent, BattleFieldAttackTileClass tile) { Parent = parent; Tile = tile; }
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); } }