diff --git a/docs/CREDITS.md b/docs/CREDITS.md index 4def656..1fc5f0a 100644 --- a/docs/CREDITS.md +++ b/docs/CREDITS.md @@ -8,7 +8,8 @@ | 자산 | 작가 | 출처 | 라이선스 | 사용 위치 | | --- | --- | --- | --- | --- | -| 기본 32×32 도트 sprite pack | 프로젝트 내부 제작 | `Assets/MagicExamHall/Resources/Sprites` | 프로젝트 라이선스 | 시험장 배경, 플레이어, 설치물, 룬, 원소 문양 | +| 기본 32×32 도트 sprite pack | 프로젝트 내부 제작 | `Assets/MagicExamHall/Resources/Sprites` | 프로젝트 라이선스 | 시험장 배경, 설치물, 룬, 원소 문양 | +| Zelda-like tilesets and sprites (캐릭터 시트) | ArMM1998 | | CC0 | 플레이어 4방향 idle/walk/cast 프레임, 멘토 NPC 15종 (`scripts/import-character-pack.py`로 슬라이스·리컬러) | | Procedural fallback sprite | 프로젝트 내부 제작 | `PixelArtFactory.cs` | 프로젝트 라이선스 | PNG 누락 시 fallback | ## 사운드 @@ -22,7 +23,8 @@ | 자산 | 작가 | 출처 | 라이선스 | 사용 위치 | | --- | --- | --- | --- | --- | -| Unity 기본 Arial | — | Unity 번들 | — | HUD, 룬 라벨, 노트 | +| Galmuri11 / Galmuri14 (한글 비트맵 폰트) | Lee Minseo (quiple) | | SIL Open Font License 1.1 | HUD, 룬 라벨, 노트, 멘토 대사 등 모든 UI 텍스트 (`Resources/Fonts/`) | +| Unity 기본 Arial | — | Unity 번들 | — | Galmuri 로드 실패 시 fallback | ## 자산 추가 시 작성 규칙 diff --git a/docs/asset-licenses/fonts/Galmuri-LICENSE.txt b/docs/asset-licenses/fonts/Galmuri-LICENSE.txt new file mode 100644 index 0000000..ae34182 --- /dev/null +++ b/docs/asset-licenses/fonts/Galmuri-LICENSE.txt @@ -0,0 +1,93 @@ +Copyright (c) 2019–2025 Lee Minseo (quiple@quiple.dev) + +This font software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/docs/asset-licenses/fonts/README.md b/docs/asset-licenses/fonts/README.md new file mode 100644 index 0000000..f28d166 --- /dev/null +++ b/docs/asset-licenses/fonts/README.md @@ -0,0 +1,15 @@ +# Font Asset Notes + +추가일: 2026-06-13 + +## Galmuri (SIL Open Font License 1.1) + +| 파일 | 원본 | 작가 | 출처 | 라이선스 | +| --- | --- | --- | --- | --- | +| `Resources/Fonts/Galmuri11.ttf` | Galmuri11 v2.40.3 | Lee Minseo (quiple) | | SIL OFL 1.1 | +| `Resources/Fonts/Galmuri11-Bold.ttf` | Galmuri11 Bold | Lee Minseo (quiple) | 〃 | SIL OFL 1.1 | +| `Resources/Fonts/Galmuri14.ttf` | Galmuri14 | Lee Minseo (quiple) | 〃 | SIL OFL 1.1 | + +- 선정 사유: 게임 UI 전반의 한글 텍스트를 OS 폰트(Malgun Gothic) 의존 없이 모든 머신에서 동일하게 픽셀 단위로 또렷하게 렌더링하기 위함. 픽셀 아트 톤과도 맞는 비트맵 스타일. +- 로더: `ExamGameController.LoadGameFont`가 `Resources/Fonts/Galmuri11`을 우선 로드하고, 없으면 Malgun Gothic/Arial OS 폰트로 fallback. +- OFL 전문은 `Galmuri-LICENSE.txt` 참조. OFL은 폰트 번들·임베드를 허용하며, 폰트 파일 자체를 판매하지 않는 한 게임에 포함 가능. diff --git a/scripts/import-character-pack.py b/scripts/import-character-pack.py new file mode 100644 index 0000000..76ccee0 --- /dev/null +++ b/scripts/import-character-pack.py @@ -0,0 +1,133 @@ +#!/usr/bin/env python3 +"""'Zelda-like tilesets and sprites' (ArMM1998, CC0) 캐릭터 시트를 +Magic Exam Hall의 드롭인 규약 프레임으로 슬라이스·리컬러한다. + +원본: https://opengameart.org/content/zelda-like-tilesets-and-sprites (gfx_3.zip) +시트 배치: character.png 16x32 셀, 행 0=down 1=right 2=up 3=left, + 열 0-3 = 걷기 4프레임, x=80~127 = 팔 들어올리기 3프레임(시전용). + +산출: + Resources/Sprites/Player/ — idle/walk 방향별 + cast 공용 (PlayerSpriteLibrary 규약, PPU32) + Resources/Sprites/ — 멘토 15종 (PixelSpriteKind 이름, 무드별 포즈 + 로브색, PPU16) + +플레이어는 PlayerSpriteLibrary가 PPU32로, 멘토는 PixelArtFactory가 PPU16으로 로드하므로 +같은 1x2 월드 크기를 내려면 플레이어만 2배 업스케일한다. + +사용: python scripts/import-character-pack.py +""" + +import sys +from pathlib import Path + +from PIL import Image + +REPO = Path(__file__).resolve().parent.parent +SPRITES = REPO / "unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites" +PLAYER_OUT = SPRITES / "Player" + +CELL_W, CELL_H = 16, 32 +PLAYER_SCALE = 2 # 16x32 -> 32x64, PPU32 기준 1x2 유닛 +MENTOR_SCALE = 1 # 16x32 그대로, PPU16 기준 1x2 유닛 +ROW_BY_FACING = {"down": 0, "right": 1, "up": 2, "left": 3} +CAST_CELLS_X = (80, 96, 112) # 팔 들어올리기 3프레임 (down 행) + +# 플레이어 로브(파랑 계열) — ExamGameController의 기존 fallback robe 색과 동일 계열 +PLAYER_ROBE = (78, 148, 235) + +# MentorProfile.ForFloor의 로브 색 (0-1 -> 0-255) +MENTOR_ROBES = { + "Mentor": (133, 82, 219), # 1층 발착층 조교 (보라) + "MentorScholar": (46, 158, 184), # 2층 벽화 연구원 (청록) + "MentorGuide": (107, 179, 92), # 3층 다리 안내원 (초록) + "MentorWatcher": (179, 61, 71), # 4층 균열 감시자 (적색) + "MentorArchivist": (64, 92, 199), # 5층 성좌 기록관 (남색) +} + + +def is_shirt(pixel) -> bool: + r, g, b, a = pixel + return a > 0 and r > g + 28 and r > b + 28 + + +def recolor(frame: Image.Image, robe) -> Image.Image: + """셔츠(붉은 계열)만 로브 색으로 바꾸고 명암은 원본 비율을 유지한다.""" + out = frame.copy() + px = out.load() + rr, rg, rb = robe + for y in range(out.height): + for x in range(out.width): + p = px[x, y] + if is_shirt(p): + lum = max(p[0], 1) / 200.0 # 원본 빨강 밝기 -> 음영 비율 + lum = min(lum, 1.25) + px[x, y] = ( + min(int(rr * lum), 255), + min(int(rg * lum), 255), + min(int(rb * lum), 255), + p[3], + ) + return out + + +def cell(sheet: Image.Image, x: int, row: int) -> Image.Image: + return sheet.crop((x, row * CELL_H, x + CELL_W, (row + 1) * CELL_H)) + + +def save(frame: Image.Image, path: Path, scale: int) -> None: + path.parent.mkdir(parents=True, exist_ok=True) + frame.resize((frame.width * scale, frame.height * scale), Image.NEAREST).save(path) + + +def export_player(sheet: Image.Image) -> int: + count = 0 + for facing, row in ROW_BY_FACING.items(): + walk = [recolor(cell(sheet, i * CELL_W, row), PLAYER_ROBE) for i in range(4)] + for i, frame in enumerate(walk): + save(frame, PLAYER_OUT / f"walk_{facing}_{i}.png", PLAYER_SCALE) + count += 1 + for i, frame in enumerate((walk[0], walk[2])): + save(frame, PLAYER_OUT / f"idle_{facing}_{i}.png", PLAYER_SCALE) + count += 1 + + down = ROW_BY_FACING["down"] + cast = [recolor(cell(sheet, x, down), PLAYER_ROBE) for x in CAST_CELLS_X] + for i, frame in enumerate(cast): + save(frame, PLAYER_OUT / f"cast_charge_{i}.png", PLAYER_SCALE) + count += 1 + save(cast[2], PLAYER_OUT / "cast_release_0.png", PLAYER_SCALE) + save(recolor(cell(sheet, 0, down), PLAYER_ROBE), PLAYER_OUT / "cast_release_1.png", PLAYER_SCALE) + return count + 2 + + +def export_mentors(sheet: Image.Image) -> int: + """무드별 포즈: Neutral=정면 서기, Happy=팔 들어올리기, Frown=옆으로 돌아섬.""" + down, left = ROW_BY_FACING["down"], ROW_BY_FACING["left"] + poses = { + "Neutral": cell(sheet, 0, down), + "Happy": cell(sheet, CAST_CELLS_X[2], down), + "Frown": cell(sheet, 0, left), + } + count = 0 + for prefix, robe in MENTOR_ROBES.items(): + for mood, frame in poses.items(): + save(recolor(frame, robe), SPRITES / f"{prefix}{mood}.png", MENTOR_SCALE) + count += 1 + return count + + +def main() -> int: + if len(sys.argv) < 2: + print(__doc__) + return 1 + + sheet = Image.open(sys.argv[1]).convert("RGBA") + player = export_player(sheet) + mentors = export_mentors(sheet) + print(f"player frames: {player}, mentor overrides: {mentors}") + print(f"-> {PLAYER_OUT}") + print(f"-> {SPRITES} (mentors)") + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Editor/FloorScreenshotExporter.cs b/unity/MagicExamHall/Assets/MagicExamHall/Editor/FloorScreenshotExporter.cs index 3d1e67a..f924231 100644 --- a/unity/MagicExamHall/Assets/MagicExamHall/Editor/FloorScreenshotExporter.cs +++ b/unity/MagicExamHall/Assets/MagicExamHall/Editor/FloorScreenshotExporter.cs @@ -26,6 +26,181 @@ public static void Export() Export(output); } + /// + /// Captures every boot/menu screen (title, main menu, options, pause, codex, + /// discovery codex, ending report) for a full UI review pass. + /// + public static void ExportAllScreens() + { + var output = GetArgument("-floorScreenshotOutput"); + if (string.IsNullOrWhiteSpace(output)) + { + output = Path.GetFullPath(Path.Combine(Application.dataPath, "..", "..", "..", "outputs", "unity-all-screens")); + } + + Directory.CreateDirectory(output); + EditorSceneManager.OpenScene(ScenePath); + + var controller = UnityEngine.Object.FindFirstObjectByType(); + if (controller == null) + { + throw new InvalidOperationException("ExamGameController was not found in the scene."); + } + + if (controller.ActiveGoalCount == 0) + { + InvokePrivate(controller, "Awake"); + } + + var boot = UnityEngine.Object.FindFirstObjectByType(); + if (boot == null) + { + throw new InvalidOperationException("GameBootController was not found in the scene."); + } + + var camera = controller.mainCamera != null ? controller.mainCamera : Camera.main; + var canvas = controller.canvas; + if (camera == null || canvas == null) + { + throw new InvalidOperationException("No camera/canvas available for screen capture."); + } + + var pixelPerfect = PixelRenderSetup.ConfigureCamera(camera, ExamGameController.GameplayCameraOrthographicSize, camera.backgroundColor); + var wasEnabled = pixelPerfect != null && pixelPerfect.enabled; + if (pixelPerfect != null) + { + pixelPerfect.enabled = false; + } + + camera.transform.position = new Vector3(0f, 0f, -10f); + camera.orthographicSize = ExamGameController.GameplayCameraOrthographicSize; + var originalMode = canvas.renderMode; + var originalCamera = canvas.worldCamera; + var originalPlane = canvas.planeDistance; + canvas.renderMode = RenderMode.ScreenSpaceCamera; + canvas.worldCamera = camera; + canvas.planeDistance = 1f; + + void Shot(string name) + { + Canvas.ForceUpdateCanvases(); + Capture(camera, output, name); + } + + try + { + InvokePrivate(boot, "ShowTitle"); + Shot("screen_01_title.png"); + + boot.ShowMainMenuForTests(); + Shot("screen_02_main_menu.png"); + + InvokePrivate(boot, "ShowOptions", GameBootState.MainMenu); + Shot("screen_03_options.png"); + + boot.StartNewGameForTests(); + Shot("screen_04_gameplay_floor1.png"); + + boot.ShowPauseForTests(); + Shot("screen_05_pause.png"); + + boot.ResumeGameplayForTests(); + boot.ShowCodexForTests(); + Shot("screen_06_codex.png"); + + boot.ShowDiscoveryCodexForTests(); + Shot("screen_07_discovery_codex.png"); + + // Drive to the ending report: jump to the final floor, satisfy it, then + // advance (which shows the report immediately when already on the last floor). + boot.ResumeGameplayForTests(); + controller.LoadFloorForTests(controller.FloorCount - 1); + controller.CompleteCurrentFloorForTests(); + controller.AdvanceFloorForTests(); + Shot("screen_08_ending_report.png"); + } + finally + { + if (pixelPerfect != null) + { + pixelPerfect.enabled = wasEnabled; + } + canvas.renderMode = originalMode; + canvas.worldCamera = originalCamera; + canvas.planeDistance = originalPlane; + } + + Debug.Log($"All screens exported to {output}"); + } + + /// + /// Captures the boot/title screen (no StartNewGame) so the first thing a + /// player sees can be reviewed like the floor shots. + /// + public static void ExportTitle() + { + var output = GetArgument("-floorScreenshotOutput"); + if (string.IsNullOrWhiteSpace(output)) + { + output = Path.GetFullPath(Path.Combine(Application.dataPath, "..", "..", "..", "outputs", "unity-title-screen")); + } + + Directory.CreateDirectory(output); + EditorSceneManager.OpenScene(ScenePath); + + var controller = UnityEngine.Object.FindFirstObjectByType(); + if (controller == null) + { + throw new InvalidOperationException("ExamGameController was not found in the scene."); + } + + if (controller.ActiveGoalCount == 0) + { + InvokePrivate(controller, "Awake"); + } + + var camera = controller.mainCamera != null ? controller.mainCamera : Camera.main; + var canvas = controller.canvas; + if (camera == null || canvas == null) + { + throw new InvalidOperationException("No camera/canvas available for the title capture."); + } + + var pixelPerfect = PixelRenderSetup.ConfigureCamera(camera, ExamGameController.GameplayCameraOrthographicSize, camera.backgroundColor); + var wasEnabled = pixelPerfect != null && pixelPerfect.enabled; + if (pixelPerfect != null) + { + pixelPerfect.enabled = false; + } + + camera.transform.position = new Vector3(0f, 0f, -10f); + camera.orthographicSize = ExamGameController.GameplayCameraOrthographicSize; + var originalMode = canvas.renderMode; + var originalCamera = canvas.worldCamera; + var originalPlane = canvas.planeDistance; + canvas.renderMode = RenderMode.ScreenSpaceCamera; + canvas.worldCamera = camera; + canvas.planeDistance = 1f; + + try + { + Canvas.ForceUpdateCanvases(); + Capture(camera, output, "unity_title.png"); + } + finally + { + if (pixelPerfect != null) + { + pixelPerfect.enabled = wasEnabled; + } + canvas.renderMode = originalMode; + canvas.worldCamera = originalCamera; + canvas.planeDistance = originalPlane; + } + + Debug.Log($"Title screenshot exported to {output}"); + } + public static void Export(string output) { Directory.CreateDirectory(output); @@ -58,7 +233,18 @@ public static void Export(string output) var originalPlane = canvas.planeDistance; camera.transform.position = new Vector3(0f, 0f, -10f); - PixelRenderSetup.ConfigureCamera(camera, ExamGameController.GameplayCameraOrthographicSize, camera.backgroundColor); + var pixelPerfect = PixelRenderSetup.ConfigureCamera(camera, ExamGameController.GameplayCameraOrthographicSize, camera.backgroundColor); + // The ScreenSpaceCamera HUD canvas is rendered THROUGH this camera, so + // the pixel-perfect 632x356 windowbox would downscale every HUD glyph and + // smear small text. Disable it during capture to render the world and HUD + // at the full 1280x720 target; the in-game HUD (ScreenSpaceOverlay) is + // already crisp, so this makes the screenshot faithful to what players see. + var pixelPerfectWasEnabled = pixelPerfect != null && pixelPerfect.enabled; + if (pixelPerfect != null) + { + pixelPerfect.enabled = false; + } + camera.orthographicSize = ExamGameController.GameplayCameraOrthographicSize; canvas.renderMode = RenderMode.ScreenSpaceCamera; canvas.worldCamera = camera; canvas.planeDistance = 1f; @@ -68,6 +254,7 @@ public static void Export(string output) for (var floor = 0; floor < controller.FloorCount; floor++) { controller.LoadFloorForTests(floor); + DestroyStaleFloorRoots(floor + 1); InvokePrivate(controller, "UpdateHud"); Canvas.ForceUpdateCanvases(); Capture(camera, output, $"unity_floor_{floor + 1:00}.png"); @@ -75,6 +262,10 @@ public static void Export(string output) } finally { + if (pixelPerfect != null) + { + pixelPerfect.enabled = pixelPerfectWasEnabled; + } camera.transform.position = originalCameraPosition; camera.orthographic = originalOrthographic; camera.orthographicSize = originalOrthographicSize; @@ -86,12 +277,38 @@ public static void Export(string output) Debug.Log($"Floor screenshots exported to {output}"); } + /// + /// Object.Destroy is deferred outside play mode, so floor roots from + /// previously loaded floors linger and stack into the captures. Remove + /// every floor root except the one just loaded. + /// + private static void DestroyStaleFloorRoots(int currentFloorNumber) + { + var expectedPrefix = $"Floor {currentFloorNumber} "; + foreach (var root in UnityEngine.SceneManagement.SceneManager.GetActiveScene().GetRootGameObjects()) + { + if (root.name.StartsWith("Floor ", StringComparison.Ordinal) && + !root.name.StartsWith(expectedPrefix, StringComparison.Ordinal)) + { + UnityEngine.Object.DestroyImmediate(root); + } + } + } + private static void PrepareController(ExamGameController controller) { if (controller.ActiveGoalCount == 0) { InvokePrivate(controller, "Awake"); } + + // Leave the title screen before capturing so floor shots are not + // overlaid with the boot menu UI. + var boot = UnityEngine.Object.FindFirstObjectByType(); + if (boot != null && boot.StateForTests == GameBootState.Title) + { + boot.StartNewGameForTests(); + } } private static void Capture(Camera camera, string output, string fileName) diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Fonts.meta b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Fonts.meta new file mode 100644 index 0000000..1d0deed --- /dev/null +++ b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Fonts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3cf0a426e5f811b4394fc018ff80a521 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Fonts/Galmuri11-Bold.ttf b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Fonts/Galmuri11-Bold.ttf new file mode 100644 index 0000000..fd8cdf0 Binary files /dev/null and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Fonts/Galmuri11-Bold.ttf differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Fonts/Galmuri11-Bold.ttf.meta b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Fonts/Galmuri11-Bold.ttf.meta new file mode 100644 index 0000000..a8ba7d0 --- /dev/null +++ b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Fonts/Galmuri11-Bold.ttf.meta @@ -0,0 +1,21 @@ +fileFormatVersion: 2 +guid: e61fc15efaf3058458b87aef2c92f7d2 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Galmuri11 + fallbackFontReferences: [] + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Fonts/Galmuri11.ttf b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Fonts/Galmuri11.ttf new file mode 100644 index 0000000..838b431 Binary files /dev/null and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Fonts/Galmuri11.ttf differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Fonts/Galmuri11.ttf.meta b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Fonts/Galmuri11.ttf.meta new file mode 100644 index 0000000..48212ec --- /dev/null +++ b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Fonts/Galmuri11.ttf.meta @@ -0,0 +1,21 @@ +fileFormatVersion: 2 +guid: 2c3526f7878b0c049842460cf7878411 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Galmuri11 + fallbackFontReferences: [] + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Fonts/Galmuri14.ttf b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Fonts/Galmuri14.ttf new file mode 100644 index 0000000..676cae6 Binary files /dev/null and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Fonts/Galmuri14.ttf differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Fonts/Galmuri14.ttf.meta b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Fonts/Galmuri14.ttf.meta new file mode 100644 index 0000000..a37663c --- /dev/null +++ b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Fonts/Galmuri14.ttf.meta @@ -0,0 +1,21 @@ +fileFormatVersion: 2 +guid: b51fcd6d86af7bb4f852f023079bfb03 +TrueTypeFontImporter: + externalObjects: {} + serializedVersion: 4 + fontSize: 16 + forceTextureCase: -2 + characterSpacing: 0 + characterPadding: 1 + includeFontData: 1 + fontNames: + - Galmuri14 + fallbackFontReferences: [] + customCharacters: + fontRenderingMode: 0 + ascentCalculationMode: 1 + useLegacyBoundsCalculation: 0 + shouldRoundAdvanceValue: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorArchivistFrown.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorArchivistFrown.png new file mode 100644 index 0000000..6a8853d Binary files /dev/null and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorArchivistFrown.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorArchivistFrown.png.meta b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorArchivistFrown.png.meta new file mode 100644 index 0000000..10fa790 --- /dev/null +++ b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorArchivistFrown.png.meta @@ -0,0 +1,130 @@ +fileFormatVersion: 2 +guid: 5a1a77fb1c2ebbd4d8feb519f1e699e1 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorArchivistHappy.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorArchivistHappy.png new file mode 100644 index 0000000..13c33a9 Binary files /dev/null and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorArchivistHappy.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorArchivistHappy.png.meta b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorArchivistHappy.png.meta new file mode 100644 index 0000000..d69f47b --- /dev/null +++ b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorArchivistHappy.png.meta @@ -0,0 +1,130 @@ +fileFormatVersion: 2 +guid: dd09b59ba6c930542a19f375ce4f9263 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorArchivistNeutral.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorArchivistNeutral.png new file mode 100644 index 0000000..874b73a Binary files /dev/null and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorArchivistNeutral.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorArchivistNeutral.png.meta b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorArchivistNeutral.png.meta new file mode 100644 index 0000000..a817eb5 --- /dev/null +++ b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorArchivistNeutral.png.meta @@ -0,0 +1,130 @@ +fileFormatVersion: 2 +guid: 92c87f8be51834742b92336f6969b614 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorFrown.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorFrown.png new file mode 100644 index 0000000..62780ad Binary files /dev/null and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorFrown.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorFrown.png.meta b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorFrown.png.meta new file mode 100644 index 0000000..adf3eaa --- /dev/null +++ b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorFrown.png.meta @@ -0,0 +1,130 @@ +fileFormatVersion: 2 +guid: 36a26bfaa77781d469b72612a4b2bc75 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorGuideFrown.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorGuideFrown.png new file mode 100644 index 0000000..bd9ce02 Binary files /dev/null and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorGuideFrown.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorGuideFrown.png.meta b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorGuideFrown.png.meta new file mode 100644 index 0000000..bb45649 --- /dev/null +++ b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorGuideFrown.png.meta @@ -0,0 +1,130 @@ +fileFormatVersion: 2 +guid: 9082600971df1f244923ae67e06a79d8 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorGuideHappy.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorGuideHappy.png new file mode 100644 index 0000000..576e1ca Binary files /dev/null and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorGuideHappy.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorGuideHappy.png.meta b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorGuideHappy.png.meta new file mode 100644 index 0000000..9b7448f --- /dev/null +++ b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorGuideHappy.png.meta @@ -0,0 +1,130 @@ +fileFormatVersion: 2 +guid: e80b4a9786c758243abd5819f011ce28 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorGuideNeutral.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorGuideNeutral.png new file mode 100644 index 0000000..0caeabd Binary files /dev/null and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorGuideNeutral.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorGuideNeutral.png.meta b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorGuideNeutral.png.meta new file mode 100644 index 0000000..25309f1 --- /dev/null +++ b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorGuideNeutral.png.meta @@ -0,0 +1,130 @@ +fileFormatVersion: 2 +guid: 83026e676a7918d4f9d16e58703cb51d +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorHappy.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorHappy.png new file mode 100644 index 0000000..0ac12bc Binary files /dev/null and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorHappy.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorHappy.png.meta b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorHappy.png.meta new file mode 100644 index 0000000..09ba1bd --- /dev/null +++ b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorHappy.png.meta @@ -0,0 +1,130 @@ +fileFormatVersion: 2 +guid: e53049b4a28e89b49807a07806347ab4 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorNeutral.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorNeutral.png new file mode 100644 index 0000000..61e8128 Binary files /dev/null and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorNeutral.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorNeutral.png.meta b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorNeutral.png.meta new file mode 100644 index 0000000..aa194f1 --- /dev/null +++ b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorNeutral.png.meta @@ -0,0 +1,130 @@ +fileFormatVersion: 2 +guid: e523ff11ab03e884e9adfd22a9518ff3 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorScholarFrown.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorScholarFrown.png new file mode 100644 index 0000000..cee7d7c Binary files /dev/null and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorScholarFrown.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorScholarFrown.png.meta b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorScholarFrown.png.meta new file mode 100644 index 0000000..86e54df --- /dev/null +++ b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorScholarFrown.png.meta @@ -0,0 +1,130 @@ +fileFormatVersion: 2 +guid: fa0ab91a50235854a85ce3fafcdbd0d4 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorScholarHappy.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorScholarHappy.png new file mode 100644 index 0000000..be53d2d Binary files /dev/null and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorScholarHappy.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorScholarHappy.png.meta b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorScholarHappy.png.meta new file mode 100644 index 0000000..3f3d682 --- /dev/null +++ b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorScholarHappy.png.meta @@ -0,0 +1,130 @@ +fileFormatVersion: 2 +guid: 243bb53baeec30743868e2f87ee883c8 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorScholarNeutral.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorScholarNeutral.png new file mode 100644 index 0000000..ee85cf1 Binary files /dev/null and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorScholarNeutral.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorScholarNeutral.png.meta b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorScholarNeutral.png.meta new file mode 100644 index 0000000..961fc4f --- /dev/null +++ b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorScholarNeutral.png.meta @@ -0,0 +1,130 @@ +fileFormatVersion: 2 +guid: 1c94daaa5ac277845b1c631047b057c7 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorWatcherFrown.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorWatcherFrown.png new file mode 100644 index 0000000..e9539df Binary files /dev/null and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorWatcherFrown.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorWatcherFrown.png.meta b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorWatcherFrown.png.meta new file mode 100644 index 0000000..c5aada0 --- /dev/null +++ b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorWatcherFrown.png.meta @@ -0,0 +1,130 @@ +fileFormatVersion: 2 +guid: f958b2ac688be864ebb501c2111a718d +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorWatcherHappy.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorWatcherHappy.png new file mode 100644 index 0000000..84e6641 Binary files /dev/null and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorWatcherHappy.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorWatcherHappy.png.meta b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorWatcherHappy.png.meta new file mode 100644 index 0000000..3f34807 --- /dev/null +++ b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorWatcherHappy.png.meta @@ -0,0 +1,130 @@ +fileFormatVersion: 2 +guid: 8af81fb9c0418a94b95a767d89d87034 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorWatcherNeutral.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorWatcherNeutral.png new file mode 100644 index 0000000..90d6360 Binary files /dev/null and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorWatcherNeutral.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorWatcherNeutral.png.meta b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorWatcherNeutral.png.meta new file mode 100644 index 0000000..5fc6bb4 --- /dev/null +++ b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/MentorWatcherNeutral.png.meta @@ -0,0 +1,130 @@ +fileFormatVersion: 2 +guid: 64650e64b9ed44840a6940eb2c81d6e8 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 1 + aniso: 1 + mipBias: 0 + wrapU: 0 + wrapV: 0 + wrapW: 0 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/cast_charge_0.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/cast_charge_0.png index 05d231c..56f8aa8 100644 Binary files a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/cast_charge_0.png and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/cast_charge_0.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/cast_charge_1.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/cast_charge_1.png index 49a3e2e..76b9085 100644 Binary files a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/cast_charge_1.png and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/cast_charge_1.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/cast_charge_2.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/cast_charge_2.png index 4cd63d0..4a6b2c3 100644 Binary files a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/cast_charge_2.png and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/cast_charge_2.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/cast_release_0.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/cast_release_0.png index ef754b5..4a6b2c3 100644 Binary files a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/cast_release_0.png and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/cast_release_0.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/cast_release_1.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/cast_release_1.png index 6fa66b0..a2bc134 100644 Binary files a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/cast_release_1.png and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/cast_release_1.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/idle_down_0.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/idle_down_0.png index 7505572..a2bc134 100644 Binary files a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/idle_down_0.png and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/idle_down_0.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/idle_down_1.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/idle_down_1.png index 2b55b06..a2bc134 100644 Binary files a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/idle_down_1.png and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/idle_down_1.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/idle_left_0.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/idle_left_0.png index 9b8717c..56e9fa8 100644 Binary files a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/idle_left_0.png and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/idle_left_0.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/idle_left_1.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/idle_left_1.png index 7db6cae..56e9fa8 100644 Binary files a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/idle_left_1.png and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/idle_left_1.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/idle_right_0.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/idle_right_0.png index a122822..1a6b542 100644 Binary files a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/idle_right_0.png and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/idle_right_0.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/idle_right_1.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/idle_right_1.png index e1dadb0..1a6b542 100644 Binary files a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/idle_right_1.png and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/idle_right_1.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/idle_up_0.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/idle_up_0.png index 5926866..b8dd632 100644 Binary files a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/idle_up_0.png and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/idle_up_0.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/idle_up_1.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/idle_up_1.png index fd10679..b8dd632 100644 Binary files a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/idle_up_1.png and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/idle_up_1.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_down_0.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_down_0.png index 7505572..a2bc134 100644 Binary files a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_down_0.png and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_down_0.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_down_1.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_down_1.png index e7b9ec5..9d6c337 100644 Binary files a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_down_1.png and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_down_1.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_down_2.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_down_2.png index 7505572..a2bc134 100644 Binary files a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_down_2.png and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_down_2.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_down_3.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_down_3.png index 33517eb..0fd73de 100644 Binary files a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_down_3.png and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_down_3.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_left_0.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_left_0.png index 9b8717c..56e9fa8 100644 Binary files a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_left_0.png and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_left_0.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_left_1.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_left_1.png index 634b249..a13bc60 100644 Binary files a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_left_1.png and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_left_1.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_left_2.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_left_2.png index 9b8717c..56e9fa8 100644 Binary files a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_left_2.png and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_left_2.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_left_3.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_left_3.png index 00e7379..dcca10b 100644 Binary files a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_left_3.png and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_left_3.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_right_0.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_right_0.png index a122822..1a6b542 100644 Binary files a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_right_0.png and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_right_0.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_right_1.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_right_1.png index ee03b77..e7eda12 100644 Binary files a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_right_1.png and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_right_1.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_right_2.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_right_2.png index a122822..1a6b542 100644 Binary files a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_right_2.png and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_right_2.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_right_3.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_right_3.png index 1acc18b..e22eea1 100644 Binary files a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_right_3.png and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_right_3.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_up_0.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_up_0.png index 5926866..b8dd632 100644 Binary files a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_up_0.png and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_up_0.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_up_1.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_up_1.png index c097db2..3138789 100644 Binary files a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_up_1.png and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_up_1.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_up_2.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_up_2.png index 5926866..b8dd632 100644 Binary files a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_up_2.png and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_up_2.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_up_3.png b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_up_3.png index ec14c12..970c082 100644 Binary files a/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_up_3.png and b/unity/MagicExamHall/Assets/MagicExamHall/Resources/Sprites/Player/walk_up_3.png differ diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Scripts/Runtime/ExamGameController.cs b/unity/MagicExamHall/Assets/MagicExamHall/Scripts/Runtime/ExamGameController.cs index 369f438..7398871 100644 --- a/unity/MagicExamHall/Assets/MagicExamHall/Scripts/Runtime/ExamGameController.cs +++ b/unity/MagicExamHall/Assets/MagicExamHall/Scripts/Runtime/ExamGameController.cs @@ -394,11 +394,26 @@ private IEnumerable BaseIntentGoalsForCurrentFloor() return current == null ? Enumerable.Empty() : new[] { current }; } + /// + /// Bundled Galmuri (SIL OFL 1.1) keeps Korean text crisp and identical on + /// every machine; the OS font chain is only a fallback for stripped builds. + /// + private static Font LoadGameFont() + { + var bundled = Resources.Load("Fonts/Galmuri11"); + if (bundled != null) + { + return bundled; + } + + return Font.CreateDynamicFontFromOSFont(new[] { "Malgun Gothic", "Arial" }, 18); + } + private void Awake() { sessionId = $"unity-{DateTime.UtcNow:yyyyMMddHHmmss}-{Guid.NewGuid().ToString("N")[..6]}"; logger = new ExamLogger(sessionId); - uiFont = Font.CreateDynamicFontFromOSFont(new[] { "Malgun Gothic", "Arial" }, 18); + uiFont = LoadGameFont(); floorController = new FloorController(); magicNote = new MagicNote(); endingReport = new EndingReport(); @@ -1032,6 +1047,10 @@ private void ResolveSceneReferences() } canvas.renderMode = RenderMode.ScreenSpaceOverlay; + // HUD must outrank every world-space canvas (goal labels 42, buffs 76) + // even when the canvas is temporarily switched to ScreenSpaceCamera + // (pause/screenshot capture paths). + canvas.sortingOrder = 100; var scaler = canvas.GetComponent() ?? canvas.gameObject.AddComponent(); scaler.uiScaleMode = CanvasScaler.ScaleMode.ScaleWithScreenSize; scaler.referenceResolution = new Vector2(1280, 720); @@ -1111,8 +1130,14 @@ private void BuildUi() BuildQuestScrollUi(); UpdateResultPanelLayout(); - reportPanel = CreatePanel("Ending Report", canvas.transform, Vector2.zero, new Vector2(760, 520), Anchor.Center, new Color(0.035f, 0.045f, 0.065f, 0.96f)); - reportText = CreateText("Report Text", reportPanel, "", 17, FontStyle.Normal, new Vector2(28, -28), new Vector2(704, 464), Anchor.TopLeft); + // Full-screen opaque backdrop so the finished floor does not show around + // the report, with a framed card holding the summary text. + reportPanel = CreatePanel("Ending Report", canvas.transform, Vector2.zero, new Vector2(1280, 720), Anchor.Center, new Color(0.018f, 0.026f, 0.042f, 0.99f)); + var reportCard = CreateImage("Ending Report Card", reportPanel, Vector2.zero, new Vector2(908, 600), Anchor.Center, new Color(0.05f, 0.065f, 0.098f, 1f)); + reportCard.raycastTarget = false; + AddPanelBorder(reportCard.rectTransform, new Color(1f, 0.82f, 0.38f, 0.55f), 2f); + reportText = CreateText("Report Text", reportPanel, "", 18, FontStyle.Normal, new Vector2(0f, 0f), new Vector2(844, 540), Anchor.Center); + reportText.alignment = TextAnchor.UpperLeft; reportPanel.gameObject.SetActive(false); toastPanel = CreatePanel("Action Toast", canvas.transform, new Vector2(-20, -20), new Vector2(500, 54), Anchor.TopRight, new Color(0.018f, 0.024f, 0.038f, 0.94f)); @@ -2402,7 +2427,7 @@ private void BuildFloorArt(FloorDefinition floor) { body.transform.localScale *= 1.45f; } - goal.label = CreateGoalLabel(goal, floorRoot.transform); + goal.label = CreateGoalLabel(goal, floorRoot.transform, goalIndex); RegisterSpriteAccent(body, SpriteAccentAnimationKind.RuneIdle, goalIndex * 0.53f); goalIndex++; } @@ -5834,10 +5859,11 @@ private SealView CreateSealView(CompiledSeal seal) textRect.offsetMax = Vector2.zero; var text = textObject.AddComponent(); text.font = uiFont; - text.fontSize = 26; + text.fontSize = 22; text.alignment = TextAnchor.MiddleCenter; text.color = Color.white; text.text = seal.Label; + AddTextOutline(text); var defaultFallbackAt = string.IsNullOrWhiteSpace(seal.customShapeId) ? seal.createdAt + DefaultSealFallbackDelaySeconds : float.PositiveInfinity; @@ -6165,14 +6191,19 @@ private static void ApplySpriteOverride(GameObject body, Sprite spriteOverride) } } - private Text CreateGoalLabel(WorldStateGoal goal, Transform parent) + private Text CreateGoalLabel(WorldStateGoal goal, Transform parent, int goalIndex) { var stageLabel = floorController?.Current.number == 3; var visualRequirement = floorController != null && floorController.Current.number <= 3; var labelSize = stageLabel ? new Vector2(210f, 66f) : new Vector2(220f, 88f); var canvasObject = new GameObject($"{goal.title} Goal Label"); canvasObject.transform.SetParent(parent, false); - canvasObject.transform.position = goal.position + (stageLabel ? new Vector2(0f, 0.78f) : new Vector2(0f, -0.86f)); + // Goals can sit 2.7 world units apart; alternating above/below keeps + // neighbouring labels from stacking on the same row. + var labelOffset = stageLabel + ? new Vector2(0f, 0.78f) + : goalIndex % 2 == 0 ? new Vector2(0f, -0.86f) : new Vector2(0f, 0.98f); + canvasObject.transform.position = goal.position + labelOffset; var worldCanvas = canvasObject.AddComponent(); worldCanvas.renderMode = RenderMode.WorldSpace; worldCanvas.overrideSorting = true; @@ -6180,7 +6211,7 @@ private Text CreateGoalLabel(WorldStateGoal goal, Transform parent) canvasObject.AddComponent(); var rect = canvasObject.GetComponent() ?? canvasObject.AddComponent(); rect.sizeDelta = labelSize; - canvasObject.transform.localScale = Vector3.one * (stageLabel ? 0.014f : 0.016f); + canvasObject.transform.localScale = Vector3.one * (stageLabel ? 0.011f : 0.012f); var backgroundAlpha = visualRequirement ? 0.16f : 0.86f; var background = CreateImage("Goal Label Background", canvasObject.transform, Vector2.zero, labelSize, Anchor.Center, new Color(0.02f, 0.025f, 0.04f, backgroundAlpha)); @@ -6199,16 +6230,17 @@ private Text CreateGoalLabel(WorldStateGoal goal, Transform parent) textPosition, new Vector2(textSize.x - 18f, stageLabel ? 30f : 34f), Anchor.Center, - new Color(0.006f, 0.010f, 0.018f, stageLabel ? 0.54f : 0.58f)); + new Color(0.006f, 0.010f, 0.018f, stageLabel ? 0.70f : 0.74f)); titleBacking.raycastTarget = false; } - var text = CreateText("Goal Label Text", canvasObject.transform, visualRequirement ? goal.title : goal.OpenLabel, stageLabel ? 22 : 24, FontStyle.Bold, textPosition, textSize, Anchor.Center); + var text = CreateText("Goal Label Text", canvasObject.transform, visualRequirement ? goal.title : goal.OpenLabel, 22, FontStyle.Bold, textPosition, textSize, Anchor.Center); text.alignment = TextAnchor.MiddleCenter; - text.color = Color.Lerp(goal.color, Color.white, 0.45f); + text.color = Color.Lerp(goal.color, Color.white, 0.62f); text.horizontalOverflow = HorizontalWrapMode.Overflow; text.lineSpacing = 0.88f; text.raycastTarget = false; + AddTextOutline(text); if (visualRequirement) { CreateGoalRequirementIconRow(goal, canvasObject.transform, stageLabel); @@ -6217,6 +6249,17 @@ private Text CreateGoalLabel(WorldStateGoal goal, Transform parent) return text; } + /// + /// World-space labels float over arbitrary scenery; a 1px dark outline keeps + /// them readable without forcing an opaque backing panel (GAME_DESIGN section 11). + /// + private static void AddTextOutline(Text text) + { + var outline = text.gameObject.AddComponent(); + outline.effectColor = new Color(0f, 0f, 0f, 0.85f); + outline.effectDistance = new Vector2(1f, -1f); + } + private void CreateGoalRequirementIconRow(WorldStateGoal goal, Transform parent, bool stageLabel) { var glyphs = BuildGoalRequirementGlyphs(goal); diff --git a/unity/MagicExamHall/Assets/MagicExamHall/Scripts/Runtime/GameBootController.cs b/unity/MagicExamHall/Assets/MagicExamHall/Scripts/Runtime/GameBootController.cs index 46b1732..0ae2953 100644 --- a/unity/MagicExamHall/Assets/MagicExamHall/Scripts/Runtime/GameBootController.cs +++ b/unity/MagicExamHall/Assets/MagicExamHall/Scripts/Runtime/GameBootController.cs @@ -408,15 +408,26 @@ public void ShowMainMenuForTests() private void BuildUi() { - overlayRoot = CreatePanel("Boot Overlay", canvas.transform, Vector2.zero, new Vector2(1280, 720), Anchor.Stretch, new Color(0.012f, 0.015f, 0.023f, 0.94f)); + // Fully opaque: the gameplay floor and HUD are already built behind this + // overlay at launch, and a translucent backdrop let the whole level bleed + // through the title/menu screens, making them look cluttered. + overlayRoot = CreatePanel("Boot Overlay", canvas.transform, Vector2.zero, new Vector2(1280, 720), Anchor.Stretch, new Color(0.012f, 0.015f, 0.023f, 1f)); + // Render the boot overlay on its own canvas above every gameplay layer + // (HUD at 100, world labels at 42) so the opaque title/menu/pause screens + // fully cover the game instead of letting stray panels poke through. + var overlayCanvas = overlayRoot.gameObject.AddComponent(); + overlayCanvas.overrideSorting = true; + overlayCanvas.sortingOrder = 200; + overlayRoot.gameObject.AddComponent(); overlayRoot.gameObject.SetActive(true); titlePanel = CreatePanel("Title Screen", overlayRoot, Vector2.zero, new Vector2(1280, 720), Anchor.Stretch, new Color(0f, 0f, 0f, 0f)); - CreateText("Title", titlePanel, "Magic Exam Hall", 54, FontStyle.Bold, new Vector2(0f, 92f), new Vector2(920, 72), Anchor.Center, TextAnchor.MiddleCenter, new Color(1f, 0.86f, 0.48f)); - CreateText("Subtitle", titlePanel, "Magic Recognizer Playable", 21, FontStyle.Bold, new Vector2(0f, 32f), new Vector2(640, 36), Anchor.Center, TextAnchor.MiddleCenter, new Color(0.72f, 0.88f, 1f)); + // Tower is a centered backdrop emblem drawn first so the title text reads on top of it. CreateTowerSilhouette(titlePanel); - CreateText("Title Flavor", titlePanel, "떠 있는 탑은 오늘도 입학생을 기다린다.", 15, FontStyle.Italic, new Vector2(0f, -168f), new Vector2(640, 30), Anchor.Center, TextAnchor.MiddleCenter, new Color(0.74f, 0.81f, 0.93f, 0.92f)); - CreateText("Any Key", titlePanel, "아무 키나 눌러 시작", 18, FontStyle.Bold, new Vector2(0f, -210f), new Vector2(420, 34), Anchor.Center, TextAnchor.MiddleCenter, new Color(0.92f, 0.95f, 1f)); + CreateText("Title", titlePanel, "Magic Exam Hall", 54, FontStyle.Bold, new Vector2(0f, 92f), new Vector2(920, 72), Anchor.Center, TextAnchor.MiddleCenter, new Color(1f, 0.86f, 0.48f)); + CreateText("Subtitle", titlePanel, "Magic Recognizer Playable", 21, FontStyle.Bold, new Vector2(0f, 40f), new Vector2(640, 36), Anchor.Center, TextAnchor.MiddleCenter, new Color(0.72f, 0.88f, 1f)); + CreateText("Title Flavor", titlePanel, "떠 있는 탑은 오늘도 입학생을 기다린다.", 15, FontStyle.Italic, new Vector2(0f, -188f), new Vector2(720, 30), Anchor.Center, TextAnchor.MiddleCenter, new Color(0.74f, 0.81f, 0.93f, 0.92f)); + CreateText("Any Key", titlePanel, "아무 키나 눌러 시작", 18, FontStyle.Bold, new Vector2(0f, -226f), new Vector2(420, 34), Anchor.Center, TextAnchor.MiddleCenter, new Color(0.92f, 0.95f, 1f)); menuPanel = CreatePanel("Main Menu", overlayRoot, Vector2.zero, new Vector2(1280, 720), Anchor.Stretch, new Color(0f, 0f, 0f, 0f)); CreateText("Menu Title", menuPanel, "Magic Exam Hall", 42, FontStyle.Bold, new Vector2(-288f, 190f), new Vector2(520, 56), Anchor.Center, TextAnchor.MiddleLeft, new Color(1f, 0.86f, 0.48f)); @@ -463,7 +474,9 @@ private void BuildUi() CreateButton("Codex Dialogue Tab", codexPanel, "대사", new Vector2(-300f, 164f), () => SetCodexTab(MagicNoteCategory.Dialogue)); CreateButton("Codex Floor Tab", codexPanel, "층노트", new Vector2(-52f, 164f), () => SetCodexTab(MagicNoteCategory.FloorNote)); CreateButton("Codex Discovery Tab", codexPanel, "발견", new Vector2(196f, 164f), () => SetCodexTab(MagicNoteCategory.Discovery)); - codexText = CreateText("Codex Text", codexPanel, "", 15, FontStyle.Normal, new Vector2(0f, 12f), new Vector2(820, 380), Anchor.Center, TextAnchor.UpperLeft, new Color(0.93f, 0.96f, 1f)); + // Sits below the tab row (y=164) and above the save/close buttons + // (y=-230); the old box started at y=202 and ran straight through the tabs. + codexText = CreateText("Codex Text", codexPanel, "", 15, FontStyle.Normal, new Vector2(0f, -42f), new Vector2(1000, 300), Anchor.Center, TextAnchor.UpperLeft, new Color(0.93f, 0.96f, 1f)); CreateButton("Codex Manual Save", codexPanel, "수동 저장", new Vector2(82f, -230f), ManualSaveFromCodex); codexCloseButton = CreateButton("Codex Close", codexPanel, "닫기", new Vector2(330f, -230f), ResumeGameplay); @@ -1076,7 +1089,10 @@ private Slider CreateSlider(string name, Transform parent, string label, Vector2 private Button CreateQuickCodexButton(Transform parent) { - var body = CreatePanel("Codex Quick Button", parent, new Vector2(-74f, -30f), new Vector2(118, 42), Anchor.TopRight, new Color(0.045f, 0.058f, 0.085f, 0.96f)); + // Bottom-right, stacked just above the skip button. The previous + // top-right spot sat on top of the parchment quest panel and read as a + // stray black box. + var body = CreatePanel("Codex Quick Button", parent, new Vector2(-18f, 92f), new Vector2(118, 42), Anchor.BottomRight, new Color(0.045f, 0.058f, 0.085f, 0.96f)); codexQuickImage = body.GetComponent(); var button = body.gameObject.AddComponent