diff --git a/Assets/AI/_Summons/SummonDamageReceiver.cs b/Assets/AI/_Summons/SummonDamageReceiver.cs index 90c82adeb..764918b3b 100644 --- a/Assets/AI/_Summons/SummonDamageReceiver.cs +++ b/Assets/AI/_Summons/SummonDamageReceiver.cs @@ -5,7 +5,7 @@ public class SummonDamageReceiver : MonoBehaviour, vIHealthController { [Header("Health")] [SerializeField] private int maxHealth = 40; - [SerializeField] private float currentHealth = 40f; + [SerializeField] private float _currentHealth = 40f; [Header("Death")] [SerializeField] private bool destroyOnDeath = true; @@ -23,7 +23,7 @@ public class SummonDamageReceiver : MonoBehaviour, vIHealthController public OnReceiveDamage onReceiveDamage => _onReceiveDamage; public OnDead onDead => _onDead; - public float currentHealth => this.currentHealth; + public float currentHealth => this._currentHealth; public int MaxHealth => maxHealth; public bool isDead { get; set; } @@ -50,13 +50,13 @@ public class SummonDamageReceiver : MonoBehaviour, vIHealthController public void AddHealth(int value) { if (isDead) return; - currentHealth = Mathf.Min(maxHealth, currentHealth + value); + _currentHealth = Mathf.Min(maxHealth, currentHealth + value); } public void ChangeHealth(int value) { if (isDead) return; - currentHealth = Mathf.Clamp(currentHealth + value, 0f, maxHealth); + _currentHealth = Mathf.Clamp(currentHealth + value, 0f, maxHealth); if (currentHealth <= 0f) Die(); @@ -65,20 +65,20 @@ public class SummonDamageReceiver : MonoBehaviour, vIHealthController public void ChangeMaxHealth(int value) { maxHealth = Mathf.Max(1, maxHealth + value); - currentHealth = Mathf.Min(currentHealth, maxHealth); + _currentHealth = Mathf.Min(currentHealth, maxHealth); } public void ResetHealth(float health) { maxHealth = Mathf.Max(1, maxHealth); - currentHealth = Mathf.Clamp(health, 0f, maxHealth); + _currentHealth = Mathf.Clamp(health, 0f, maxHealth); isDead = false; } public void ResetHealth() { maxHealth = Mathf.Max(1, maxHealth); - currentHealth = maxHealth; + _currentHealth = maxHealth; isDead = false; } diff --git a/Assets/AI/_Summons/SummonDamageReceiver.cs.meta b/Assets/AI/_Summons/SummonDamageReceiver.cs.meta new file mode 100644 index 000000000..e605122e1 --- /dev/null +++ b/Assets/AI/_Summons/SummonDamageReceiver.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 0662ff12c007d4a7189cb7071852ecc9 \ No newline at end of file diff --git a/Assets/AI/_Summons/SwarmAgent.cs.meta b/Assets/AI/_Summons/SwarmAgent.cs.meta new file mode 100644 index 000000000..68cd54276 --- /dev/null +++ b/Assets/AI/_Summons/SwarmAgent.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: c709df02a66df41d2bfc2fdab3e74587 \ No newline at end of file diff --git a/Assets/AI/_Summons/SwarmCoordinator.cs.meta b/Assets/AI/_Summons/SwarmCoordinator.cs.meta new file mode 100644 index 000000000..83666b952 --- /dev/null +++ b/Assets/AI/_Summons/SwarmCoordinator.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 1f8e474d734e543518adf0325c9970bc \ No newline at end of file diff --git a/Assets/Hivemind/ModularDungeon/Art/Materials/M_FireSheet_Candle.mat b/Assets/Hivemind/ModularDungeon/Art/Materials/M_FireSheet_Candle.mat index 808b107c4..17053e502 100644 --- a/Assets/Hivemind/ModularDungeon/Art/Materials/M_FireSheet_Candle.mat +++ b/Assets/Hivemind/ModularDungeon/Art/Materials/M_FireSheet_Candle.mat @@ -50,7 +50,8 @@ Material: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: M_FireSheet_Candle - m_Shader: {fileID: -6465566751694194690, guid: 21d0901ac9866004899f0b081df8111d, type: 3} + m_Shader: {fileID: -6465566751694194690, guid: 21d0901ac9866004899f0b081df8111d, + type: 3} m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 m_ValidKeywords: @@ -312,6 +313,7 @@ Material: - _DoubleSidedGIMode: 0 - _DoubleSidedNormalMode: 1 - _DstBlend: 10 + - _DstBlendAlpha: 10 - _EmissiveColorMode: 1 - _EmissiveExposureWeight: 1 - _EmissiveIntensity: 3 @@ -364,6 +366,7 @@ Material: - _SpecularAAThreshold: 0.2 - _SpecularOcclusionMode: 1 - _SrcBlend: 5 + - _SrcBlendAlpha: 1 - _StencilRef: 0 - _StencilRefDepth: 0 - _StencilRefDistortionVec: 4 @@ -406,7 +409,8 @@ Material: - Color_A7DF1144: {r: 0, g: 0, b: 0, a: 0} - Color_AF14EE56: {r: 1, g: 1, b: 1, a: 0} - Color_af892e36b16742d1b5a31e2fb9c43b3d: {r: 0, g: 0.6332358, b: 1, a: 1} - - Color_f6973748622e48d389fed870a51f8d37: {r: 0.03301889, g: 0.5105501, b: 1, a: 0} + - Color_f6973748622e48d389fed870a51f8d37: {r: 0.03301889, g: 0.5105501, b: 1, + a: 0} - _BaseColor: {r: 1, g: 1, b: 1, a: 1} - _BaseColorMap_MipInfo: {r: 0, g: 0, b: 0, a: 0} - _Color: {r: 1, g: 1, b: 1, a: 1} diff --git a/Assets/LeartesStudios/Ancient Cathedral/HDRP/Art/Materials/M_CandleFire.mat b/Assets/LeartesStudios/Ancient Cathedral/HDRP/Art/Materials/M_CandleFire.mat index 5d820d6f3..e8aa53338 100644 --- a/Assets/LeartesStudios/Ancient Cathedral/HDRP/Art/Materials/M_CandleFire.mat +++ b/Assets/LeartesStudios/Ancient Cathedral/HDRP/Art/Materials/M_CandleFire.mat @@ -37,7 +37,8 @@ Material: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_Name: M_CandleFire - m_Shader: {fileID: -6465566751694194690, guid: 78c30b15708637148a5317ecae0ead81, type: 3} + m_Shader: {fileID: -6465566751694194690, guid: 78c30b15708637148a5317ecae0ead81, + type: 3} m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 m_ValidKeywords: @@ -132,6 +133,7 @@ Material: - _DoubleSidedGIMode: 0 - _DoubleSidedNormalMode: 2 - _DstBlend: 10 + - _DstBlendAlpha: 10 - _EnableBlendModePreserveSpecularLighting: 0 - _EnableFogOnTransparent: 0 - _Flame_Flicker_Speed: 0.02 @@ -159,6 +161,7 @@ Material: - _ReceiveShadows: 1 - _RenderQueueType: 4 - _SrcBlend: 5 + - _SrcBlendAlpha: 1 - _StencilRef: 0 - _StencilRefDepth: 0 - _StencilRefDistortionVec: 4 diff --git a/Assets/Prefabs/Characters/Beasiculus/Bascileus_BaseModel.prefab b/Assets/Prefabs/Characters/Beasiculus/Bascileus_BaseModel.prefab index cf252c247..03aaa7298 100644 --- a/Assets/Prefabs/Characters/Beasiculus/Bascileus_BaseModel.prefab +++ b/Assets/Prefabs/Characters/Beasiculus/Bascileus_BaseModel.prefab @@ -61575,67 +61575,6 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: powersArea: {fileID: 0} - m_effects: - - name: Quantum Blast - secondaryName: 'Quantum Blast ' - delay: 5 - startTime: 0 - endTime: 0 - effectObject: {fileID: 8208378463230563230} - animClipName: MagicPush - - name: Purifying Blaze - secondaryName: 'Purifying Blaze ' - delay: 0.1 - startTime: 1 - endTime: 1.5 - effectObject: {fileID: 5241190056871862258} - animClipName: FlameThrower - - name: Spectrum Scan - secondaryName: 'Spectrum Scan ' - delay: 2 - startTime: 0.6 - endTime: 5 - effectObject: {fileID: 1103741972} - animClipName: Scan - - name: Noone - secondaryName: Noone - delay: 0 - startTime: 0 - endTime: 0 - effectObject: {fileID: 0} - animClipName: - - name: Spark of Justice - secondaryName: 'Spark of Justice ' - delay: 0 - startTime: 0.85 - endTime: 0 - effectObject: {fileID: 4943514362011168500} - animClipName: Fireball - - name: Quantum Shield - secondaryName: 'Quantum Shield ' - delay: 2 - startTime: 1 - endTime: 10 - effectObject: {fileID: 3131400419490301892} - animClipName: Shield - - name: Covert Gaze - secondaryName: 'Covert Gaze ' - delay: 2 - startTime: 0.85 - endTime: 10 - effectObject: {fileID: 0} - animClipName: Fireball - selectedEffect: - name: MagicPush - secondaryName: MagicPush Scroll - delay: 0 - startTime: 0 - endTime: 0 - effectObject: {fileID: 0} - animClipName: MagicPush - m_selectedType: 1 - currentSelectedSpellName: - isPlaying: 0 actionInput: useInput: 1 isAxisInUse: 0 @@ -61652,8 +61591,6 @@ MonoBehaviour: timeButtonWasPressed: 0 lastTimeTheButtonWasPressed: 0 inButtomTimer: 0 - animationClip: - animationEnd: 0.8 OnPlayAnimation: m_PersistentCalls: m_Calls: @@ -82706,12 +82643,6 @@ PrefabInstance: m_AddedGameObjects: [] m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 03b028c9a91184b8bbbae340069578ae, type: 3} ---- !u!1 &1103741972 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 140570917138448771, guid: 03b028c9a91184b8bbbae340069578ae, - type: 3} - m_PrefabInstance: {fileID: 140570918182192535} - m_PrefabAsset: {fileID: 0} --- !u!4 &1103741973 stripped Transform: m_CorrespondingSourceObject: {fileID: 140570917138448770, guid: 03b028c9a91184b8bbbae340069578ae, @@ -83122,12 +83053,6 @@ PrefabInstance: addedObject: {fileID: 7901478694368111042} m_AddedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: c6853e03448db034b98691aaf1e5f95f, type: 3} ---- !u!1 &8208378463230563230 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 8935763087124063772, guid: c6853e03448db034b98691aaf1e5f95f, - type: 3} - m_PrefabInstance: {fileID: 1002105445722158466} - m_PrefabAsset: {fileID: 0} --- !u!4 &8214402298383652382 stripped Transform: m_CorrespondingSourceObject: {fileID: 8941715407498093468, guid: c6853e03448db034b98691aaf1e5f95f, @@ -83213,12 +83138,6 @@ Transform: type: 3} m_PrefabInstance: {fileID: 1595435661293749009} m_PrefabAsset: {fileID: 0} ---- !u!1 &3131400419490301892 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 4418269076189414613, guid: 4ae14a17e640b604f8b4921d230b0c96, - type: 3} - m_PrefabInstance: {fileID: 1595435661293749009} - m_PrefabAsset: {fileID: 0} --- !u!1001 &1626258211416126378 PrefabInstance: m_ObjectHideFlags: 0 @@ -83896,12 +83815,6 @@ Transform: type: 3} m_PrefabInstance: {fileID: 4953203485441085474} m_PrefabAsset: {fileID: 0} ---- !u!1 &4943514362011168500 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 11175768915115734, guid: fa8fab8e229636f44b7f773bd46aaf07, - type: 3} - m_PrefabInstance: {fileID: 4953203485441085474} - m_PrefabAsset: {fileID: 0} --- !u!1001 &7468426511726802134 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/Assets/Prefabs/PlayerWithUI.prefab b/Assets/Prefabs/PlayerWithUI.prefab index df1b5d63f..c123d54e9 100644 --- a/Assets/Prefabs/PlayerWithUI.prefab +++ b/Assets/Prefabs/PlayerWithUI.prefab @@ -291,6 +291,7 @@ MonoBehaviour: m_VerticalAlignment: 256 m_textAlignment: 65535 m_characterSpacing: 0 + m_characterHorizontalScale: 1 m_wordSpacing: 0 m_lineSpacing: 0 m_lineSpacingMax: 0 @@ -1546,6 +1547,7 @@ MonoBehaviour: m_VerticalAlignment: 512 m_textAlignment: 65535 m_characterSpacing: 0 + m_characterHorizontalScale: 1 m_wordSpacing: 0 m_lineSpacing: 0 m_lineSpacingMax: 0 @@ -1777,6 +1779,7 @@ MonoBehaviour: m_VerticalAlignment: 512 m_textAlignment: 65535 m_characterSpacing: 0 + m_characterHorizontalScale: 1 m_wordSpacing: 0 m_lineSpacing: 0 m_lineSpacingMax: 0 @@ -2310,6 +2313,7 @@ MonoBehaviour: m_VerticalAlignment: 256 m_textAlignment: 65535 m_characterSpacing: 0 + m_characterHorizontalScale: 1 m_wordSpacing: 0 m_lineSpacing: 0 m_lineSpacingMax: 0 @@ -4762,6 +4766,7 @@ MonoBehaviour: m_VerticalAlignment: 512 m_textAlignment: 65535 m_characterSpacing: 0 + m_characterHorizontalScale: 1 m_wordSpacing: 0 m_lineSpacing: 0 m_lineSpacingMax: 0 @@ -7738,6 +7743,7 @@ MonoBehaviour: m_VerticalAlignment: 256 m_textAlignment: 65535 m_characterSpacing: 0 + m_characterHorizontalScale: 1 m_wordSpacing: 0 m_lineSpacing: 0 m_lineSpacingMax: 0 @@ -7874,6 +7880,7 @@ MonoBehaviour: m_VerticalAlignment: 512 m_textAlignment: 65535 m_characterSpacing: 0 + m_characterHorizontalScale: 1 m_wordSpacing: 0 m_lineSpacing: 0 m_lineSpacingMax: 0 @@ -8010,6 +8017,7 @@ MonoBehaviour: m_VerticalAlignment: 512 m_textAlignment: 65535 m_characterSpacing: 0 + m_characterHorizontalScale: 1 m_wordSpacing: 0 m_lineSpacing: 0 m_lineSpacingMax: 0 @@ -8221,6 +8229,7 @@ MonoBehaviour: m_VerticalAlignment: 512 m_textAlignment: 65535 m_characterSpacing: 0 + m_characterHorizontalScale: 1 m_wordSpacing: 0 m_lineSpacing: 0 m_lineSpacingMax: 0 @@ -8894,7 +8903,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 1499315.4, y: -239890.2} + m_AnchoredPosition: {x: 1502754, y: -240440.39} m_SizeDelta: {x: 100, y: 0} m_Pivot: {x: 0.5, y: 1} --- !u!114 &6801859473011826678 @@ -9038,6 +9047,7 @@ MonoBehaviour: m_VerticalAlignment: 256 m_textAlignment: 65535 m_characterSpacing: 0 + m_characterHorizontalScale: 1 m_wordSpacing: 0 m_lineSpacing: 0 m_lineSpacingMax: 0 @@ -9519,6 +9529,7 @@ MonoBehaviour: m_VerticalAlignment: 512 m_textAlignment: 65535 m_characterSpacing: 0 + m_characterHorizontalScale: 1 m_wordSpacing: 0 m_lineSpacing: 0 m_lineSpacingMax: 0 @@ -9656,6 +9667,7 @@ MonoBehaviour: m_VerticalAlignment: 512 m_textAlignment: 65535 m_characterSpacing: 0 + m_characterHorizontalScale: 1 m_wordSpacing: 0 m_lineSpacing: 0 m_lineSpacingMax: 0 @@ -9977,6 +9989,7 @@ MonoBehaviour: m_VerticalAlignment: 256 m_textAlignment: 65535 m_characterSpacing: 0 + m_characterHorizontalScale: 1 m_wordSpacing: 0 m_lineSpacing: 0 m_lineSpacingMax: 0 @@ -11908,6 +11921,7 @@ MonoBehaviour: m_VerticalAlignment: 256 m_textAlignment: 65535 m_characterSpacing: 0 + m_characterHorizontalScale: 1 m_wordSpacing: 0 m_lineSpacing: 0 m_lineSpacingMax: 0 @@ -12044,6 +12058,7 @@ MonoBehaviour: m_VerticalAlignment: 512 m_textAlignment: 65535 m_characterSpacing: 0 + m_characterHorizontalScale: 1 m_wordSpacing: 0 m_lineSpacing: 0 m_lineSpacingMax: 0 @@ -12181,6 +12196,7 @@ MonoBehaviour: m_VerticalAlignment: 512 m_textAlignment: 65535 m_characterSpacing: 0 + m_characterHorizontalScale: 1 m_wordSpacing: 0 m_lineSpacing: 0 m_lineSpacingMax: 0 @@ -12318,6 +12334,7 @@ MonoBehaviour: m_VerticalAlignment: 512 m_textAlignment: 65535 m_characterSpacing: 0 + m_characterHorizontalScale: 1 m_wordSpacing: 0 m_lineSpacing: 0 m_lineSpacingMax: 0 @@ -12850,6 +12867,7 @@ MonoBehaviour: m_VerticalAlignment: 256 m_textAlignment: 65535 m_characterSpacing: 0 + m_characterHorizontalScale: 1 m_wordSpacing: 0 m_lineSpacing: 0 m_lineSpacingMax: 0 @@ -13081,6 +13099,7 @@ MonoBehaviour: m_VerticalAlignment: 512 m_textAlignment: 65535 m_characterSpacing: 0 + m_characterHorizontalScale: 1 m_wordSpacing: 0 m_lineSpacing: 0 m_lineSpacingMax: 0 @@ -26572,6 +26591,11 @@ PrefabInstance: propertyPath: m_Name value: MenuScroll objectReference: {fileID: 0} + - target: {fileID: 9092972257485956126, guid: 1653ebd692a0d7841b13f85378b35457, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 9092972257485956127, guid: 1653ebd692a0d7841b13f85378b35457, type: 3} propertyPath: m_canvas diff --git a/Assets/Scenes/00_Fight_Arena/Fight_Arena.unity b/Assets/Scenes/00_Fight_Arena/Fight_Arena.unity index a8be1c283..026bd761f 100644 --- a/Assets/Scenes/00_Fight_Arena/Fight_Arena.unity +++ b/Assets/Scenes/00_Fight_Arena/Fight_Arena.unity @@ -1107,6 +1107,7 @@ Material: - _DetailAlbedoMapScale: 1 - _DetailNormalMapScale: 1 - _DstBlend: 0 + - _DstBlendAlpha: 0 - _EffectThreshold: 0 - _EnvironmentReflections: 1 - _FadeDistance: 0 @@ -1126,6 +1127,7 @@ Material: - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 + - _SrcBlendAlpha: 1 - _Surface: 0 - _Threshold: 0 - _USEDISTANCEFADE: 0 @@ -1249,6 +1251,7 @@ MonoBehaviour: m_VerticalAlignment: 256 m_textAlignment: 65535 m_characterSpacing: 0 + m_characterHorizontalScale: 1 m_wordSpacing: 0 m_lineSpacing: 0 m_lineSpacingMax: 0 @@ -1533,6 +1536,7 @@ MonoBehaviour: m_VerticalAlignment: 256 m_textAlignment: 65535 m_characterSpacing: 0 + m_characterHorizontalScale: 1 m_wordSpacing: 0 m_lineSpacing: 0 m_lineSpacingMax: 0 @@ -2759,6 +2763,7 @@ Material: - _DetailAlbedoMapScale: 1 - _DetailNormalMapScale: 1 - _DstBlend: 0 + - _DstBlendAlpha: 0 - _EffectThreshold: 0 - _EnvironmentReflections: 1 - _FadeDistance: 0 @@ -2778,6 +2783,7 @@ Material: - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 + - _SrcBlendAlpha: 1 - _Surface: 0 - _Threshold: 0 - _USEDISTANCEFADE: 0 @@ -4946,6 +4952,7 @@ MonoBehaviour: m_VerticalAlignment: 256 m_textAlignment: 65535 m_characterSpacing: 0 + m_characterHorizontalScale: 1 m_wordSpacing: 0 m_lineSpacing: 0 m_lineSpacingMax: 0 @@ -13892,6 +13899,7 @@ Material: - _DetailAlbedoMapScale: 1 - _DetailNormalMapScale: 1 - _DstBlend: 0 + - _DstBlendAlpha: 0 - _EffectThreshold: 0 - _EnvironmentReflections: 1 - _FadeDistance: 0 @@ -13911,6 +13919,7 @@ Material: - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 + - _SrcBlendAlpha: 1 - _Surface: 0 - _Threshold: 0 - _USEDISTANCEFADE: 0 @@ -18117,42 +18126,42 @@ PrefabInstance: - target: {fileID: 564995907207171390, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 564995907207171390, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 564995907207171390, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchoredPosition.x - value: 210 + value: 0 objectReference: {fileID: 0} - target: {fileID: 564995907207171390, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchoredPosition.y - value: -135 + value: 0 objectReference: {fileID: 0} - target: {fileID: 616128472424357225, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 616128472424357225, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 616128472424357225, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchoredPosition.x - value: 210.00003 + value: 0 objectReference: {fileID: 0} - target: {fileID: 616128472424357225, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchoredPosition.y - value: -45 + value: 0 objectReference: {fileID: 0} - target: {fileID: 703778627114599771, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} @@ -18362,7 +18371,7 @@ PrefabInstance: - target: {fileID: 1979772587474207191, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_IsActive - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 1979772587506359731, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} @@ -19223,22 +19232,22 @@ PrefabInstance: - target: {fileID: 4202610206940879906, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4202610206940879906, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4202610206940879906, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchoredPosition.x - value: 210 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4202610206940879906, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchoredPosition.y - value: -225 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4204595259268909078, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} @@ -19323,7 +19332,7 @@ PrefabInstance: - target: {fileID: 4460069056851369441, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_IsActive - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4460112240072912095, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} @@ -19493,22 +19502,22 @@ PrefabInstance: - target: {fileID: 4796023216948086302, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4796023216948086302, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4796023216948086302, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchoredPosition.x - value: 210 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4796023216948086302, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchoredPosition.y - value: -315 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4907318199456855652, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} @@ -19978,12 +19987,12 @@ PrefabInstance: - target: {fileID: 5234664790783380194, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchoredPosition.x - value: 13310657 + value: 14980887 objectReference: {fileID: 0} - target: {fileID: 5234664790783380194, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchoredPosition.y - value: -2129729.5 + value: -2396978 objectReference: {fileID: 0} - target: {fileID: 5265345828117443429, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} @@ -20030,6 +20039,31 @@ PrefabInstance: propertyPath: m_AnchoredPosition.y value: 0 objectReference: {fileID: 0} + - target: {fileID: 5582921900280934274, guid: 851e8e61247888340bdec90fc8aa37f5, + type: 3} + propertyPath: startItems.Array.size + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 5582921900280934274, guid: 851e8e61247888340bdec90fc8aa37f5, + type: 3} + propertyPath: startItems.Array.data[4].id + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5582921900280934274, guid: 851e8e61247888340bdec90fc8aa37f5, + type: 3} + propertyPath: startItems.Array.data[5].id + value: 30 + objectReference: {fileID: 0} + - target: {fileID: 5582921900280934274, guid: 851e8e61247888340bdec90fc8aa37f5, + type: 3} + propertyPath: startItems.Array.data[6].id + value: 30 + objectReference: {fileID: 0} + - target: {fileID: 5582921900280934274, guid: 851e8e61247888340bdec90fc8aa37f5, + type: 3} + propertyPath: startItems.Array.data[7].id + value: 30 + objectReference: {fileID: 0} - target: {fileID: 5582921900280934274, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: startItems.Array.data[9].id @@ -20130,6 +20164,21 @@ PrefabInstance: propertyPath: startItems.Array.data[28].id value: 1 objectReference: {fileID: 0} + - target: {fileID: 5582921900280934274, guid: 851e8e61247888340bdec90fc8aa37f5, + type: 3} + propertyPath: startItems.Array.data[4].amount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5582921900280934274, guid: 851e8e61247888340bdec90fc8aa37f5, + type: 3} + propertyPath: startItems.Array.data[5].amount + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5582921900280934274, guid: 851e8e61247888340bdec90fc8aa37f5, + type: 3} + propertyPath: startItems.Array.data[6].amount + value: 1 + objectReference: {fileID: 0} - target: {fileID: 5582921900280934274, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: startItems.Array.data[9].amount @@ -20230,6 +20279,46 @@ PrefabInstance: propertyPath: startItems.Array.data[28].amount value: 1 objectReference: {fileID: 0} + - target: {fileID: 5582921900280934274, guid: 851e8e61247888340bdec90fc8aa37f5, + type: 3} + propertyPath: startItems.Array.data[4].autoEquip + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5582921900280934274, guid: 851e8e61247888340bdec90fc8aa37f5, + type: 3} + propertyPath: startItems.Array.data[4].indexArea + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5582921900280934274, guid: 851e8e61247888340bdec90fc8aa37f5, + type: 3} + propertyPath: startItems.Array.data[5].autoEquip + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5582921900280934274, guid: 851e8e61247888340bdec90fc8aa37f5, + type: 3} + propertyPath: startItems.Array.data[5].indexArea + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5582921900280934274, guid: 851e8e61247888340bdec90fc8aa37f5, + type: 3} + propertyPath: startItems.Array.data[6].autoEquip + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5582921900280934274, guid: 851e8e61247888340bdec90fc8aa37f5, + type: 3} + propertyPath: startItems.Array.data[6].indexArea + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5582921900280934274, guid: 851e8e61247888340bdec90fc8aa37f5, + type: 3} + propertyPath: startItems.Array.data[7].autoEquip + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5582921900280934274, guid: 851e8e61247888340bdec90fc8aa37f5, + type: 3} + propertyPath: startItems.Array.data[7].indexArea + value: 1 + objectReference: {fileID: 0} - target: {fileID: 5582921900280934274, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: startItems.Array.data[9].autoEquip @@ -20430,6 +20519,21 @@ PrefabInstance: propertyPath: startItems.Array.data[28].indexArea value: 0 objectReference: {fileID: 0} + - target: {fileID: 5582921900280934274, guid: 851e8e61247888340bdec90fc8aa37f5, + type: 3} + propertyPath: startItems.Array.data[4].addToEquipArea + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5582921900280934274, guid: 851e8e61247888340bdec90fc8aa37f5, + type: 3} + propertyPath: startItems.Array.data[5].addToEquipArea + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5582921900280934274, guid: 851e8e61247888340bdec90fc8aa37f5, + type: 3} + propertyPath: startItems.Array.data[6].addToEquipArea + value: 1 + objectReference: {fileID: 0} - target: {fileID: 5582921900280934274, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: startItems.Array.data[9].addToEquipArea @@ -20540,6 +20644,21 @@ PrefabInstance: propertyPath: startItems.Array.data[3].attributes.Array.size value: 2 objectReference: {fileID: 0} + - target: {fileID: 5582921900280934274, guid: 851e8e61247888340bdec90fc8aa37f5, + type: 3} + propertyPath: startItems.Array.data[5].attributes.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5582921900280934274, guid: 851e8e61247888340bdec90fc8aa37f5, + type: 3} + propertyPath: startItems.Array.data[6].attributes.Array.size + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5582921900280934274, guid: 851e8e61247888340bdec90fc8aa37f5, + type: 3} + propertyPath: startItems.Array.data[7].attributes.Array.size + value: 1 + objectReference: {fileID: 0} - target: {fileID: 5582921900280934274, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: startItems.Array.data[3].attributes.Array.data[0].name @@ -20550,6 +20669,21 @@ PrefabInstance: propertyPath: startItems.Array.data[3].attributes.Array.data[1].name value: 11 objectReference: {fileID: 0} + - target: {fileID: 5582921900280934274, guid: 851e8e61247888340bdec90fc8aa37f5, + type: 3} + propertyPath: startItems.Array.data[5].attributes.Array.data[0].name + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 5582921900280934274, guid: 851e8e61247888340bdec90fc8aa37f5, + type: 3} + propertyPath: startItems.Array.data[6].attributes.Array.data[0].name + value: 12 + objectReference: {fileID: 0} + - target: {fileID: 5582921900280934274, guid: 851e8e61247888340bdec90fc8aa37f5, + type: 3} + propertyPath: startItems.Array.data[7].attributes.Array.data[0].name + value: 12 + objectReference: {fileID: 0} - target: {fileID: 5582921900280934274, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: startItems.Array.data[3].attributes.Array.data[0].value @@ -20560,6 +20694,21 @@ PrefabInstance: propertyPath: startItems.Array.data[3].attributes.Array.data[1].value value: 200 objectReference: {fileID: 0} + - target: {fileID: 5582921900280934274, guid: 851e8e61247888340bdec90fc8aa37f5, + type: 3} + propertyPath: startItems.Array.data[5].attributes.Array.data[0].value + value: 15 + objectReference: {fileID: 0} + - target: {fileID: 5582921900280934274, guid: 851e8e61247888340bdec90fc8aa37f5, + type: 3} + propertyPath: startItems.Array.data[6].attributes.Array.data[0].value + value: 15 + objectReference: {fileID: 0} + - target: {fileID: 5582921900280934274, guid: 851e8e61247888340bdec90fc8aa37f5, + type: 3} + propertyPath: startItems.Array.data[7].attributes.Array.data[0].value + value: 15 + objectReference: {fileID: 0} - target: {fileID: 5613825752652024524, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_Layer @@ -20605,6 +20754,11 @@ PrefabInstance: propertyPath: 'm_Materials.Array.data[0]' value: objectReference: {fileID: 2073985053} + - target: {fileID: 5911894960463639761, guid: 851e8e61247888340bdec90fc8aa37f5, + type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} - target: {fileID: 5926359455551299165, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_Layer @@ -20708,7 +20862,7 @@ PrefabInstance: - target: {fileID: 6786312951323477463, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_IsActive - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 6805818325285139100, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} @@ -20833,22 +20987,22 @@ PrefabInstance: - target: {fileID: 7465903852046106667, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 7465903852046106667, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 7465903852046106667, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchoredPosition.x - value: 210 + value: 0 objectReference: {fileID: 0} - target: {fileID: 7465903852046106667, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchoredPosition.y - value: -405 + value: 0 objectReference: {fileID: 0} - target: {fileID: 7534046934194550914, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} @@ -22418,6 +22572,7 @@ Material: - _DetailAlbedoMapScale: 1 - _DetailNormalMapScale: 1 - _DstBlend: 0 + - _DstBlendAlpha: 0 - _EffectThreshold: 0 - _EnvironmentReflections: 1 - _FadeDistance: 0 @@ -22437,6 +22592,7 @@ Material: - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 + - _SrcBlendAlpha: 1 - _Surface: 0 - _Threshold: 0 - _USEDISTANCEFADE: 0 @@ -22804,6 +22960,7 @@ MonoBehaviour: m_VerticalAlignment: 256 m_textAlignment: 65535 m_characterSpacing: 0 + m_characterHorizontalScale: 1 m_wordSpacing: 0 m_lineSpacing: 0 m_lineSpacingMax: 0 @@ -23902,6 +24059,7 @@ Material: - _DetailAlbedoMapScale: 1 - _DetailNormalMapScale: 1 - _DstBlend: 0 + - _DstBlendAlpha: 0 - _EffectThreshold: 0 - _EnvironmentReflections: 1 - _FadeDistance: 0 @@ -23921,6 +24079,7 @@ Material: - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 + - _SrcBlendAlpha: 1 - _Surface: 0 - _Threshold: 0 - _USEDISTANCEFADE: 0 @@ -28149,6 +28308,7 @@ Material: - _DetailAlbedoMapScale: 1 - _DetailNormalMapScale: 1 - _DstBlend: 0 + - _DstBlendAlpha: 0 - _EffectThreshold: 0 - _EnvironmentReflections: 1 - _FadeDistance: 0 @@ -28168,6 +28328,7 @@ Material: - _SmoothnessTextureChannel: 0 - _SpecularHighlights: 1 - _SrcBlend: 1 + - _SrcBlendAlpha: 1 - _Surface: 0 - _Threshold: 0 - _USEDISTANCEFADE: 0 diff --git a/Assets/Scenes/05_GateHouse/GateHouse.unity b/Assets/Scenes/05_GateHouse/GateHouse.unity index 20e4bf72a..86ac1ba46 100644 --- a/Assets/Scenes/05_GateHouse/GateHouse.unity +++ b/Assets/Scenes/05_GateHouse/GateHouse.unity @@ -5734,70 +5734,7 @@ Transform: type: 3} m_PrefabInstance: {fileID: 632745673} m_PrefabAsset: {fileID: 0} ---- !u!1001 &657656666 -PrefabInstance: - m_ObjectHideFlags: 0 - serializedVersion: 2 - m_Modification: - serializedVersion: 3 - m_TransformParent: {fileID: 1452623894} - m_Modifications: - - target: {fileID: 1030974681, guid: abc00000000016444828941082041913, type: 3} - propertyPath: m_Name - value: SM_CandleSlim_01 (2) - objectReference: {fileID: 0} - - target: {fileID: 1030974682, guid: abc00000000016444828941082041913, type: 3} - propertyPath: m_LocalPosition.x - value: 4.355899 - objectReference: {fileID: 0} - - target: {fileID: 1030974682, guid: abc00000000016444828941082041913, type: 3} - propertyPath: m_LocalPosition.y - value: 12.219 - objectReference: {fileID: 0} - - target: {fileID: 1030974682, guid: abc00000000016444828941082041913, type: 3} - propertyPath: m_LocalPosition.z - value: 146.6286 - objectReference: {fileID: 0} - - target: {fileID: 1030974682, guid: abc00000000016444828941082041913, type: 3} - propertyPath: m_LocalRotation.w - value: 0.21603402 - objectReference: {fileID: 0} - - target: {fileID: 1030974682, guid: abc00000000016444828941082041913, type: 3} - propertyPath: m_LocalRotation.x - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 1030974682, guid: abc00000000016444828941082041913, type: 3} - propertyPath: m_LocalRotation.y - value: -0.9763859 - objectReference: {fileID: 0} - - target: {fileID: 1030974682, guid: abc00000000016444828941082041913, type: 3} - propertyPath: m_LocalRotation.z - value: -0 - objectReference: {fileID: 0} - - target: {fileID: 1030974682, guid: abc00000000016444828941082041913, type: 3} - propertyPath: m_LocalEulerAnglesHint.x - value: 0 - objectReference: {fileID: 0} - - target: {fileID: 1030974682, guid: abc00000000016444828941082041913, type: 3} - propertyPath: m_LocalEulerAnglesHint.y - value: -155.048 - objectReference: {fileID: 0} - - target: {fileID: 1030974682, guid: abc00000000016444828941082041913, type: 3} - propertyPath: m_LocalEulerAnglesHint.z - value: 0 - objectReference: {fileID: 0} - m_RemovedComponents: [] - m_RemovedGameObjects: [] - m_AddedGameObjects: [] - m_AddedComponents: [] - m_SourcePrefab: {fileID: 100100000, guid: abc00000000016444828941082041913, type: 3} ---- !u!4 &657656667 stripped -Transform: - m_CorrespondingSourceObject: {fileID: 1030974682, guid: abc00000000016444828941082041913, - type: 3} - m_PrefabInstance: {fileID: 657656666} - m_PrefabAsset: {fileID: 0} ---- !u!21 &660306674 +--- !u!21 &636396746 Material: serializedVersion: 8 m_ObjectHideFlags: 0 @@ -5861,6 +5798,69 @@ Material: - _NoiseSpeed: {r: 0.5, g: 0, b: 0.5, a: 0} m_BuildTextureStacks: [] m_AllowLocking: 1 +--- !u!1001 &657656666 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1452623894} + m_Modifications: + - target: {fileID: 1030974681, guid: abc00000000016444828941082041913, type: 3} + propertyPath: m_Name + value: SM_CandleSlim_01 (2) + objectReference: {fileID: 0} + - target: {fileID: 1030974682, guid: abc00000000016444828941082041913, type: 3} + propertyPath: m_LocalPosition.x + value: 4.355899 + objectReference: {fileID: 0} + - target: {fileID: 1030974682, guid: abc00000000016444828941082041913, type: 3} + propertyPath: m_LocalPosition.y + value: 12.219 + objectReference: {fileID: 0} + - target: {fileID: 1030974682, guid: abc00000000016444828941082041913, type: 3} + propertyPath: m_LocalPosition.z + value: 146.6286 + objectReference: {fileID: 0} + - target: {fileID: 1030974682, guid: abc00000000016444828941082041913, type: 3} + propertyPath: m_LocalRotation.w + value: 0.21603402 + objectReference: {fileID: 0} + - target: {fileID: 1030974682, guid: abc00000000016444828941082041913, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1030974682, guid: abc00000000016444828941082041913, type: 3} + propertyPath: m_LocalRotation.y + value: -0.9763859 + objectReference: {fileID: 0} + - target: {fileID: 1030974682, guid: abc00000000016444828941082041913, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 1030974682, guid: abc00000000016444828941082041913, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 1030974682, guid: abc00000000016444828941082041913, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -155.048 + objectReference: {fileID: 0} + - target: {fileID: 1030974682, guid: abc00000000016444828941082041913, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: abc00000000016444828941082041913, type: 3} +--- !u!4 &657656667 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 1030974682, guid: abc00000000016444828941082041913, + type: 3} + m_PrefabInstance: {fileID: 657656666} + m_PrefabAsset: {fileID: 0} --- !u!1001 &662788907 PrefabInstance: m_ObjectHideFlags: 0 @@ -8543,6 +8543,39 @@ Light: m_LightUnit: 1 m_LuxAtDistance: 1 m_EnableSpotReflector: 1 +--- !u!21 &697406783 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Height Fog Global + m_Shader: {fileID: 4800000, guid: 3a7ef1b66bafb7a448a880ef76d2e6e6, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 3001 + stringTagMap: {} + disabledShaderPasses: [] + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: [] + m_Ints: [] + m_Floats: + - _HeightFogGlobal: 1 + - _IsHeightFogShader: 1 + - _IsStandardPipeline: 0 + - _TITLE: 1 + - _TransparentQueue: 3000 + m_Colors: [] + m_BuildTextureStacks: [] + m_AllowLocking: 1 --- !u!1001 &715797091 PrefabInstance: m_ObjectHideFlags: 0 @@ -20044,12 +20077,12 @@ PrefabInstance: - target: {fileID: 5234664790783380194, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchoredPosition.x - value: 54686460 + value: 54746516 objectReference: {fileID: 0} - target: {fileID: 5234664790783380194, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} propertyPath: m_AnchoredPosition.y - value: -8749527 + value: -8759128 objectReference: {fileID: 0} - target: {fileID: 5276836446788483771, guid: 851e8e61247888340bdec90fc8aa37f5, type: 3} @@ -20989,39 +21022,6 @@ Transform: type: 3} m_PrefabInstance: {fileID: 1598749928} m_PrefabAsset: {fileID: 0} ---- !u!21 &1696434447 -Material: - serializedVersion: 8 - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: Height Fog Global - m_Shader: {fileID: 4800000, guid: 3a7ef1b66bafb7a448a880ef76d2e6e6, type: 3} - m_Parent: {fileID: 0} - m_ModifiedSerializedProperties: 0 - m_ValidKeywords: [] - m_InvalidKeywords: [] - m_LightmapFlags: 4 - m_EnableInstancingVariants: 0 - m_DoubleSidedGI: 0 - m_CustomRenderQueue: 3001 - stringTagMap: {} - disabledShaderPasses: [] - m_LockedProperties: - m_SavedProperties: - serializedVersion: 3 - m_TexEnvs: [] - m_Ints: [] - m_Floats: - - _HeightFogGlobal: 1 - - _IsHeightFogShader: 1 - - _IsStandardPipeline: 0 - - _TITLE: 1 - - _TransparentQueue: 3000 - m_Colors: [] - m_BuildTextureStacks: [] - m_AllowLocking: 1 --- !u!1 &1706873115 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scenes/05_GateHouse/GateHouse/LightingData.asset b/Assets/Scenes/05_GateHouse/GateHouse/LightingData.asset index 6442eb76f..a8c818bd6 100644 Binary files a/Assets/Scenes/05_GateHouse/GateHouse/LightingData.asset and b/Assets/Scenes/05_GateHouse/GateHouse/LightingData.asset differ diff --git a/Assets/Scenes/05_GateHouse/GateHouse/ReflectionProbe-0.exr.meta b/Assets/Scenes/05_GateHouse/GateHouse/ReflectionProbe-0.exr.meta index 1b7b66fd8..2567f3e35 100644 --- a/Assets/Scenes/05_GateHouse/GateHouse/ReflectionProbe-0.exr.meta +++ b/Assets/Scenes/05_GateHouse/GateHouse/ReflectionProbe-0.exr.meta @@ -55,7 +55,7 @@ TextureImporter: alphaIsTransparency: 0 spriteTessellationDetail: -1 textureType: 0 - textureShape: 1 + textureShape: 2 singleChannelComponent: 0 flipbookRows: 1 flipbookColumns: 1 diff --git a/Assets/Scenes/05_GateHouse/GateHouse/ReflectionProbe-1.exr.meta b/Assets/Scenes/05_GateHouse/GateHouse/ReflectionProbe-1.exr.meta index 0148ad7cf..0c2d7915a 100644 --- a/Assets/Scenes/05_GateHouse/GateHouse/ReflectionProbe-1.exr.meta +++ b/Assets/Scenes/05_GateHouse/GateHouse/ReflectionProbe-1.exr.meta @@ -55,7 +55,7 @@ TextureImporter: alphaIsTransparency: 0 spriteTessellationDetail: -1 textureType: 0 - textureShape: 1 + textureShape: 2 singleChannelComponent: 0 flipbookRows: 1 flipbookColumns: 1 diff --git a/Assets/Scenes/05_GateHouse/GateHouse/ReflectionProbe-2.exr.meta b/Assets/Scenes/05_GateHouse/GateHouse/ReflectionProbe-2.exr.meta index e614ca16f..fb7c7a482 100644 --- a/Assets/Scenes/05_GateHouse/GateHouse/ReflectionProbe-2.exr.meta +++ b/Assets/Scenes/05_GateHouse/GateHouse/ReflectionProbe-2.exr.meta @@ -55,7 +55,7 @@ TextureImporter: alphaIsTransparency: 0 spriteTessellationDetail: -1 textureType: 0 - textureShape: 1 + textureShape: 2 singleChannelComponent: 0 flipbookRows: 1 flipbookColumns: 1 diff --git a/Assets/Scripts/Audio/ShadowSlayerBarkHelper.cs b/Assets/Scripts/Audio/ShadowSlayerBarkHelper.cs index 372a8b4cb..dada7d113 100644 --- a/Assets/Scripts/Audio/ShadowSlayerBarkHelper.cs +++ b/Assets/Scripts/Audio/ShadowSlayerBarkHelper.cs @@ -1,8 +1,5 @@ using Invector; using Invector.vMelee; -using System; -using System.Collections; -using System.Collections.Generic; using UnityEngine; namespace Beyond @@ -10,20 +7,15 @@ namespace Beyond public class ShadowSlayerBarkHelper : MonoBehaviour { private const int fullyChargedBarkId = 24, emptySlayerBarkId = 14, normalSwordAttackBarkID = 23, powerBarkID = 22; - public vObjectDamage blastDamager, flamethrowerDamager;//, fireballDamager; + + // Remove specific damagers, we don't need them anymore + // public vObjectDamage blastDamager, flamethrowerDamager; + public BarkManager barkManager; - - // public bEquipArea weaponsArea; public vMeleeManager meleeManager; - - // public List weaponSlots; - private vMeleeWeapon weapon; - public MagicAttacks magicAttacks; - public TutorialController emptySlayerTutorial; - // Start is called before the first frame update private void Awake() { EnableShadowSlayerBarks(); @@ -31,48 +23,32 @@ namespace Beyond private void EnableShadowSlayerBarks() { - meleeManager.onDamageHit.AddListener(TryToPlayAttackBark); + if (meleeManager) + meleeManager.onDamageHit.AddListener(TryToPlayAttackBark); - blastDamager.onHit.AddListener(TryToPlayPowerBark); - flamethrowerDamager.onHit.AddListener(TryToPlayPowerBark); - - magicAttacks.onHitFireball += TryToPlayPowerBark; - // fireballDamager.onHit.AddListener(TryToPlayPowerBark); + // NEW: Subscribe to the centralized Magic event + if (magicAttacks) + magicAttacks.OnSpellHit += OnMagicHit; } - private void TryToPlayAttackBark(vHitInfo arg0) + private void OnDestroy() { - CharacterVisibilityController visilibityController = arg0.targetCollider.GetComponent(); - if (visilibityController) - { - weapon = meleeManager.rightWeapon; - bItemAttribute power = weapon.GetComponent().power; - if (power != null && power.value > 0) - { - //attacking with fully charged slayer - barkManager.PlayBark(fullyChargedBarkId); - } - else if (power != null && power.value <= 0 && !emptySlayerTutorial.played) - { - emptySlayerTutorial.StartTutorial(); - //attacking with empty slayer, change id to correct! - // barkManager.PlayBark(emptySlayerBarkId); - } - else if (power == null) - { - //attacking - barkManager.PlayBark(normalSwordAttackBarkID); - } - //not much of an improvement as bark handles playing already, just removes few check before - TryToRemoveAttackListener(); - } - } - - private void TryToRemoveAttackListener() - { - if (!(barkManager.CanBarkBeStillPlayed(fullyChargedBarkId) || !emptySlayerTutorial.played /*|| barkManager.CanBarkBeStillPlayed(emptySlayerBarkId) */ || barkManager.CanBarkBeStillPlayed(normalSwordAttackBarkID))) - { + if (magicAttacks) + magicAttacks.OnSpellHit -= OnMagicHit; + + if (meleeManager) meleeManager.onDamageHit.RemoveListener(TryToPlayAttackBark); + } + + // --------------------------------------------------------- + // MAGIC LOGIC + // --------------------------------------------------------- + private void OnMagicHit(SpellDefinition spell, Collider hitTarget) + { + // Check if the spell is "Offensive_Power" (Fireball, Flamethrower, Blast) + if (spell.category == SpellCategory.Offensive_Power) + { + TryToPlayPowerBark(hitTarget); } } @@ -81,25 +57,65 @@ namespace Beyond CharacterVisibilityController visilibityController = arg0.GetComponent(); if (visilibityController) { - barkManager.PlayBark(powerBarkID); - TryToRemovePowerBarkListener(); + if (barkManager.CanBarkBeStillPlayed(powerBarkID)) + { + barkManager.PlayBark(powerBarkID); + // We don't need to unsubscribe here anymore because the + // event is global and persistent on MagicAttacks. + // The 'CanBarkBeStillPlayed' check handles the "play once" logic. + } } } - private void TryToRemovePowerBarkListener() + // --------------------------------------------------------- + // MELEE LOGIC (Unchanged, just uncommented) + // --------------------------------------------------------- + private void TryToPlayAttackBark(vHitInfo arg0) { - if (barkManager.CanBarkBeStillPlayed(powerBarkID)) + CharacterVisibilityController visilibityController = arg0.targetCollider.GetComponent(); + if (visilibityController) { - blastDamager.onHit.RemoveListener(TryToPlayPowerBark); - flamethrowerDamager.onHit.RemoveListener(TryToPlayPowerBark); - magicAttacks.onHitFireball -= TryToPlayPowerBark; - //fireballDamager.onHit.RemoveListener(TryToPlayPowerBark); + var weapon = meleeManager.rightWeapon; + if (weapon == null) return; + + bItemAttribute power = weapon.GetComponent().power; + + if (power != null && power.value > 0) + { + // Fully charged + barkManager.PlayBark(fullyChargedBarkId); + } + else if (power != null && power.value <= 0) + { + // Empty Slayer + if (emptySlayerTutorial != null && !emptySlayerTutorial.played) + { + emptySlayerTutorial.StartTutorial(); + } + // barkManager.PlayBark(emptySlayerBarkId); + } + else if (power == null) + { + // Normal Sword + barkManager.PlayBark(normalSwordAttackBarkID); + } + + // Cleanup listener if all barks are done + TryToRemoveAttackListener(); } } - // Update is called once per frame - private void Update() + private void TryToRemoveAttackListener() { + // If all relevant barks are exhausted/played, stop listening to melee hits to save performance + bool fullyChargedDone = !barkManager.CanBarkBeStillPlayed(fullyChargedBarkId); + bool normalDone = !barkManager.CanBarkBeStillPlayed(normalSwordAttackBarkID); + bool tutorialDone = (emptySlayerTutorial == null || emptySlayerTutorial.played); + + if (fullyChargedDone && normalDone && tutorialDone) + { + meleeManager.onDamageHit.RemoveListener(TryToPlayAttackBark); + } } } } \ No newline at end of file diff --git a/Assets/Scripts/Characters/Skills/DurationSpell.cs b/Assets/Scripts/Characters/Skills/DurationSpell.cs index 95268f9ab..72fe6941e 100644 --- a/Assets/Scripts/Characters/Skills/DurationSpell.cs +++ b/Assets/Scripts/Characters/Skills/DurationSpell.cs @@ -21,26 +21,24 @@ namespace Beyond private IEnumerator CastRoutine(MagicAttacks caster, Transform target) { - // 1. Rotation (Only Push and Flame used rotation in your old script) - if (type != DurationType.Shield) - { - yield return caster.RotateTowardsTargetRoutine(target, rotationDuration); - } - - // 2. Pre-cast Delay - if (preCastDelay > 0) yield return new WaitForSeconds(preCastDelay); + // ... (Rotation and Pre-Cast Delay logic) ... - // 3. Instantiate attached to player + // 3. Instantiate GameObject instance = Instantiate(effectPrefab, caster.transform); - // Reset local position/rotation to ensure it aligns with player instance.transform.localPosition = Vector3.zero; instance.transform.localRotation = Quaternion.identity; + // Register Events (for Barks) + caster.RegisterSpellDamageEvents(instance, this); + // 4. Initialize Specific Logic if (type == DurationType.Shield) { var shieldCtrl = instance.GetComponent(); if (shieldCtrl) shieldCtrl.InitializeEffect(); + + // --- TOGGLE FLAG ON --- + caster.IsShieldActive = true; } else if (type == DurationType.Flamethrower) { @@ -69,6 +67,9 @@ namespace Beyond { var shieldCtrl = instance.GetComponent(); if (shieldCtrl) shieldCtrl.DisableEffect(); + + // --- TOGGLE FLAG OFF --- + caster.IsShieldActive = false; } // 7. Post Delay diff --git a/Assets/Scripts/Characters/Skills/MagicAttacks.cs b/Assets/Scripts/Characters/Skills/MagicAttacks.cs index 5935a1f1d..a259c9ee2 100644 --- a/Assets/Scripts/Characters/Skills/MagicAttacks.cs +++ b/Assets/Scripts/Characters/Skills/MagicAttacks.cs @@ -1,504 +1,213 @@ -using System; using System.Collections; using System.Collections.Generic; using Invector; +using Invector.vMelee; using Invector.vCharacterController; -using Invector.vCharacterController.vActions; using Sirenix.OdinInspector; using UnityEngine; using UnityEngine.Events; -using UnityEngine.VFX; using DG.Tweening; -using Invector.vCharacterController.AI.FSMBehaviour; using Beyond; namespace Beyond { [RequireComponent(typeof(Animator))] - [RequireComponent(typeof(vGenericAnimation))] public class MagicAttacks : MonoBehaviour { - public delegate void ActionDelegate(); - - [Serializable] - public class EffectDesc - { - public string name = "MagicPush"; - public string secondaryName = "MagicPush Scroll"; - public float delay = 0f; - public float startTime = 0f; - public float endTime = 0f; - public GameObject effectObject; - public string animClipName = "MagicPush"; - public ActionDelegate del; - } - + [Title("References")] [SerializeField] private bEquipArea powersArea; - public List m_effects; - public EffectDesc selectedEffect; - public enum EffectType - { MAGIC_PUSH, FLAME_THROWER, SCAN, NOONE, FIREBALL, SHIELD, SILENT_PEEK }; - - public EffectType m_selectedType = EffectType.NOONE; - public string currentSelectedSpellName = ""; - - private int currentSpellFaithCost = int.MaxValue; - private int equipAreaSelectedIndex = 0; - - private Coroutine lastPushRoutine = null; - private ParticleSystem flame; - private BoxCollider flameDamager; - private bLockOn lockOn; - private const float fireballAimerThreshold = -1.0f; - private const float fireballAimerHeightAdjuster = 0.1f; - private const float fireballDamagerDuration = 0.3f; - private const float fireballTargetYPositionOffset = 0.75f; - private const int spellLayerIndex = 5; - - private EffectDesc shield; - private EffectDesc silentPeek; - private ShieldEffectController shieldEffectController; - private ShieldCollisionController shieldCollisionController; - - private bool canPlayNoFaithClip = true; - private bool canPlayCantDoClip = true; - - private AutoTargetting _autoTargettingInstance; - public UnityAction onHitFireball; - - // Animation State - public bool isPlaying; - protected bool triggerOnce; - protected bThirdPersonInput tpInput; - internal bool shieldEffectIsActive; - private bool shieldAnimationIsActive; - - [Tooltip("Input to trigger the custom animation")] + [Title("Input Settings")] public GenericInput actionInput = new GenericInput("L", "L", "L"); - [Tooltip("Name of the animation clip")] - public string animationClip; - [Tooltip("Where in the end of the animation will trigger the event OnEndAnimation")] - public float animationEnd = 0.8f; + [Title("Events")] public UnityEvent OnPlayAnimation; public UnityEvent OnEndAnimation; + public event System.Action OnSpellHit; + + // Internal State + private bThirdPersonInput tpInput; + private AutoTargetting _autoTargettingInstance; + public bool isPlaying { get; private set; } + private bool canPlayNoFaithClip = true; + [field: Sirenix.OdinInspector.ShowInInspector, Sirenix.OdinInspector.ReadOnly] + public bool IsShieldActive { get; set; } + + // Constants + private const int spellLayerIndex = 5; private void Awake() { tpInput = GetComponent(); - lockOn = GetComponent(); if (Player.Instance != null) { _autoTargettingInstance = Player.Instance.AutoTarget; - if (_autoTargettingInstance == null) - { - Debug.LogWarning("MagicAttacks: AutoTargetting component not found on Player.Instance.AutoTarget."); - } } - - EffectDesc mpush = m_effects[(int)EffectType.MAGIC_PUSH]; - EffectDesc flameThrowe = m_effects[(int)EffectType.FLAME_THROWER]; - EffectDesc scan = m_effects[(int)EffectType.SCAN]; - EffectDesc fireball = m_effects[(int)EffectType.FIREBALL]; - shield = m_effects[(int)EffectType.SHIELD]; - silentPeek = m_effects[(int)EffectType.SILENT_PEEK]; - - // Setup References - if (shield.effectObject) - { - shieldEffectController = shield.effectObject.GetComponent(); - shieldCollisionController = shield.effectObject.GetComponentInChildren(); - shield.effectObject.SetActive(false); - } - - if (mpush.effectObject != null) - { - mpush.effectObject.SetActive(false); - } - mpush.del = MagicPushAttack; - - if (flameThrowe.effectObject) - { - flameThrowe.effectObject.GetComponent().Stop(); - var ps = flameThrowe.effectObject.GetComponentsInChildren(); - foreach (var p in ps) p.Stop(); - - flame = flameThrowe.effectObject.GetComponent(); - flameDamager = flameThrowe.effectObject.GetComponentInChildren(); - } - flameThrowe.del = FlameThrowerAttack; - - scan.del = Scan; - if (scan.effectObject) scan.effectObject.SetActive(false); - - fireball.del = Fireball; - if (fireball.effectObject) fireball.effectObject.SetActive(false); - - shield.del = Shield; - silentPeek.del = OnSilentPeek; } - private void OnDisable() { - if (shieldAnimationIsActive) + // Safety check: ensure shield flag is reset if player is disabled/respawning + IsShieldActive = false; + } + + private void LateUpdate() + { + HandleInput(); + MonitorAnimationState(); + } + + private void HandleInput() + { + // 1. Basic Checks + if (tpInput == null || tpInput.cc == null) return; + + bool canCast = !isPlaying && + !tpInput.cc.customAction && + !tpInput.cc.IsAnimatorTag("special") && + !tpInput.cc.IsAnimatorTag("LockMovement"); + + // 2. Trigger + if (actionInput.GetButtonDown() && canCast) { - DisableShield(); + TryCastCurrentSpell(); } } - private void OnEnable() + private void TryCastCurrentSpell() { - canPlayNoFaithClip = true; - canPlayCantDoClip = true; - } + // A. Get Item & Spell Definition + bItem selectedItem = GetEquippedSpellItem(); - protected virtual void LateUpdate() - { - TriggerSpellAnimation(); - AnimationBehaviour(); - } - - protected virtual void TriggerSpellAnimation() - { - bool playConditions = !isPlaying && tpInput != null && tpInput.cc != null && - !(tpInput.cc.customAction || tpInput.cc.IsAnimatorTag("special") || tpInput.cc.IsAnimatorTag("LockMovement")); - - if (actionInput.GetButtonDown() && playConditions) - TryToPlaySpellAnimation(); - } - - // ---------------------------------------------------------------------------------- - // CORE CASTING LOGIC (COSTS & BONUSES) - // ---------------------------------------------------------------------------------- - public void TryToPlaySpellAnimation() - { - selectedEffect = GetCurrentlySelectedPower(); - - if (selectedEffect == shield && shieldAnimationIsActive) + if (selectedItem == null) { - TryToPlayCantDoThatYetClip(); + // No item equipped in the selected slot + return; + } + + if (selectedItem.spellDefinition == null) + { + Debug.LogWarning($"Item '{selectedItem.name}' is equipped but has no SpellDefinition assigned!"); return; } - if (Player.Instance == null) + SpellDefinition spell = selectedItem.spellDefinition; + + // B. Check Costs (Calculated by the Spell SO) + float cost = spell.GetFaithCost(Player.Instance); + + if (Player.Instance.GetCurrentFaithValue() < cost) { - Debug.LogError("Player.Instance is null. Cannot cast spell."); + PlayNoFaithFeedback(); return; } - // --- 1. CALCULATE FINAL FAITH COST --- - float finalCost = currentSpellFaithCost; - bool isSilentPeek = selectedEffect == m_effects[(int)EffectType.SILENT_PEEK]; + // C. Success! Consume Resources + Player.Instance.UpdateFaithCurrentValue(-cost); - // Effect: Bloom (General 20% Reduction) - if (Player.Instance.CurrentTrinketStats.effectBloom) + // Effect: Growth (Heal on Cast) - Global Trinket logic + if (Player.Instance.CurrentTrinketStats.effectGrowth) { - finalCost *= 0.8f; + int healAmt = Mathf.Max(1, (int)(Player.Instance.MaxHealth * 0.02f)); + Player.Instance.ThirdPersonController.ChangeHealth(healAmt); } - // Effect: Angel Eye (Silent Peek is Free) - if (isSilentPeek && Player.Instance.CurrentTrinketStats.effectAngelEye) + // Handle Consumables (Scrolls) + if (selectedItem.destroyAfterUse) { - finalCost = 0f; + // Uses the standard Invector logic to consume the item in the current slot + if (powersArea.currentSelectedSlot != null) + { + powersArea.UseItem(powersArea.currentSelectedSlot); + } } - // Note: Zora's Focus (effectBreeze) logic for Magic Push cost was removed as requested. - - // --- 2. CHECK & CONSUME --- - if (selectedEffect != null && finalCost <= Player.Instance.GetCurrentFaithValue()) + // D. Snap Rotation (Instant snap before animation starts if needed) + if (_autoTargettingInstance != null && _autoTargettingInstance.CurrentTarget != null) { - Player.Instance.UpdateFaithCurrentValue(-finalCost); + SnapLookTowardsAutoTarget(); + } - // Effect: Growth (Heal on Cast) - if (Player.Instance.CurrentTrinketStats.effectGrowth) + // E. Play Animation + if (!string.IsNullOrEmpty(spell.animationClipName)) + { + tpInput.cc.animator.CrossFadeInFixedTime(spell.animationClipName, 0.1f); + OnPlayAnimation.Invoke(); + } + + // F. Execute Spell Logic + // We pass 'this' (Monobehaviour) so the SO can start coroutines here. + Transform target = _autoTargettingInstance != null ? + (_autoTargettingInstance.CurrentTarget != null ? _autoTargettingInstance.CurrentTarget.transform : null) + : null; + + spell.Cast(this, target); + } + + // ================================================================================================= + // HELPER METHODS (Called by SpellDefinitions) + // ================================================================================================= + + /// + /// Gets the currently equipped item in the Powers area. + /// + public bItem GetEquippedSpellItem() + { + if (powersArea == null) return null; + return powersArea.currentEquippedItem; + } + + /// + /// Coroutine used by Spells to rotate the player towards the target over time. + /// + public IEnumerator RotateTowardsTargetRoutine(Transform target, float duration) + { + if (duration <= 0) yield break; + + float timer = 0f; + while (timer < duration) + { + // Dynamic check: target might die or become null during rotation + Transform actualTarget = target; + + // Fallback to AutoTarget if the passed target becomes null but a new one exists + if (actualTarget == null && _autoTargettingInstance != null && _autoTargettingInstance.CurrentTarget != null) { - int healAmt = Mathf.Max(1, (int)(Player.Instance.MaxHealth * 0.02f)); - Player.Instance.ThirdPersonController.ChangeHealth(healAmt); + actualTarget = _autoTargettingInstance.CurrentTarget.transform; } - animationClip = selectedEffect.animClipName; - - // Snap Rotation - if (_autoTargettingInstance != null && _autoTargettingInstance.CurrentTarget != null) + if (actualTarget != null) { - SnapLookTowardsAutoTarget(); - } + Vector3 directionToTarget = actualTarget.position - transform.position; + directionToTarget.y = 0f; - // Play Animation - if (tpInput != null && tpInput.cc != null && tpInput.cc.animator != null) - { - tpInput.cc.animator.CrossFadeInFixedTime(animationClip, 0.1f); - OnPlayAnimation.Invoke(); - triggerOnce = true; - } - else - { - Debug.LogError("Cannot play spell animation: tpInput or its components are null."); - return; - } - - // Invoke Logic (Coroutine) - selectedEffect.del?.Invoke(); - - // Handle Consumables (Scrolls) - if (powersArea.equipSlots[equipAreaSelectedIndex].item.destroyAfterUse) - { - if (selectedEffect == silentPeek) + if (directionToTarget.sqrMagnitude > 0.0001f) { - // Logic handled inside coroutine - } - else - { - powersArea.UseItem(powersArea.equipSlots[equipAreaSelectedIndex]); + Quaternion targetRotation = Quaternion.LookRotation(directionToTarget.normalized); + // Using a high speed to ensure we catch up, or use the AutoTargetting speed settings + float speed = (_autoTargettingInstance != null) ? _autoTargettingInstance.playerRotationSpeed : 10f; + transform.rotation = Quaternion.RotateTowards(transform.rotation, targetRotation, Time.deltaTime * speed * 50f); } } - } - else if (selectedEffect != null) - { - TryToPlayNoEnoughFaithClip(); - } - } - - // ---------------------------------------------------------------------------------- - // SPELL: MAGIC PUSH - // ---------------------------------------------------------------------------------- - public void MagicPushAttack() - { - if (lastPushRoutine != null) StopCoroutine(lastPushRoutine); - lastPushRoutine = StartCoroutine(MagicPushCoroutine()); - } - - private IEnumerator MagicPushCoroutine() - { - EffectDesc mpush = m_effects[(int)EffectType.MAGIC_PUSH]; - yield return TurnTowardTargetCoroutine(mpush.startTime); - - // Zora's Focus scaling logic removed from here as requested. - // Magic Push is now standard size. - - mpush.effectObject.SetActive(false); - mpush.effectObject.SetActive(true); - - // Apply Soulfire Damage - ApplySoulfireDamage(mpush.effectObject); - - yield return new WaitForSeconds(mpush.delay); - yield return new WaitForSeconds(mpush.endTime); - mpush.effectObject.SetActive(false); - yield return null; - } - - // ---------------------------------------------------------------------------------- - // SPELL: FLAME THROWER - // ---------------------------------------------------------------------------------- - public void FlameThrowerAttack() - { - StartCoroutine(FlameThrowerhCoroutine()); - } - - private IEnumerator FlameThrowerhCoroutine() - { - EffectDesc flameThrowe = m_effects[(int)EffectType.FLAME_THROWER]; - yield return TurnTowardTargetCoroutine(flameThrowe.startTime); - - flameDamager.enabled = true; - ApplySoulfireDamage(flameThrowe.effectObject); - - flame.Play(); - yield return new WaitForSeconds(flameThrowe.endTime); - flame.Stop(); - yield return new WaitForSeconds(flameThrowe.delay); - flameDamager.enabled = false; - yield return null; - } - - // ---------------------------------------------------------------------------------- - // SPELL: FIREBALL (Soulfire Damage) - // ---------------------------------------------------------------------------------- - public void Fireball() - { - StartCoroutine(FireballCoroutine()); - } - - private IEnumerator FireballCoroutine() - { - EffectDesc fireballDesc = m_effects[(int)EffectType.FIREBALL]; - yield return TurnTowardTargetCoroutine(fireballDesc.startTime); - - var fireballClone = Instantiate(fireballDesc.effectObject, fireballDesc.effectObject.transform.position, fireballDesc.effectObject.transform.rotation); - fireballClone.SetActive(true); - - // Apply Soulfire Damage to the Clone - ApplySoulfireDamage(fireballClone); - - RFX4_PhysicsMotion fireballMotionController = fireballClone.GetComponentInChildren(); - if (fireballMotionController != null) - { - fireballMotionController.CollisionEnter += EnableBrieflyFireballDamager; - } - vObjectDamage fireballDamageComponent = fireballClone.GetComponentInChildren(); - if (fireballDamageComponent != null && onHitFireball != null) - { - fireballDamageComponent.onHit.AddListener(onHitFireball); - } - - AimFireball(fireballClone); - - Destroy(fireballClone, 10f); - yield return null; - } - - // ---------------------------------------------------------------------------------- - // SPELL: SHIELD (Calmness) - // ---------------------------------------------------------------------------------- - public void Shield() - { - StopCoroutine(nameof(ShieldCoroutine)); - StartCoroutine(nameof(ShieldCoroutine)); - } - - private IEnumerator ShieldCoroutine() - { - shieldAnimationIsActive = true; - yield return new WaitForSeconds(shield.startTime); - - shieldEffectIsActive = true; - shieldEffectController.InitializeEffect(); - shield.effectObject.SetActive(true); - shieldCollisionController.shieldCollider.enabled = true; - - // Effect: Calmness (Shield lasts 50% longer) - float finalDuration = shield.endTime; - if (Player.Instance.CurrentTrinketStats.effectCalmness) - { - finalDuration *= 1.5f; - } - - yield return new WaitForSeconds(finalDuration); - - shieldEffectController.DisableEffect(); - yield return new WaitForSeconds(shield.delay / 2f); - shieldEffectIsActive = false; - shieldCollisionController.shieldCollider.enabled = false; - yield return new WaitForSeconds(shield.delay / 2f); - shield.effectObject.SetActive(false); - shieldAnimationIsActive = false; - } - - private void DisableShield() - { - shieldEffectIsActive = false; - if (shieldCollisionController != null && shieldCollisionController.shieldCollider != null) - shieldCollisionController.shieldCollider.enabled = false; - shieldAnimationIsActive = false; - if (shield != null && shield.effectObject != null) - shield.effectObject.SetActive(false); - } - - // ---------------------------------------------------------------------------------- - // SPELL: SILENT PEEK (Angel Eye & Zora's Focus) - // ---------------------------------------------------------------------------------- - [Button] - private void OnSilentPeek() - { - StopCoroutine(nameof(SilentPeekCoroutine)); - StartCoroutine(nameof(SilentPeekCoroutine)); - } - - private IEnumerator SilentPeekCoroutine() - { - EffectDesc peek = m_effects[(int)EffectType.SILENT_PEEK]; - yield return new WaitForSeconds(peek.startTime); - - // Effect: Zora's Focus (effectBreeze) - // User Note: "enhanced covert gaze radius and length", "keep it in not fully implemented version" - // Implementation: We check the flag, but currently do not apply Radius/Length changes. - if (Player.Instance.CurrentTrinketStats.effectBreeze) - { - // Placeholder for future logic: - // float extendedDuration = peek.endTime * 1.5f; - // float extendedRadius = currentRadius * 1.3f; - } - - if (SilentPeekController.instance.IsActive()) - { - SilentPeekController.instance.SetActive(false); - } - else - { - if (peek.effectObject != null) - { - peek.effectObject.SetActive(false); - peek.effectObject.SetActive(true); - yield return new WaitForSeconds(peek.delay); - } - SilentPeekController.instance.SetActive(true, powersArea.equipSlots[equipAreaSelectedIndex].item); - } - yield return null; - } - - // ---------------------------------------------------------------------------------- - // SPELL: SCAN - // ---------------------------------------------------------------------------------- - [Button] - public void Scan() - { - StartCoroutine(ScanCoroutine()); - } - - private IEnumerator ScanCoroutine() - { - EffectDesc scan = m_effects[(int)EffectType.SCAN]; - yield return new WaitForSeconds(scan.startTime); - float maxRange = 50f; - float speed = maxRange / (scan.endTime - scan.startTime); - int mask = 1 << LayerMask.NameToLayer("Triggers") | 1 << LayerMask.NameToLayer("HiddenObject"); - - if (scan.effectObject) - { - scan.effectObject.SetActive(true); - VisualEffect effect = scan.effectObject.GetComponent(); - effect.Play(); - } - - float waveEffectTimer = 0f; - float waveEffectDuration = scan.endTime - scan.startTime; - - while (waveEffectTimer < waveEffectDuration) - { - Shader.SetGlobalFloat("_WaveTime", speed * waveEffectTimer); - waveEffectTimer += Time.deltaTime; + + timer += Time.deltaTime; yield return null; } - Shader.SetGlobalFloat("_WaveTime", 0f); - - var colliders = Physics.OverlapSphere(transform.position, maxRange, mask); - foreach (var c in colliders) - { - var h = c.gameObject.GetComponent(); - if (h != null) h.OnScanned(); - } - - if (scan.effectObject) scan.effectObject.SetActive(false); - yield return null; } - // ---------------------------------------------------------------------------------- - // HELPERS - // ---------------------------------------------------------------------------------- - - // Applies Trinket Damage Multiplier (Soulfire) to any vObjectDamage found on object - private void ApplySoulfireDamage(GameObject obj) + /// + /// Helper to apply Trinket Damage Multipliers (Soulfire) to any instantiated spell object. + /// + public void ApplyDamageModifiers(GameObject spellObject) { - if (obj == null) return; - var damageComps = obj.GetComponentsInChildren(); + if (spellObject == null || Player.Instance == null) return; + float mult = Player.Instance.CurrentTrinketStats.soulfireDamageMult; - // Only apply if multiplier is significant + // Only apply if multiplier is significant (not 1.0) if (Mathf.Abs(mult - 1f) > 0.01f) { + var damageComps = spellObject.GetComponentsInChildren(); foreach (var comp in damageComps) { comp.damage.damageValue = Mathf.RoundToInt(comp.damage.damageValue * mult); @@ -506,275 +215,78 @@ namespace Beyond } } - public EffectDesc GetCurrentlySelectedPower() + // ================================================================================================= + // INTERNAL LOGIC + // ================================================================================================= + + private void MonitorAnimationState() { - if (powersArea == null || equipAreaSelectedIndex < 0 || equipAreaSelectedIndex >= powersArea.equipSlots.Count || - powersArea.equipSlots[equipAreaSelectedIndex] == null || powersArea.equipSlots[equipAreaSelectedIndex].item == null) - { - currentSpellFaithCost = int.MaxValue; - currentSelectedSpellName = ""; - return null; - } + if (tpInput == null || tpInput.cc == null || tpInput.cc.animator == null) return; - bItem selectedSpellItem = powersArea.equipSlots[equipAreaSelectedIndex].item; - currentSelectedSpellName = selectedSpellItem.name; - currentSpellFaithCost = selectedSpellItem.GetItemAttribute(bItemAttributes.Faith).value; + // Check if we are currently playing a spell animation on the specific layer + var stateInfo = tpInput.cc.animator.GetCurrentAnimatorStateInfo(spellLayerIndex); + + // We consider it "Playing" if the tag is Spell, or if a spell animation is active + // Note: Your SpellDefinitions define the Clip Name. + // A generic way is checking the Tag if you set "Spell" tag in Animator, + // OR checking if we are in a transition to a spell. + + // Simplified check based on your old code logic: + // Assuming all Spell Animations have the tag "Spell" or "Action" in the Animator + isPlaying = tpInput.cc.IsAnimatorTag("Spell") || + tpInput.cc.IsAnimatorTag("special") || + tpInput.cc.customAction; - return m_effects.Find(effect => effect.name == selectedSpellItem.name || effect.secondaryName == selectedSpellItem.name); - } - - public void SelectPowerBasedOnArea(int newIndex) - { - equipAreaSelectedIndex = newIndex; - selectedEffect = GetCurrentlySelectedPower(); - } - - private void TryToPlayCantDoThatYetClip() - { - if (!canPlayCantDoClip) return; - canPlayCantDoClip = false; - DOVirtual.DelayedCall(1f, () => canPlayCantDoClip = true); - - var text = "Spell is already active"; - if (bItemCollectionDisplay.Instance != null) - bItemCollectionDisplay.Instance.FadeText(text, 4, 0.25f); - if (Player.Instance != null) - Player.Instance.PlayICantDoThatYet(); - } - - private void TryToPlayNoEnoughFaithClip() - { - if (!canPlayNoFaithClip) return; - canPlayNoFaithClip = false; - DOVirtual.DelayedCall(1.5f, () => canPlayNoFaithClip = true); - - var text = "Not enough Faith"; - if (bItemCollectionDisplay.Instance != null) - bItemCollectionDisplay.Instance.FadeText(text, 4, 0.25f); - if (Player.Instance != null) - Player.Instance.PlayNoFaithClip(); - } - - protected virtual void AnimationBehaviour() - { - if (tpInput == null || tpInput.cc == null || tpInput.cc.animator == null || string.IsNullOrEmpty(animationClip)) - { - isPlaying = false; - return; - } - - isPlaying = tpInput.cc.animator.GetCurrentAnimatorStateInfo(spellLayerIndex).IsName(animationClip) || - tpInput.cc.animator.GetNextAnimatorStateInfo(spellLayerIndex).IsName(animationClip); - - if (isPlaying) - { - if (tpInput.cc.animator.GetCurrentAnimatorStateInfo(spellLayerIndex).IsName(animationClip) && - tpInput.cc.animator.GetCurrentAnimatorStateInfo(spellLayerIndex).normalizedTime >= animationEnd) - { - if (triggerOnce) - { - triggerOnce = false; - OnEndAnimation.Invoke(); - } - } - } - else - { - if (triggerOnce) triggerOnce = false; - } - } - - private IEnumerator TurnTowardTargetCoroutine(float maxDuration) - { - if (_autoTargettingInstance == null || _autoTargettingInstance.CurrentTarget == null) - { - if (maxDuration > 0) yield return new WaitForSeconds(maxDuration); - yield break; - } - - float timeElapsed = 0; - while (timeElapsed < maxDuration) - { - if (_autoTargettingInstance.CurrentTarget != null) - { - vFSMBehaviourController currentTarget = _autoTargettingInstance.CurrentTarget; - Transform playerTransform = transform; - - float distSqr = (currentTarget.transform.position - playerTransform.position).sqrMagnitude; - - if (distSqr <= _autoTargettingInstance.maxTargetingDistance * _autoTargettingInstance.maxTargetingDistance) - { - if (_autoTargettingInstance.IsTargetInAngle(playerTransform, currentTarget, _autoTargettingInstance.targetingAngleThreshold)) - { - Vector3 directionToTarget = currentTarget.transform.position - playerTransform.position; - directionToTarget.y = 0f; - - if (directionToTarget.sqrMagnitude > 0.0001f) - { - Quaternion targetRotation = Quaternion.LookRotation(directionToTarget.normalized); - playerTransform.rotation = Quaternion.RotateTowards(playerTransform.rotation, targetRotation, Time.deltaTime * _autoTargettingInstance.playerRotationSpeed); - } - } - } - } - else - { - yield break; - } - timeElapsed += Time.deltaTime; - yield return null; - } + // Optional: Trigger OnEndAnimation if needed, though most logic is now in the Coroutine } private void SnapLookTowardsAutoTarget() { if (_autoTargettingInstance == null || _autoTargettingInstance.CurrentTarget == null) return; - vFSMBehaviourController currentTarget = _autoTargettingInstance.CurrentTarget; - Transform playerTransform = transform; + Transform target = _autoTargettingInstance.CurrentTarget.transform; + Vector3 direction = target.position - transform.position; + direction.y = 0f; - float distSqr = (currentTarget.transform.position - playerTransform.position).sqrMagnitude; - if (distSqr > _autoTargettingInstance.maxTargetingDistance * _autoTargettingInstance.maxTargetingDistance) return; - - if (!_autoTargettingInstance.IsTargetInAngle(playerTransform, currentTarget, _autoTargettingInstance.targetingAngleThreshold)) return; - - Vector3 directionToTarget = currentTarget.transform.position - playerTransform.position; - directionToTarget.y = 0f; - - if (directionToTarget.sqrMagnitude > 0.0001f) + if (direction.sqrMagnitude > 0.001f) { - playerTransform.rotation = Quaternion.LookRotation(directionToTarget.normalized); + transform.rotation = Quaternion.LookRotation(direction.normalized); } } - private void AimFireball(GameObject fireballClone) + private void PlayNoFaithFeedback() { - Vector3 aimDirection = transform.forward; + if (!canPlayNoFaithClip) return; + + canPlayNoFaithClip = false; + + // Feedback + if (bItemCollectionDisplay.Instance != null) + bItemCollectionDisplay.Instance.FadeText("Not enough Faith", 4, 0.25f); + + if (Player.Instance != null) + Player.Instance.PlayNoFaithClip(); - if (_autoTargettingInstance != null && _autoTargettingInstance.CurrentTarget != null) + // Reset cooldown + DOVirtual.DelayedCall(1.5f, () => canPlayNoFaithClip = true); + } + + public void RegisterSpellDamageEvents(GameObject spellInstance, SpellDefinition spellDef) + { + if (spellInstance == null) return; + + // Find all damage components on the spawned object + var damageComps = spellInstance.GetComponentsInChildren(); + + foreach (var comp in damageComps) { - vFSMBehaviourController autoTarget = _autoTargettingInstance.CurrentTarget; - Transform playerTransform = transform; - - float distSqrToAutoTarget = (autoTarget.transform.position - playerTransform.position).sqrMagnitude; - - if (distSqrToAutoTarget <= _autoTargettingInstance.maxTargetingDistance * _autoTargettingInstance.maxTargetingDistance && - _autoTargettingInstance.IsTargetInAngle(playerTransform, autoTarget, _autoTargettingInstance.targetingAngleThreshold)) + // Invector's vObjectDamage event gives us the Collider directly + comp.onHit.AddListener((Collider hitCollider) => { - Vector3 targetPosition = autoTarget.transform.position; - targetPosition.y += fireballTargetYPositionOffset; - aimDirection = (targetPosition - fireballClone.transform.position).normalized; - } - } - - if (aimDirection == transform.forward && lockOn != null && lockOn.isLockingOn && lockOn.currentTarget != null) - { - Vector3 targetPosition = lockOn.currentTarget.position; - targetPosition.y += fireballTargetYPositionOffset; - aimDirection = (targetPosition - fireballClone.transform.position).normalized; - } - else if (aimDirection == transform.forward && lockOn != null) - { - List closeEnemies = lockOn.GetNearbyTargets(); - if (closeEnemies.Count > 0) - { - Transform bestFallbackTarget = null; - float minAngle = float.MaxValue; - - foreach (var enemyTransform in closeEnemies) - { - Vector3 directionToEnemyFromPlayer = (enemyTransform.position - transform.position).normalized; - float angleToEnemy = Vector3.Angle(transform.forward, directionToEnemyFromPlayer); - - if (Vector3.Dot(transform.forward, directionToEnemyFromPlayer) > fireballAimerThreshold) - { - if (angleToEnemy < minAngle) - { - minAngle = angleToEnemy; - bestFallbackTarget = enemyTransform; - } - } - } - if (bestFallbackTarget != null) - { - Vector3 targetPosition = bestFallbackTarget.position; - targetPosition.y += fireballTargetYPositionOffset; - aimDirection = (targetPosition - fireballClone.transform.position).normalized; - } - } - } - - Vector3 finalAimDirection = new Vector3(aimDirection.x, aimDirection.y + fireballAimerHeightAdjuster, aimDirection.z); - if (finalAimDirection.sqrMagnitude > 0.001f) - { - fireballClone.transform.rotation = Quaternion.LookRotation(finalAimDirection.normalized); + // Forward the event to anyone listening to MagicAttacks + OnSpellHit?.Invoke(spellDef, hitCollider); + }); } } - - private void EnableBrieflyFireballDamager(object sender, RFX4_PhysicsMotion.RFX4_CollisionInfo e) - { - RFX4_PhysicsMotion rFX4_PhysicsMotion = (RFX4_PhysicsMotion)sender; - CapsuleCollider collider = rFX4_PhysicsMotion.GetComponentInChildren(); - if (collider != null) StartCoroutine(EnableBrieflyFireballDamagerCoroutine(collider)); - } - - private IEnumerator EnableBrieflyFireballDamagerCoroutine(CapsuleCollider collider) - { - collider.enabled = true; - yield return new WaitForSeconds(fireballDamagerDuration); - collider.enabled = false; - } - - //placeholder for future methods related to magic attacks - /// - /// Spells call this to rotate the player before firing - /// - public IEnumerator RotateTowardsTargetRoutine(Transform target, float duration) - { - if (target == null || duration <= 0) yield break; - - float timer = 0f; - while (timer < duration) - { - if (target == null) yield break; - - Vector3 dir = (target.position - transform.position); - dir.y = 0; - if (dir.sqrMagnitude > 0.01f) - { - Quaternion look = Quaternion.LookRotation(dir); - transform.rotation = Quaternion.RotateTowards(transform.rotation, look, Time.deltaTime * 500f); // Fast rotation - } - timer += Time.deltaTime; - yield return null; - } - } - - /// - /// Helper to apply Trinket damage (Soulfire) to an object - /// - public void ApplyDamageModifiers(GameObject spellObject) - { - float mult = Player.Instance.CurrentTrinketStats.soulfireDamageMult; - if (Mathf.Abs(mult - 1f) < 0.01f) return; - - var damages = spellObject.GetComponentsInChildren(); - foreach (var d in damages) - { - d.damage.damageValue = Mathf.RoundToInt(d.damage.damageValue * mult); - } - } - - public bItem GetEquippedSpellItem() - { - if (powersArea != null && powersArea.equipSlots.Count > 0) - { - // Assuming the logic uses the current selection - // If powersArea tracks selection internally, use powersArea.currentEquippedItem - return powersArea.currentEquippedItem; - } - return null; - } - } } \ No newline at end of file diff --git a/Assets/Scripts/Characters/Skills/ProjectileSpell.cs b/Assets/Scripts/Characters/Skills/ProjectileSpell.cs index 9f231351d..68a8764be 100644 --- a/Assets/Scripts/Characters/Skills/ProjectileSpell.cs +++ b/Assets/Scripts/Characters/Skills/ProjectileSpell.cs @@ -4,14 +4,20 @@ using Invector; namespace Beyond { - [CreateAssetMenu(menuName = "Magic/Spells/Projectile Spell")] + [CreateAssetMenu(menuName = "Magic/Spells/Projectile (Fireball)")] public class ProjectileSpell : SpellDefinition { [Header("Projectile Settings")] public GameObject projectilePrefab; - public float spawnDelay = 0.2f; // Sync with animation hand throw - public float lifeTime = 5f; - public float aimHeightOffset = 1.0f; + public float spawnDelay = 0.2f; + public float lifeTime = 10f; + + [Header("Spawn Adjustments")] + [Tooltip("Position relative to Player Root. X=Right, Y=Up, Z=Forward.\nExample: (0, 1.5, 1.0) is Chest Height, 1m forward.")] + public Vector3 spawnOffset = new Vector3(0f, 1.5f, 1.0f); + + [Tooltip("Offset for aiming logic only. Usually slightly higher than the target's pivot.")] + public float aimHeightOffset = 0.75f; public override void Cast(MagicAttacks caster, Transform target) { @@ -23,21 +29,44 @@ namespace Beyond // 1. Rotate yield return caster.RotateTowardsTargetRoutine(target, rotationDuration); - // 2. Wait for animation point - yield return new WaitForSeconds(Mathf.Max(0, spawnDelay - rotationDuration)); + // 2. Wait + float remainingDelay = spawnDelay - rotationDuration; + if (remainingDelay > 0) yield return new WaitForSeconds(remainingDelay); + + // 3. Calculate Spawn Position (Relative to Player) + // TransformPoint converts local (Offset) to world space based on Player position/rotation + Vector3 spawnPos = caster.transform.TransformPoint(spawnOffset); + + // 4. Calculate Rotation (Aiming) + Quaternion spawnRot = caster.transform.rotation; // Default forward - // 3. Spawn - Vector3 spawnPos = caster.transform.position + caster.transform.forward + Vector3.up * 1.5f; - GameObject obj = Instantiate(projectilePrefab, spawnPos, caster.transform.rotation); - - // 4. Aim if (target != null) { - Vector3 aimDir = (target.position + Vector3.up * aimHeightOffset) - spawnPos; - obj.transform.rotation = Quaternion.LookRotation(aimDir); + Vector3 targetPos = target.position; + targetPos.y += aimHeightOffset; + Vector3 aimDir = (targetPos - spawnPos).normalized; + + // Slight arc adjustment + aimDir.y += 0.1f; + + if (aimDir.sqrMagnitude > 0.001f) + spawnRot = Quaternion.LookRotation(aimDir); } - // 5. Apply Modifiers + // 5. Instantiate + GameObject obj = Instantiate(projectilePrefab, spawnPos, spawnRot); + + // 6. Ignore Collision with Caster (Crucial!) + Collider projectileCollider = obj.GetComponentInChildren(); + Collider playerCollider = caster.GetComponent(); + + if (projectileCollider != null && playerCollider != null) + { + Physics.IgnoreCollision(projectileCollider, playerCollider); + } + + // 7. Register Events & Modifiers + caster.RegisterSpellDamageEvents(obj, this); caster.ApplyDamageModifiers(obj); Destroy(obj, lifeTime); diff --git a/Assets/Scripts/Characters/Skills/SpellDefinition.cs b/Assets/Scripts/Characters/Skills/SpellDefinition.cs index 92bcff338..01a202174 100644 --- a/Assets/Scripts/Characters/Skills/SpellDefinition.cs +++ b/Assets/Scripts/Characters/Skills/SpellDefinition.cs @@ -3,10 +3,18 @@ using Sirenix.OdinInspector; namespace Beyond { + public enum SpellCategory + { + Utility, + Defensive, + Offensive_Power, // Used for Shadow Slayer / Fireball logic + Offensive_Light + } public abstract class SpellDefinition : ScriptableObject { [Header("General Settings")] public string spellName; + public SpellCategory category; public string animationClipName; [TextArea] public string description; diff --git a/Assets/Scripts/Characters/Skills/Spell_PurifyingBlaze.asset b/Assets/Scripts/Characters/Skills/Spell_PurifyingBlaze.asset new file mode 100644 index 000000000..074c0315f --- /dev/null +++ b/Assets/Scripts/Characters/Skills/Spell_PurifyingBlaze.asset @@ -0,0 +1,27 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2fa1c233b63854f6d845066ccd8e48cd, type: 3} + m_Name: Spell_PurifyingBlaze + m_EditorClassIdentifier: + spellName: Purifying Blaze + category: 2 + animationClipName: FlameThrower + description: + baseFaithCost: 10 + castTime: 0.5 + rotationDuration: 1 + type: 2 + effectPrefab: {fileID: 4995691561355407686, guid: 336783fc6edf8e94186b6d9fd74effed, + type: 3} + preCastDelay: 0 + duration: 1.5 + postEndDelay: 0.1 diff --git a/Assets/Scripts/Characters/Skills/Spell_PurifyingBlaze.asset.meta b/Assets/Scripts/Characters/Skills/Spell_PurifyingBlaze.asset.meta new file mode 100644 index 000000000..d97735621 --- /dev/null +++ b/Assets/Scripts/Characters/Skills/Spell_PurifyingBlaze.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 314c562ab8abc4807882b972f2458352 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Characters/Skills/Spell_QuantumBlast.asset b/Assets/Scripts/Characters/Skills/Spell_QuantumBlast.asset index 3e8a4702f..895e48466 100644 --- a/Assets/Scripts/Characters/Skills/Spell_QuantumBlast.asset +++ b/Assets/Scripts/Characters/Skills/Spell_QuantumBlast.asset @@ -13,6 +13,7 @@ MonoBehaviour: m_Name: Spell_QuantumBlast m_EditorClassIdentifier: spellName: Quantum Blast + category: 2 animationClipName: MagicPush description: baseFaithCost: 10 diff --git a/Assets/Scripts/Characters/Skills/Spell_QuantumShield.asset b/Assets/Scripts/Characters/Skills/Spell_QuantumShield.asset index 061de8205..f27f8fbd6 100644 --- a/Assets/Scripts/Characters/Skills/Spell_QuantumShield.asset +++ b/Assets/Scripts/Characters/Skills/Spell_QuantumShield.asset @@ -13,6 +13,7 @@ MonoBehaviour: m_Name: Spell_QuantumShield m_EditorClassIdentifier: spellName: Quantum Shield + category: 1 animationClipName: Shield description: baseFaithCost: 10 diff --git a/Assets/Scripts/Characters/Skills/Spell_SparkOfJustice.asset b/Assets/Scripts/Characters/Skills/Spell_SparkOfJustice.asset index 0df8533d2..59992172e 100644 --- a/Assets/Scripts/Characters/Skills/Spell_SparkOfJustice.asset +++ b/Assets/Scripts/Characters/Skills/Spell_SparkOfJustice.asset @@ -13,6 +13,7 @@ MonoBehaviour: m_Name: Spell_SparkOfJustice m_EditorClassIdentifier: spellName: Spark of Justice + category: 2 animationClipName: Fireball description: baseFaithCost: 10 @@ -22,4 +23,5 @@ MonoBehaviour: type: 3} spawnDelay: 0.85 lifeTime: 10 + spawnOffset: {x: 0, y: 1.19, z: 1.35} aimHeightOffset: 0.75 diff --git a/Assets/Scripts/Effects/SpellActivator.cs b/Assets/Scripts/Effects/SpellActivator.cs index abb03c6a5..164331fbd 100644 --- a/Assets/Scripts/Effects/SpellActivator.cs +++ b/Assets/Scripts/Effects/SpellActivator.cs @@ -18,8 +18,9 @@ public class SpellActivator : MonoBehaviour if (!magicAttacks.isPlaying) { - magicAttacks.TryToPlaySpellAnimation(); - Debug.Log("executing:" + magicAttacks.m_selectedType); + //magicAttacks.TryToPlaySpellAnimation(); + //Debug.Log("executing:" + magicAttacks.m_selectedType); + Debug.LogError("!!not implemented!!!"); } } } \ No newline at end of file diff --git a/Assets/Scripts/InvectorDerivatives/ScriptableObjects/items.asset b/Assets/Scripts/InvectorDerivatives/ScriptableObjects/items.asset index ba1c64538..07680634e 100644 --- a/Assets/Scripts/InvectorDerivatives/ScriptableObjects/items.asset +++ b/Assets/Scripts/InvectorDerivatives/ScriptableObjects/items.asset @@ -794,7 +794,7 @@ MonoBehaviour: secondaryDescription: Not used if cant be used type: 11 trinketColor: 0 - spellDefinition: {fileID: 0} + spellDefinition: {fileID: 11400000, guid: 0baead00b71554981b1681361e85af78, type: 2} icon: {fileID: 0} secondaryIcon: {fileID: 0} teriaryIcon: {fileID: 0} @@ -849,7 +849,7 @@ MonoBehaviour: secondaryDescription: Not used if cant be used type: 20 trinketColor: 0 - spellDefinition: {fileID: 0} + spellDefinition: {fileID: 11400000, guid: 593b751fb37ef4e1693026f13ecfb5ff, type: 2} icon: {fileID: 0} secondaryIcon: {fileID: 0} teriaryIcon: {fileID: 0} @@ -1315,7 +1315,7 @@ MonoBehaviour: secondaryDescription: Not used if cant be used type: 20 trinketColor: 0 - spellDefinition: {fileID: 0} + spellDefinition: {fileID: 11400000, guid: 0baead00b71554981b1681361e85af78, type: 2} icon: {fileID: 0} secondaryIcon: {fileID: 0} teriaryIcon: {fileID: 0} @@ -1742,7 +1742,7 @@ MonoBehaviour: secondaryDescription: Not used if cant be used type: 20 trinketColor: 0 - spellDefinition: {fileID: 0} + spellDefinition: {fileID: 11400000, guid: dc808b91d3d2c4c53873cfe6fc9f0305, type: 2} icon: {fileID: 0} secondaryIcon: {fileID: 0} teriaryIcon: {fileID: 0} @@ -1799,7 +1799,7 @@ MonoBehaviour: secondaryDescription: Not used if cant be used type: 20 trinketColor: 0 - spellDefinition: {fileID: 0} + spellDefinition: {fileID: 11400000, guid: e97e46ee2bee6459aad693bfa6680277, type: 2} icon: {fileID: 0} secondaryIcon: {fileID: 0} teriaryIcon: {fileID: 0} @@ -1969,7 +1969,7 @@ MonoBehaviour: secondaryDescription: Not used if cant be used type: 11 trinketColor: 0 - spellDefinition: {fileID: 0} + spellDefinition: {fileID: 11400000, guid: dc808b91d3d2c4c53873cfe6fc9f0305, type: 2} icon: {fileID: 0} secondaryIcon: {fileID: 0} teriaryIcon: {fileID: 0} @@ -2216,7 +2216,7 @@ MonoBehaviour: secondaryDescription: Not used if cant be used type: 11 trinketColor: 0 - spellDefinition: {fileID: 0} + spellDefinition: {fileID: 11400000, guid: 51e2575f2639b4c1980f4d657aac4507, type: 2} icon: {fileID: 0} secondaryIcon: {fileID: 0} teriaryIcon: {fileID: 0} @@ -2568,7 +2568,7 @@ MonoBehaviour: secondaryDescription: Not used if cant be used type: 20 trinketColor: 0 - spellDefinition: {fileID: 0} + spellDefinition: {fileID: 11400000, guid: 51e2575f2639b4c1980f4d657aac4507, type: 2} icon: {fileID: 0} secondaryIcon: {fileID: 0} teriaryIcon: {fileID: 0} @@ -2973,7 +2973,7 @@ MonoBehaviour: - {fileID: -5307908156765189853} - {fileID: 6848363969753274938} - {fileID: 7127115710233842467} - inEdition: 1 + inEdition: 0 itemsHidden: 1 --- !u!114 &13007762861001616 MonoBehaviour: @@ -5059,7 +5059,7 @@ MonoBehaviour: secondaryDescription: Not used if cant be used type: 20 trinketColor: 0 - spellDefinition: {fileID: 0} + spellDefinition: {fileID: 11400000, guid: 314c562ab8abc4807882b972f2458352, type: 2} icon: {fileID: 0} secondaryIcon: {fileID: 0} teriaryIcon: {fileID: 0} @@ -5732,7 +5732,7 @@ MonoBehaviour: secondaryDescription: Not used if cant be used type: 11 trinketColor: 0 - spellDefinition: {fileID: 0} + spellDefinition: {fileID: 11400000, guid: e97e46ee2bee6459aad693bfa6680277, type: 2} icon: {fileID: 0} secondaryIcon: {fileID: 0} teriaryIcon: {fileID: 0} diff --git a/Assets/Scripts/InvectorDerivatives/bMeleeCombatInput.cs b/Assets/Scripts/InvectorDerivatives/bMeleeCombatInput.cs index 9d2b21a6c..94904a70f 100644 --- a/Assets/Scripts/InvectorDerivatives/bMeleeCombatInput.cs +++ b/Assets/Scripts/InvectorDerivatives/bMeleeCombatInput.cs @@ -459,7 +459,7 @@ namespace Beyond public virtual void OnReceiveAttack(vDamage damage, vIMeleeFighter attacker) { if (cc == null) return; - if (magicAttacks != null && magicAttacks.shieldEffectIsActive) return; + if (magicAttacks != null && magicAttacks.IsShieldActive) return; if (!damage.ignoreDefense && isBlocking && meleeManager != null && meleeManager.CanBlockAttack(damage.sender.position)) diff --git a/Assets/Scripts/Tutorial/QuantaCastStep.cs b/Assets/Scripts/Tutorial/QuantaCastStep.cs index 0bd48bd3d..e6e1de475 100644 --- a/Assets/Scripts/Tutorial/QuantaCastStep.cs +++ b/Assets/Scripts/Tutorial/QuantaCastStep.cs @@ -12,12 +12,19 @@ namespace Beyond // Start is called before the first frame update private void Start() { - baseStepController.ConditionsAreMet += () => magicAttacks.isPlaying; + // [FIX] magicAttacks.isPlaying is private. + // We check the animator directly for the "Spell" tag or state. + baseStepController.ConditionsAreMet += CheckIsPlaying; } - // Update is called once per frame - private void Update() + private bool CheckIsPlaying() { + var animator = magicAttacks.GetComponent(); + if (animator == null) return false; + + // Assuming layer 5 is spells (from your MagicAttacks constants) + var state = animator.GetCurrentAnimatorStateInfo(5); + return state.IsTag("Spell") || state.IsTag("special"); } } } \ No newline at end of file diff --git a/Assets/Scripts/Tutorial/UseCovertGazeStep.cs b/Assets/Scripts/Tutorial/UseCovertGazeStep.cs index 3d4681892..1bbd1f549 100644 --- a/Assets/Scripts/Tutorial/UseCovertGazeStep.cs +++ b/Assets/Scripts/Tutorial/UseCovertGazeStep.cs @@ -12,7 +12,12 @@ namespace Beyond // Start is called before the first frame update private void Start() { - baseStepController.ConditionsAreMet += () => magicAttacks.selectedEffect.secondaryName == "Covert Gaze "; + // [FIX] Checked the equipped item name instead of 'selectedEffect' + baseStepController.ConditionsAreMet += () => + { + var item = magicAttacks.GetEquippedSpellItem(); + return item != null && item.name.Contains("Covert Gaze"); + }; } } } \ No newline at end of file diff --git a/Assets/Scripts/UI/ItemButtonController.cs b/Assets/Scripts/UI/ItemButtonController.cs index 283470e76..7a51499e2 100644 --- a/Assets/Scripts/UI/ItemButtonController.cs +++ b/Assets/Scripts/UI/ItemButtonController.cs @@ -233,7 +233,16 @@ namespace Beyond { if (m_currentItem.type == bItemType.QuantaPower || m_currentItem.type == bItemType.PowerScroll) { - Player.Instance.Magic.SelectPowerBasedOnArea(currentIndex); + // --- FIX STARTS HERE --- + // Old logic: Player.Instance.Magic.SelectPowerBasedOnArea(currentIndex); + // New Logic: Directly tell the equipment area to select this slot. + // MagicAttacks automatically looks at whatever is equipped in this area. + if (equipArea != null) + { + equipArea.SetEquipSlot(currentIndex); + } + // --- FIX ENDS HERE --- + if (!InputNameToPress.IsNullOrWhitespace()) { CrossPlatformInputManager.SetButtonDown(InputNameToPress); @@ -263,5 +272,4 @@ namespace Beyond { isLocked = false; } } - -} +} \ No newline at end of file diff --git a/Assets/ThirdParty/CHARACTERS/Creature Bone Monster 3/Textures/Ghost_Demon.mat b/Assets/ThirdParty/CHARACTERS/Creature Bone Monster 3/Textures/Ghost_Demon.mat index fcf4d8392..55a7f87c2 100644 --- a/Assets/ThirdParty/CHARACTERS/Creature Bone Monster 3/Textures/Ghost_Demon.mat +++ b/Assets/ThirdParty/CHARACTERS/Creature Bone Monster 3/Textures/Ghost_Demon.mat @@ -35,7 +35,7 @@ Material: m_LightmapFlags: 2 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 1 - m_CustomRenderQueue: -1 + m_CustomRenderQueue: 2450 stringTagMap: RenderType: TransparentCutout disabledShaderPasses: diff --git a/Assets/ThirdParty/Invector-3rdPersonController/Melee Combat/3DModels/vMeleeWeapons/vShield/Materials/vShield_magic.mat b/Assets/ThirdParty/Invector-3rdPersonController/Melee Combat/3DModels/vMeleeWeapons/vShield/Materials/vShield_magic.mat index 64fe6cfbb..2cbd327fb 100644 --- a/Assets/ThirdParty/Invector-3rdPersonController/Melee Combat/3DModels/vMeleeWeapons/vShield/Materials/vShield_magic.mat +++ b/Assets/ThirdParty/Invector-3rdPersonController/Melee Combat/3DModels/vMeleeWeapons/vShield/Materials/vShield_magic.mat @@ -131,7 +131,7 @@ Material: - _Cutoff: 0.5 - _DetailNormalMapScale: 0.3 - _DstBlend: 10 - - _DstBlendAlpha: 0 + - _DstBlendAlpha: 10 - _EffectThreshold: 0.135 - _FadeDistance: 0 - _FarFadeDistance: 500 diff --git a/Packages/manifest.json b/Packages/manifest.json index 720da264d..3382c2440 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -2,13 +2,13 @@ "dependencies": { "com.coffee.softmask-for-ugui": "https://github.com/mob-sakai/SoftMaskForUGUI.git?path=Packages/src", "com.unity.ai.navigation": "2.0.9", - "com.unity.ide.visualstudio": "2.0.23", - "com.unity.localization": "1.5.5", - "com.unity.memoryprofiler": "1.1.8", + "com.unity.ide.visualstudio": "2.0.26", + "com.unity.localization": "1.5.8", + "com.unity.memoryprofiler": "1.1.9", "com.unity.multiplayer.center": "1.0.0", "com.unity.postprocessing": "3.5.0", "com.unity.render-pipelines.universal": "17.0.4", - "com.unity.timeline": "1.8.9", + "com.unity.timeline": "1.8.10", "com.unity.toolchain.win-x86_64-linux-x86_64": "2.0.11", "com.unity.visualeffectgraph": "17.0.4", "com.unity.modules.accessibility": "1.0.0", diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index f1177b67e..797155ac9 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -10,7 +10,7 @@ "hash": "02cf05485ac0bbd9f61e7b829dd6526db7c9dba5" }, "com.unity.addressables": { - "version": "2.7.2", + "version": "2.7.6", "depth": 1, "source": "registry", "dependencies": { @@ -20,7 +20,7 @@ "com.unity.modules.jsonserialize": "1.0.0", "com.unity.modules.imageconversion": "1.0.0", "com.unity.modules.unitywebrequest": "1.0.0", - "com.unity.scriptablebuildpipeline": "2.4.1", + "com.unity.scriptablebuildpipeline": "2.5.0", "com.unity.modules.unitywebrequestassetbundle": "1.0.0" }, "url": "https://packages.unity.com" @@ -35,7 +35,7 @@ "url": "https://packages.unity.com" }, "com.unity.burst": { - "version": "1.8.24", + "version": "1.8.27", "depth": 1, "source": "registry", "dependencies": { @@ -45,13 +45,14 @@ "url": "https://packages.unity.com" }, "com.unity.collections": { - "version": "2.5.1", + "version": "2.6.2", "depth": 1, "source": "registry", "dependencies": { - "com.unity.burst": "1.8.17", - "com.unity.test-framework": "1.4.5", - "com.unity.nuget.mono-cecil": "1.11.4", + "com.unity.burst": "1.8.23", + "com.unity.mathematics": "1.3.2", + "com.unity.test-framework": "1.4.6", + "com.unity.nuget.mono-cecil": "1.11.5", "com.unity.test-framework.performance": "3.0.3" }, "url": "https://packages.unity.com" @@ -70,16 +71,16 @@ "dependencies": {} }, "com.unity.ide.visualstudio": { - "version": "2.0.23", + "version": "2.0.26", "depth": 0, "source": "registry", "dependencies": { - "com.unity.test-framework": "1.1.9" + "com.unity.test-framework": "1.1.33" }, "url": "https://packages.unity.com" }, "com.unity.localization": { - "version": "1.5.5", + "version": "1.5.8", "depth": 0, "source": "registry", "dependencies": { @@ -96,7 +97,7 @@ "url": "https://packages.unity.com" }, "com.unity.memoryprofiler": { - "version": "1.1.8", + "version": "1.1.9", "depth": 0, "source": "registry", "dependencies": { @@ -117,7 +118,7 @@ } }, "com.unity.nuget.mono-cecil": { - "version": "1.11.4", + "version": "1.11.5", "depth": 2, "source": "registry", "dependencies": {}, @@ -190,7 +191,7 @@ } }, "com.unity.scriptablebuildpipeline": { - "version": "2.4.1", + "version": "2.5.0", "depth": 2, "source": "registry", "dependencies": { @@ -232,7 +233,7 @@ "url": "https://packages.unity.com" }, "com.unity.test-framework": { - "version": "1.5.1", + "version": "1.6.0", "depth": 1, "source": "builtin", "dependencies": { @@ -242,7 +243,7 @@ } }, "com.unity.test-framework.performance": { - "version": "3.1.0", + "version": "3.2.0", "depth": 2, "source": "registry", "dependencies": { @@ -252,7 +253,7 @@ "url": "https://packages.unity.com" }, "com.unity.timeline": { - "version": "1.8.9", + "version": "1.8.10", "depth": 0, "source": "registry", "dependencies": { diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index ce282075b..cdf56798d 100644 --- a/ProjectSettings/ProjectSettings.asset +++ b/ProjectSettings/ProjectSettings.asset @@ -70,6 +70,7 @@ PlayerSettings: androidStartInFullscreen: 1 androidRenderOutsideSafeArea: 0 androidUseSwappy: 0 + androidDisplayOptions: 1 androidBlitType: 1 androidResizeableActivity: 0 androidDefaultWindowWidth: 1920 @@ -850,7 +851,7 @@ PlayerSettings: webWasm2023: 0 scriptingDefineSymbols: : UNITY_POST_PROCESSING_STACK_V2 - Android: UNITY_POST_PROCESSING_STACK_V2;CROSS_PLATFORM_INPUT;USE_TIMELINE;USE_NEW_INPUT;PLAYMAKER;PLAYMAKER_1_9;PLAYMAKER_1_9_0;PLAYMAKER_1_8_OR_NEWER;PLAYMAKER_1_8_5_OR_NEWER;PLAYMAKER_1_9_OR_NEWER;TMP_PRESENT;ENEMIES_DISABLED + Android: UNITY_POST_PROCESSING_STACK_V2;CROSS_PLATFORM_INPUT;USE_TIMELINE;USE_NEW_INPUT;PLAYMAKER;PLAYMAKER_1_9;PLAYMAKER_1_9_0;PLAYMAKER_1_8_OR_NEWER;PLAYMAKER_1_8_5_OR_NEWER;PLAYMAKER_1_9_OR_NEWER;TMP_PRESENT;ENEMIES_DISABLED;MOBILE_INPUT CloudRendering: UNITY_POST_PROCESSING_STACK_V2;PLAYMAKER;PLAYMAKER_1_9;PLAYMAKER_1_9_0;PLAYMAKER_1_8_OR_NEWER;PLAYMAKER_1_8_5_OR_NEWER;PLAYMAKER_1_9_OR_NEWER EmbeddedLinux: UNITY_POST_PROCESSING_STACK_V2;PLAYMAKER;PLAYMAKER_1_9;PLAYMAKER_1_9_0;PLAYMAKER_1_8_OR_NEWER;PLAYMAKER_1_8_5_OR_NEWER;PLAYMAKER_1_9_OR_NEWER GameCoreScarlett: UNITY_POST_PROCESSING_STACK_V2;PLAYMAKER;PLAYMAKER_1_9;PLAYMAKER_1_9_0;PLAYMAKER_1_8_OR_NEWER;PLAYMAKER_1_8_5_OR_NEWER;PLAYMAKER_1_9_OR_NEWER @@ -868,9 +869,9 @@ PlayerSettings: Standalone: UNITY_POST_PROCESSING_STACK_V2;CROSS_PLATFORM_INPUT;INVECTOR_BASIC;INVECTOR_MELEE;TOUCH_REACT;GAIA_2_PRESENT;INVECTOR_AI_TEMPLATE;UPPipeline;PLAYMAKER;PLAYMAKER_1_9;PLAYMAKER_1_9_0;PLAYMAKER_1_8_OR_NEWER;PLAYMAKER_1_8_5_OR_NEWER;PLAYMAKER_1_9_OR_NEWER;URP_OUTLINE;ODIN_INSPECTOR;ODIN_INSPECTOR_3;TMP_PRESENT;USE_TIMELINE;ODIN_INSPECTOR_3_1;ODIN_INSPECTOR_3_2;ODIN_INSPECTOR_3_3;ENEMIES_DISABLED VisionOS: UNITY_POST_PROCESSING_STACK_V2;PLAYMAKER;PLAYMAKER_1_9;PLAYMAKER_1_9_0;PLAYMAKER_1_8_OR_NEWER;PLAYMAKER_1_8_5_OR_NEWER;PLAYMAKER_1_9_OR_NEWER WebGL: UNITY_POST_PROCESSING_STACK_V2;PLAYMAKER;PLAYMAKER_1_9;PLAYMAKER_1_9_0;PLAYMAKER_1_8_OR_NEWER;PLAYMAKER_1_8_5_OR_NEWER;PLAYMAKER_1_9_OR_NEWER - Windows Store Apps: UNITY_POST_PROCESSING_STACK_V2;CROSS_PLATFORM_INPUT;PLAYMAKER;PLAYMAKER_1_9;PLAYMAKER_1_9_0;PLAYMAKER_1_8_OR_NEWER;PLAYMAKER_1_8_5_OR_NEWER;PLAYMAKER_1_9_OR_NEWER + Windows Store Apps: UNITY_POST_PROCESSING_STACK_V2;CROSS_PLATFORM_INPUT;PLAYMAKER;PLAYMAKER_1_9;PLAYMAKER_1_9_0;PLAYMAKER_1_8_OR_NEWER;PLAYMAKER_1_8_5_OR_NEWER;PLAYMAKER_1_9_OR_NEWER;MOBILE_INPUT XboxOne: UNITY_POST_PROCESSING_STACK_V2;PLAYMAKER;PLAYMAKER_1_9;PLAYMAKER_1_9_0;PLAYMAKER_1_8_OR_NEWER;PLAYMAKER_1_8_5_OR_NEWER;PLAYMAKER_1_9_OR_NEWER - iPhone: CROSS_PLATFORM_INPUT;INVECTOR_BASIC;INVECTOR_MELEE;GAIA_2_PRESENT;GAIA_PRO_PRESENT;UPPipeline;UNITY_POST_PROCESSING_STACK_V2;TOUCH_REACT;INVECTOR_AI_TEMPLATE;PLAYMAKER;PLAYMAKER_1_9;PLAYMAKER_1_9_0;PLAYMAKER_1_8_OR_NEWER;PLAYMAKER_1_8_5_OR_NEWER;PLAYMAKER_1_9_OR_NEWER;URP_OUTLINE;ODIN_INSPECTOR;ODIN_INSPECTOR_3;TMP_PRESENT;USE_INVECTOR_INVENTORY;USE_TIMELINE;ODIN_INSPECTOR_3_1;ODIN_INSPECTOR_3_2;ODIN_INSPECTOR_3_3;ENEMIES_DISABLED + iPhone: CROSS_PLATFORM_INPUT;INVECTOR_BASIC;INVECTOR_MELEE;GAIA_2_PRESENT;GAIA_PRO_PRESENT;UPPipeline;UNITY_POST_PROCESSING_STACK_V2;TOUCH_REACT;INVECTOR_AI_TEMPLATE;PLAYMAKER;PLAYMAKER_1_9;PLAYMAKER_1_9_0;PLAYMAKER_1_8_OR_NEWER;PLAYMAKER_1_8_5_OR_NEWER;PLAYMAKER_1_9_OR_NEWER;URP_OUTLINE;ODIN_INSPECTOR;ODIN_INSPECTOR_3;TMP_PRESENT;USE_INVECTOR_INVENTORY;USE_TIMELINE;ODIN_INSPECTOR_3_1;ODIN_INSPECTOR_3_2;ODIN_INSPECTOR_3_3;ENEMIES_DISABLED;MOBILE_INPUT tvOS: UNITY_POST_PROCESSING_STACK_V2;PLAYMAKER;PLAYMAKER_1_9;PLAYMAKER_1_9_0;PLAYMAKER_1_8_OR_NEWER;PLAYMAKER_1_8_5_OR_NEWER;PLAYMAKER_1_9_OR_NEWER additionalCompilerArguments: {} platformArchitecture: {} diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt index 0faef8df9..65faae634 100644 --- a/ProjectSettings/ProjectVersion.txt +++ b/ProjectSettings/ProjectVersion.txt @@ -1,2 +1,2 @@ -m_EditorVersion: 6000.0.58f2 -m_EditorVersionWithRevision: 6000.0.58f2 (92dee566b325) +m_EditorVersion: 6000.0.65f1 +m_EditorVersionWithRevision: 6000.0.65f1 (a18e2220bd50)