Manuals - planetarium/NineChronicles GitHub Wiki
Sorting Layer
NineChronicles GameObjects are sorted based on the Sorting Layer.
NineChronicles sorting layer list
- InGameBackground
- InGameBackgroundVFX
- Character
- CharacterVFX
- InGameForeground
- InGameForegroundVFX
- UI
- VFX
- SystemUI
UI
UI is managed by Canvas
in Game.unity scene. UI uses two sorting layers, and there are detailed layers below them.
Sorting Layer - UI
Name | Order |
---|---|
Hud | 0 |
Widget | 10 |
StaticLayer | 20 |
Popup | 30 |
Animation | 40 |
Tooltip | 50 |
TutorialMask | 60 |
Screen | 70 |
Sorting Layer - SystemUI
Name | Order |
---|---|
System | 0 |
Development | 10 |
Widget
UI is managed with widget. A widget belongs to a layer with the same name as the WidgetType.
WidgetType | Layer Name | Sorting Layer |
---|---|---|
Hud | Hud | UI |
Widget | Widget | UI |
StaticLayer | StaticLayer | UI |
Popup | Popup | UI |
Animation | Animation | UI |
Tooltip | Tooltip | UI |
TutorialMask | TutorialMask | UI |
Screen | Screen | UI |
System | System | SystemUI |
Development | Development | SystemUI |
UI Prefab
UI prefabs have UI_
prefixed. Add 'type' to the suffix to the object that inherited Widget. (e.g : WidgetType - Popup -> UI_HelpPopup)
Damage formula
How to calculate damage in battle
Damage
= (playerATK + equipmentATK + SkillPower - targetDef) * comboRatio * elementalRatio * CriticalRatio
+---------------------------------------------------------+
| Total Damage = Player ATK + Equipment ATK + Skill Power |
+----------------------------+----------------------------+
|
v
+---------------------------------------------------------+
| Damage = Total Damage - Target DEF |
+----------------------------+----------------------------+
|
v
+----------------------------------------------------------+
| Damage *= Combo Ratio (ComboCount * 100%) |
+----------------------------+-----------------------------+
|
v
+----------------------------------------------------------+
| Damage *= Elemental Ratio (120%) |
+----------------------------+-----------------------------+
|
v
+----------------------------------------------------------+
| Damage *= Critical Ratio (150%) |
+----------------------------+-----------------------------+
|
v
+----------------------------------------------------------+
| D a m a g e |
+----------------------------------------------------------+
Related links
Skill
How the skills actually selected in Nine Chronicles
+---------------------+
| Get skills |
| with 0 cooldown | ** default attack skill cooldown is always 0
| |
+---------------------+
|
|
V
/---------------------\ +---------------------+
| Have only | Yes | Use |
| default attack | ----> | default attack |
| skill? | | skill |
\---------------------/ +---------------------+
|
| No
V
+---------------------+
| Sum chance of | e.g., Skill A - chance 50%
| all skills | Skill B - chance 30%
| call it 'sumChance' | Sum : 80 = 50%(Skill A) + 30%(Skill B)
+---------------------+
|
|
V
/---------------------\ +---------------------+
| random <= sumChance | No | Use |
| random range: 1~100 | ----> | default attack |
| | | skill |
\---------------------/ +---------------------+
|
| Yes
V
+---------------------+
| Select | ** Use WeightedSelector to select skills.
| skill based on | WeightedSelector decisions based on
| weight(chance) | each choice's proportion of the total weight.
+---------------------+
|
| Yes
V
+---------------------+
| Use |
| selected skill |
| skill |
+---------------------+
Cooldown
gets value from SkillSheetPower
andChance
gets value from item- How to access buff data.
- Take the
skill id
and find the matchingbuffer id
on the SkillBuffSheet - Find the data in the BuffSheet with the buff id
- Take the
Duration
getsmodify_type
from BuffSheet
Related links
Tutorial
In the tutorial, the scenario is called recursively, and when the play id
does not exist, stop is called.
Tutorial trigger conditions are managed by TutorialController. Tutorial execution is managed in Tutorial.
Flow
┌────────┐
│play() │
│id:1 │
│nextId:2│
└───┬────┘
┌───▼────┐
│play() │
│id:2 │
│nextId:3│
└───┬────┘
┌───▼────┐
│play() │
│id:4 │
│nextId:?│
└───┬────┘
┌───▼────┐
│Stop() │
└────────┘
Data
- TutorialScenario.json - Tutorial scenario flow data
- TutorialPreset.json - Tutorial directing data
- tutorial.csv - Tutorial text