Compare commits
2 Commits
3406b6bfc8
...
00b86fa97c
Author | SHA1 | Date | |
---|---|---|---|
00b86fa97c | |||
226eae666e |
@ -597,97 +597,97 @@ AnimatorController:
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 0}
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: throw
|
||||
m_Type: 9
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 0}
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: throwingTime
|
||||
m_Type: 1
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 0}
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: castingTime
|
||||
m_Type: 1
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 0}
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: cast
|
||||
m_Type: 9
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 0}
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: melee
|
||||
m_Type: 9
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 0}
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: spinning
|
||||
m_Type: 4
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 0}
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: dead
|
||||
m_Type: 9
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 0}
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: revived
|
||||
m_Type: 9
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 0}
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: summon
|
||||
m_Type: 9
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 0}
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: fish
|
||||
m_Type: 9
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 0}
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: pickup
|
||||
m_Type: 9
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 0}
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: potion
|
||||
m_Type: 9
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 0}
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: spellcasting
|
||||
m_Type: 4
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 0}
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: HorizontalAxis
|
||||
m_Type: 1
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 0}
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: VerticalAxis
|
||||
m_Type: 1
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 0}
|
||||
m_Controller: {fileID: 9100000}
|
||||
m_AnimatorLayers:
|
||||
- serializedVersion: 5
|
||||
m_Name: Base Layer
|
||||
@ -971,7 +971,7 @@ BlendTree:
|
||||
m_Motion: {fileID: -6411013857362534180, guid: e1e4fb5684939bb479c83e16bac91038, type: 3}
|
||||
m_Threshold: 1
|
||||
m_Position: {x: 0, y: -1}
|
||||
m_TimeScale: 1
|
||||
m_TimeScale: 1.4
|
||||
m_CycleOffset: 0
|
||||
m_DirectBlendParameter: movementSpeed
|
||||
m_Mirror: 0
|
||||
|
@ -69,6 +69,33 @@ AnimatorStateTransition:
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1102 &-7094606454041514897
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: GetHit
|
||||
m_Speed: 1
|
||||
m_CycleOffset: 0
|
||||
m_Transitions:
|
||||
- {fileID: 7935996317807482022}
|
||||
m_StateMachineBehaviours: []
|
||||
m_Position: {x: 50, y: 50, z: 0}
|
||||
m_IKOnFeet: 0
|
||||
m_WriteDefaultValues: 1
|
||||
m_Mirror: 0
|
||||
m_SpeedParameterActive: 0
|
||||
m_MirrorParameterActive: 0
|
||||
m_CycleOffsetParameterActive: 0
|
||||
m_TimeParameterActive: 0
|
||||
m_Motion: {fileID: 7400000, guid: 44db4b4bd52c40b4bae8350833cc9921, type: 2}
|
||||
m_Tag:
|
||||
m_SpeedParameter:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1101 &-6583358953875725460
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
@ -140,12 +167,16 @@ AnimatorStateMachine:
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: 8488278609978172101}
|
||||
m_Position: {x: 270, y: 110, z: 0}
|
||||
- serializedVersion: 1
|
||||
m_State: {fileID: -7094606454041514897}
|
||||
m_Position: {x: 270, y: 180, z: 0}
|
||||
m_ChildStateMachines: []
|
||||
m_AnyStateTransitions:
|
||||
- {fileID: -4261361684640507111}
|
||||
- {fileID: -6583358953875725460}
|
||||
- {fileID: -3316037427580542980}
|
||||
- {fileID: -8898158581012930404}
|
||||
- {fileID: -4261361684640507111}
|
||||
- {fileID: -961885149527338363}
|
||||
m_EntryTransitions: []
|
||||
m_StateMachineTransitions: {}
|
||||
m_StateMachineBehaviours: []
|
||||
@ -323,13 +354,38 @@ AnimatorStateTransition:
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1101 &-961885149527338363
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions:
|
||||
- m_ConditionMode: 1
|
||||
m_ConditionEvent: hurt
|
||||
m_EventTreshold: 0
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: -7094606454041514897}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.025
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.75
|
||||
m_HasExitTime: 0
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!91 &9100000
|
||||
AnimatorController:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: Skeleton
|
||||
m_Name: Skeleton_Enemy
|
||||
serializedVersion: 5
|
||||
m_AnimatorParameters:
|
||||
- m_Name: movementSpeed
|
||||
@ -337,37 +393,43 @@ AnimatorController:
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 0}
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: throw
|
||||
m_Type: 9
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 0}
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: cast
|
||||
m_Type: 9
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 0}
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: melee
|
||||
m_Type: 9
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 0}
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: throwingTime
|
||||
m_Type: 1
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 0}
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: dead
|
||||
m_Type: 9
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 0}
|
||||
m_Controller: {fileID: 9100000}
|
||||
- m_Name: hurt
|
||||
m_Type: 9
|
||||
m_DefaultFloat: 0
|
||||
m_DefaultInt: 0
|
||||
m_DefaultBool: 0
|
||||
m_Controller: {fileID: 9100000}
|
||||
m_AnimatorLayers:
|
||||
- serializedVersion: 5
|
||||
m_Name: Base Layer
|
||||
@ -488,6 +550,28 @@ AnimatorState:
|
||||
m_MirrorParameter:
|
||||
m_CycleOffsetParameter:
|
||||
m_TimeParameter:
|
||||
--- !u!1101 &7935996317807482022
|
||||
AnimatorStateTransition:
|
||||
m_ObjectHideFlags: 1
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name:
|
||||
m_Conditions: []
|
||||
m_DstStateMachine: {fileID: 0}
|
||||
m_DstState: {fileID: -2563821287706019269}
|
||||
m_Solo: 0
|
||||
m_Mute: 0
|
||||
m_IsExit: 0
|
||||
serializedVersion: 3
|
||||
m_TransitionDuration: 0.2
|
||||
m_TransitionOffset: 0
|
||||
m_ExitTime: 0.8
|
||||
m_HasExitTime: 1
|
||||
m_HasFixedDuration: 1
|
||||
m_InterruptionSource: 0
|
||||
m_OrderedInterruption: 1
|
||||
m_CanTransitionToSelf: 1
|
||||
--- !u!1102 &8488278609978172101
|
||||
AnimatorState:
|
||||
serializedVersion: 6
|
21040
Assets/1-Packs/3D/CharactersPack/Models/GetHit.anim
Normal file
21040
Assets/1-Packs/3D/CharactersPack/Models/GetHit.anim
Normal file
File diff suppressed because it is too large
Load Diff
8
Assets/1-Packs/3D/CharactersPack/Models/GetHit.anim.meta
Normal file
8
Assets/1-Packs/3D/CharactersPack/Models/GetHit.anim.meta
Normal file
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 44db4b4bd52c40b4bae8350833cc9921
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 7400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -1548,7 +1548,7 @@ Canvas:
|
||||
m_AdditionalShaderChannelsFlag: 25
|
||||
m_UpdateRectTransformForStandalone: 0
|
||||
m_SortingLayerID: 0
|
||||
m_SortingOrder: 0
|
||||
m_SortingOrder: 5
|
||||
m_TargetDisplay: 0
|
||||
--- !u!114 &6787032289279707503
|
||||
MonoBehaviour:
|
||||
@ -8386,10 +8386,10 @@ MonoBehaviour:
|
||||
- characterClass: {fileID: 11400000, guid: 504738889b9f3b14596e37f7bba80fbf, type: 2}
|
||||
possibleClassAbilities:
|
||||
- {fileID: 11400000, guid: db19571a96c2e6147a60a49bb343e08d, type: 2}
|
||||
- {fileID: 11400000, guid: f78ff85297eeec34a941affb095f27f4, type: 2}
|
||||
- {fileID: 11400000, guid: fe98f38f1a3841844a391b5ff4637669, type: 2}
|
||||
- {fileID: 11400000, guid: da1fbcda369605140b8241d12c165bc4, type: 2}
|
||||
- {fileID: 11400000, guid: b696826a7a31a58409292d48c32f862e, type: 2}
|
||||
- {fileID: 11400000, guid: da1fbcda369605140b8241d12c165bc4, type: 2}
|
||||
- {fileID: 11400000, guid: f78ff85297eeec34a941affb095f27f4, type: 2}
|
||||
- {fileID: 11400000, guid: 093abebde2ce57648bc676fdedcdd026, type: 2}
|
||||
- characterClass: {fileID: 11400000, guid: 8dffc501620b33a45b2aef5527d400bf, type: 2}
|
||||
possibleClassAbilities:
|
||||
@ -8418,10 +8418,10 @@ MonoBehaviour:
|
||||
- characterClass: {fileID: 11400000, guid: 0a3bb425d50c35b409b74a648c994aac, type: 2}
|
||||
possibleClassAbilities:
|
||||
- {fileID: 11400000, guid: 41ce9d138621d414787fd48998b3ad0d, type: 2}
|
||||
- {fileID: 11400000, guid: 65d6401bb544f4a4faa3169cde9d9bd0, type: 2}
|
||||
- {fileID: 11400000, guid: 80407ff808963814798f148b07dbf576, type: 2}
|
||||
- {fileID: 11400000, guid: f2c34fbff4781f84aa75dcc83f2fe57b, type: 2}
|
||||
- {fileID: 11400000, guid: 3cab0af73858e9e48936aa83ba32d041, type: 2}
|
||||
- {fileID: 11400000, guid: f2c34fbff4781f84aa75dcc83f2fe57b, type: 2}
|
||||
- {fileID: 11400000, guid: 65d6401bb544f4a4faa3169cde9d9bd0, type: 2}
|
||||
- {fileID: 11400000, guid: 445df66fd514f9640b3f2f228a7b4aee, type: 2}
|
||||
- characterClass: {fileID: 11400000, guid: 334f27400a4a01e4caceed2c6b63bee9, type: 2}
|
||||
possibleClassAbilities:
|
||||
@ -8438,7 +8438,6 @@ MonoBehaviour:
|
||||
- characterClass: {fileID: 11400000, guid: 292f720fb1a62f44c9d54c8ab56bc660, type: 2}
|
||||
possibleClassAbilities:
|
||||
- {fileID: 11400000, guid: 8476123513cabfe4c92edb83943222dd, type: 2}
|
||||
- {fileID: 11400000, guid: fb2829af881bafe4aa4561c2c8edb0fa, type: 2}
|
||||
- {fileID: 11400000, guid: 2b0bbebd842f1d94db336642767e1062, type: 2}
|
||||
- {fileID: 11400000, guid: 3b796291bbf82db4c80fe16058fa90af, type: 2}
|
||||
abilityTomeInstances: []
|
||||
@ -14591,6 +14590,7 @@ Transform:
|
||||
- {fileID: 7624448236951792051}
|
||||
- {fileID: 2491171992559046387}
|
||||
- {fileID: 4313186750705857994}
|
||||
- {fileID: 3475843492364284939}
|
||||
- {fileID: 7475116341184709870}
|
||||
- {fileID: 7475116340900335231}
|
||||
- {fileID: 7475116342680308986}
|
||||
@ -14619,7 +14619,6 @@ Transform:
|
||||
- {fileID: 882613633191811684}
|
||||
- {fileID: 8612537344861635202}
|
||||
- {fileID: 2447033682763886562}
|
||||
- {fileID: 3475843492364284939}
|
||||
- {fileID: 1380778743}
|
||||
- {fileID: 315999698282489082}
|
||||
- {fileID: 2800905167933415666}
|
||||
|
@ -78,7 +78,7 @@ Material:
|
||||
- _Mode: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.02
|
||||
- _Rotation: 6.6876717
|
||||
- _Rotation: 7.162766
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
|
@ -154,15 +154,15 @@ PrefabInstance:
|
||||
- {fileID: 0}
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects:
|
||||
- targetCorrespondingSourceObject: {fileID: 753911528859556810, guid: bc291c869c1aa9744be1f56806b8c99d, type: 3}
|
||||
insertIndex: 0
|
||||
addedObject: {fileID: 3493041237720686549}
|
||||
- targetCorrespondingSourceObject: {fileID: 6879643804943630511, guid: bc291c869c1aa9744be1f56806b8c99d, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 1412395578695396342}
|
||||
- targetCorrespondingSourceObject: {fileID: 6879643804943630511, guid: bc291c869c1aa9744be1f56806b8c99d, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 7704311964326511036}
|
||||
- targetCorrespondingSourceObject: {fileID: 6879643804943630511, guid: bc291c869c1aa9744be1f56806b8c99d, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 3493041237720686549}
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: bc291c869c1aa9744be1f56806b8c99d, type: 3}
|
||||
--- !u!4 &2208739293571583667 stripped
|
||||
@ -170,18 +170,13 @@ Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 6879643804943630511, guid: bc291c869c1aa9744be1f56806b8c99d, type: 3}
|
||||
m_PrefabInstance: {fileID: 4746340150876425756}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!4 &5451622410603664854 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 753911528859556810, guid: bc291c869c1aa9744be1f56806b8c99d, type: 3}
|
||||
m_PrefabInstance: {fileID: 4746340150876425756}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1001 &5043479866987318434
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 5451622410603664854}
|
||||
m_TransformParent: {fileID: 2208739293571583667}
|
||||
m_Modifications:
|
||||
- target: {fileID: 1082793402966804016, guid: 7bbfd7a02f9b04a4db92a1a374338fb1, type: 3}
|
||||
propertyPath: m_Name
|
||||
@ -229,15 +224,15 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8468962234435687287, guid: 7bbfd7a02f9b04a4db92a1a374338fb1, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8468962234435687287, guid: 7bbfd7a02f9b04a4db92a1a374338fb1, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8468962234435687287, guid: 7bbfd7a02f9b04a4db92a1a374338fb1, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8468962234435687287, guid: 7bbfd7a02f9b04a4db92a1a374338fb1, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
|
@ -252,7 +252,6 @@ Transform:
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 7192171109981835468}
|
||||
- {fileID: 7681102452339790675}
|
||||
- {fileID: 6975521718323349822}
|
||||
- {fileID: 3238356846573237868}
|
||||
@ -394,6 +393,7 @@ Transform:
|
||||
m_Children:
|
||||
- {fileID: 2650017693601061829}
|
||||
- {fileID: 7910058261851551780}
|
||||
- {fileID: 7192171109981835468}
|
||||
m_Father: {fileID: 7681102451873883168}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &7681102452339790700
|
||||
@ -528,7 +528,7 @@ PrefabInstance:
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 7681102451873883168}
|
||||
m_TransformParent: {fileID: 7681102452339790675}
|
||||
m_Modifications:
|
||||
- target: {fileID: 548295500233825645, guid: 7bbfd7a02f9b04a4db92a1a374338fb1, type: 3}
|
||||
propertyPath: m_Volume
|
||||
@ -562,6 +562,18 @@ PrefabInstance:
|
||||
propertyPath: clips.Array.data[4]
|
||||
value:
|
||||
objectReference: {fileID: 8300000, guid: edb6eaaf36222f9429a9b2214ec69ad0, type: 3}
|
||||
- target: {fileID: 8468962234435687287, guid: 7bbfd7a02f9b04a4db92a1a374338fb1, type: 3}
|
||||
propertyPath: m_LocalScale.x
|
||||
value: 1.6666665
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8468962234435687287, guid: 7bbfd7a02f9b04a4db92a1a374338fb1, type: 3}
|
||||
propertyPath: m_LocalScale.y
|
||||
value: 1.6666665
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8468962234435687287, guid: 7bbfd7a02f9b04a4db92a1a374338fb1, type: 3}
|
||||
propertyPath: m_LocalScale.z
|
||||
value: 1.6666665
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8468962234435687287, guid: 7bbfd7a02f9b04a4db92a1a374338fb1, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
@ -580,15 +592,15 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8468962234435687287, guid: 7bbfd7a02f9b04a4db92a1a374338fb1, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8468962234435687287, guid: 7bbfd7a02f9b04a4db92a1a374338fb1, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8468962234435687287, guid: 7bbfd7a02f9b04a4db92a1a374338fb1, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8468962234435687287, guid: 7bbfd7a02f9b04a4db92a1a374338fb1, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
|
@ -660,7 +660,7 @@ PrefabInstance:
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 5286231604687820133}
|
||||
m_TransformParent: {fileID: 2041114413699911168}
|
||||
m_Modifications:
|
||||
- target: {fileID: 1082793402966804016, guid: 7bbfd7a02f9b04a4db92a1a374338fb1, type: 3}
|
||||
propertyPath: m_Name
|
||||
@ -708,15 +708,15 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8468962234435687287, guid: 7bbfd7a02f9b04a4db92a1a374338fb1, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8468962234435687287, guid: 7bbfd7a02f9b04a4db92a1a374338fb1, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8468962234435687287, guid: 7bbfd7a02f9b04a4db92a1a374338fb1, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8468962234435687287, guid: 7bbfd7a02f9b04a4db92a1a374338fb1, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
@ -796,19 +796,23 @@ PrefabInstance:
|
||||
propertyPath: m_Name
|
||||
value: WhirlingAxes_AreaOfEffectOverTimePrefab Variant
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 753911528859556823, guid: bc291c869c1aa9744be1f56806b8c99d, type: 3}
|
||||
propertyPath: impactHitVFX
|
||||
value:
|
||||
objectReference: {fileID: 8525990746615576120, guid: b85d21f3b8fed714bacf0c4fd50fa512, type: 3}
|
||||
m_RemovedComponents:
|
||||
- {fileID: 0}
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects:
|
||||
- targetCorrespondingSourceObject: {fileID: 753911528859556810, guid: bc291c869c1aa9744be1f56806b8c99d, type: 3}
|
||||
insertIndex: 0
|
||||
addedObject: {fileID: 5263841305740460681}
|
||||
- targetCorrespondingSourceObject: {fileID: 753911528859556810, guid: bc291c869c1aa9744be1f56806b8c99d, type: 3}
|
||||
insertIndex: 1
|
||||
addedObject: {fileID: 3223532084018813462}
|
||||
- targetCorrespondingSourceObject: {fileID: 6879643804943630511, guid: bc291c869c1aa9744be1f56806b8c99d, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 1010363569}
|
||||
- targetCorrespondingSourceObject: {fileID: 6879643804943630511, guid: bc291c869c1aa9744be1f56806b8c99d, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 5263841305740460681}
|
||||
- targetCorrespondingSourceObject: {fileID: 6879643804943630511, guid: bc291c869c1aa9744be1f56806b8c99d, type: 3}
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 3223532084018813462}
|
||||
m_AddedComponents: []
|
||||
m_SourcePrefab: {fileID: 100100000, guid: bc291c869c1aa9744be1f56806b8c99d, type: 3}
|
||||
--- !u!4 &2041114413699911168 stripped
|
||||
@ -816,18 +820,13 @@ Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 6879643804943630511, guid: bc291c869c1aa9744be1f56806b8c99d, type: 3}
|
||||
m_PrefabInstance: {fileID: 4839708415601315503}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!4 &5286231604687820133 stripped
|
||||
Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 753911528859556810, guid: bc291c869c1aa9744be1f56806b8c99d, type: 3}
|
||||
m_PrefabInstance: {fileID: 4839708415601315503}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1001 &6429879204983654753
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Modification:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 5286231604687820133}
|
||||
m_TransformParent: {fileID: 2041114413699911168}
|
||||
m_Modifications:
|
||||
- target: {fileID: 1082793402966804016, guid: 7bbfd7a02f9b04a4db92a1a374338fb1, type: 3}
|
||||
propertyPath: m_Name
|
||||
@ -875,15 +874,15 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8468962234435687287, guid: 7bbfd7a02f9b04a4db92a1a374338fb1, type: 3}
|
||||
propertyPath: m_LocalRotation.x
|
||||
value: 0
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8468962234435687287, guid: 7bbfd7a02f9b04a4db92a1a374338fb1, type: 3}
|
||||
propertyPath: m_LocalRotation.y
|
||||
value: 0
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8468962234435687287, guid: 7bbfd7a02f9b04a4db92a1a374338fb1, type: 3}
|
||||
propertyPath: m_LocalRotation.z
|
||||
value: 0
|
||||
value: -0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8468962234435687287, guid: 7bbfd7a02f9b04a4db92a1a374338fb1, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
|
@ -12,6 +12,7 @@ GameObject:
|
||||
- component: {fileID: 5690275390890447421}
|
||||
- component: {fileID: 6283201126310809669}
|
||||
- component: {fileID: 4146203122506230047}
|
||||
- component: {fileID: 8578451915293256687}
|
||||
m_Layer: 31
|
||||
m_Name: Skeleton
|
||||
m_TagString: Untagged
|
||||
@ -90,6 +91,33 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: f965d6ce9b8ab3942a0f66c008c8a99c, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
onHurtAnimation:
|
||||
m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 8578451915293256687}
|
||||
m_TargetAssemblyTypeName: HitFlashEffect, Assembly-CSharp
|
||||
m_MethodName: Flash
|
||||
m_Mode: 4
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0.2
|
||||
m_StringArgument:
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
--- !u!114 &8578451915293256687
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1395015452859667197}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 4242ef877b68dd04dafd9ddc4999e5cb, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!1 &2278116590711127943
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -114,7 +114,7 @@ Transform:
|
||||
m_Children:
|
||||
- {fileID: 883701297}
|
||||
m_Father: {fileID: 4854261591842771834}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_LocalEulerAnglesHint: {x: -0.000031646465, y: 0.000034150955, z: 0.000007698198}
|
||||
--- !u!1 &208040796
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -404,7 +404,7 @@ Transform:
|
||||
- {fileID: 1221614091}
|
||||
- {fileID: 758373147}
|
||||
m_Father: {fileID: 191844203}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_LocalEulerAnglesHint: {x: -15.72, y: -1.3199889e-15, z: -1.6760567e-15}
|
||||
--- !u!1 &998603998
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -688,7 +688,7 @@ Transform:
|
||||
- {fileID: 1067042226}
|
||||
- {fileID: 1812623856}
|
||||
m_Father: {fileID: 883701297}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_LocalEulerAnglesHint: {x: -28.16005, y: 90.00001, z: 180}
|
||||
--- !u!1 &1117225124
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -940,7 +940,7 @@ Transform:
|
||||
- {fileID: 208040797}
|
||||
- {fileID: 2107868437}
|
||||
m_Father: {fileID: 883701297}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_LocalEulerAnglesHint: {x: 20.865005, y: 65.928215, z: 135.9008}
|
||||
--- !u!1 &1607996522
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -971,7 +971,7 @@ Transform:
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1430684330}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_LocalEulerAnglesHint: {x: 61.839962, y: -179.99997, z: 90.00001}
|
||||
--- !u!1 &1667623043
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -1143,7 +1143,9 @@ SkinnedMeshRenderer:
|
||||
m_SkinnedMotionVectors: 1
|
||||
m_Mesh: {fileID: 3418091426015535786, guid: c17378c69fdabda48a14e675c35d4546, type: 3}
|
||||
m_Bones: []
|
||||
m_BlendShapeWeights: []
|
||||
m_BlendShapeWeights:
|
||||
- 0
|
||||
- 0
|
||||
m_RootBone: {fileID: 0}
|
||||
m_AABB:
|
||||
m_Center: {x: 0.0023401976, y: 0.53248715, z: -0.01192829}
|
||||
@ -1264,7 +1266,7 @@ Transform:
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1108935090}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_LocalEulerAnglesHint: {x: 23.291727, y: 65.57953, z: -30.859875}
|
||||
--- !u!1 &2037200327
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -1381,7 +1383,7 @@ Transform:
|
||||
- {fileID: 1772013479}
|
||||
- {fileID: 1401882046}
|
||||
m_Father: {fileID: 883701297}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_LocalEulerAnglesHint: {x: 15.457293, y: 4.774398e-16, z: 3.5179733e-15}
|
||||
--- !u!1 &2107868436
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -12,6 +12,7 @@ GameObject:
|
||||
- component: {fileID: 6853293170635492090}
|
||||
- component: {fileID: 5106598912658884738}
|
||||
- component: {fileID: 719420356144337027}
|
||||
- component: {fileID: 214227269696773679}
|
||||
m_Layer: 31
|
||||
m_Name: Skeleton
|
||||
m_TagString: Untagged
|
||||
@ -90,6 +91,33 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: f965d6ce9b8ab3942a0f66c008c8a99c, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
onHurtAnimation:
|
||||
m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 214227269696773679}
|
||||
m_TargetAssemblyTypeName: HitFlashEffect, Assembly-CSharp
|
||||
m_MethodName: Flash
|
||||
m_Mode: 4
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0.2
|
||||
m_StringArgument:
|
||||
m_BoolArgument: 0
|
||||
m_CallState: 2
|
||||
--- !u!114 &214227269696773679
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 193713797072636474}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 4242ef877b68dd04dafd9ddc4999e5cb, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!1 &953848037517992138
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -515,7 +515,7 @@ PrefabInstance:
|
||||
- target: {fileID: 7454623061449465165, guid: 9c432d220280f704684a6d5b9354c782, type: 3}
|
||||
propertyPath: selectedBuildSlots.Array.data[2].ability
|
||||
value:
|
||||
objectReference: {fileID: 11400000, guid: 5095271b44cdf9c44a2d72c98a05ec52, type: 2}
|
||||
objectReference: {fileID: 11400000, guid: 3eb0543909f25a94eb803cdc9bb51da0, type: 2}
|
||||
- target: {fileID: 7454623061449465165, guid: 9c432d220280f704684a6d5b9354c782, type: 3}
|
||||
propertyPath: selectedBuildSlots.Array.data[3].ability
|
||||
value:
|
||||
|
@ -103,7 +103,7 @@ PrefabInstance:
|
||||
- target: {fileID: 7454623061449465165, guid: 9c432d220280f704684a6d5b9354c782, type: 3}
|
||||
propertyPath: defaultBuildSlots.Array.data[2].ability
|
||||
value:
|
||||
objectReference: {fileID: 11400000, guid: da1fbcda369605140b8241d12c165bc4, type: 2}
|
||||
objectReference: {fileID: 11400000, guid: b696826a7a31a58409292d48c32f862e, type: 2}
|
||||
- target: {fileID: 7454623061449465165, guid: 9c432d220280f704684a6d5b9354c782, type: 3}
|
||||
propertyPath: defaultBuildSlots.Array.data[3].ability
|
||||
value:
|
||||
|
@ -295,11 +295,11 @@ PrefabInstance:
|
||||
- target: {fileID: 7454623061449465165, guid: 9c432d220280f704684a6d5b9354c782, type: 3}
|
||||
propertyPath: defaultBuildSlots.Array.data[1].ability
|
||||
value:
|
||||
objectReference: {fileID: 11400000, guid: 679598ad64000fa4aa4a8b5c1cb568e3, type: 2}
|
||||
objectReference: {fileID: 11400000, guid: c602778d057001d4b929c6685f50bb59, type: 2}
|
||||
- target: {fileID: 7454623061449465165, guid: 9c432d220280f704684a6d5b9354c782, type: 3}
|
||||
propertyPath: defaultBuildSlots.Array.data[2].ability
|
||||
value:
|
||||
objectReference: {fileID: 11400000, guid: 48a85da984c9762418f0badd5730672a, type: 2}
|
||||
objectReference: {fileID: 11400000, guid: e8ac285f957ac924babbb299999e6dbb, type: 2}
|
||||
- target: {fileID: 7454623061449465165, guid: 9c432d220280f704684a6d5b9354c782, type: 3}
|
||||
propertyPath: defaultBuildSlots.Array.data[3].ability
|
||||
value:
|
||||
@ -526,7 +526,7 @@ MonoBehaviour:
|
||||
m_PrefabInstance: {fileID: 2176522877944764073}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_Enabled: 0
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 96b7af24550accb4595e004a4977e512, type: 3}
|
||||
m_Name:
|
||||
|
@ -257,7 +257,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 11400000, guid: 2f597af241e09124aa5a0d69c6904f47, type: 2}
|
||||
- target: {fileID: 7454623061449465165, guid: 9c432d220280f704684a6d5b9354c782, type: 3}
|
||||
propertyPath: defaultBuildSlots.Array.size
|
||||
value: 4
|
||||
value: 3
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7454623061449465165, guid: 9c432d220280f704684a6d5b9354c782, type: 3}
|
||||
propertyPath: defaultBuildSlots.Array.data[0].ability
|
||||
|
@ -1188,8 +1188,6 @@ MonoBehaviour:
|
||||
binderSlot: 1
|
||||
- ability: {fileID: 0}
|
||||
binderSlot: 2
|
||||
- ability: {fileID: 0}
|
||||
binderSlot: 3
|
||||
abilityKeyBinders:
|
||||
- {fileID: 4847227750113470832}
|
||||
- {fileID: 6259208590911633741}
|
||||
@ -1203,8 +1201,6 @@ MonoBehaviour:
|
||||
binderSlot: 1
|
||||
- ability: {fileID: 0}
|
||||
binderSlot: 2
|
||||
- ability: {fileID: 0}
|
||||
binderSlot: 3
|
||||
--- !u!1 &1802766295531197535
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
@ -2301,6 +2301,110 @@ PrefabInstance:
|
||||
serializedVersion: 3
|
||||
m_TransformParent: {fileID: 0}
|
||||
m_Modifications:
|
||||
- target: {fileID: 952476992021474036, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 952476992021474036, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 952476992021474036, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_SizeDelta.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 952476992021474036, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 952476992021474036, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1868539959409642287, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1868539959409642287, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1868539959409642287, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_SizeDelta.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1868539959409642287, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1868539959409642287, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1868539959409642287, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2959850296484889860, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2959850296484889860, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2959850296484889860, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2959850296484889860, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2959850296484889860, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2959850296484906414, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2959850296484906414, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2959850296484906414, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2959850296484906414, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2959850296484906414, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2959850296484922440, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2959850296484922440, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2959850296484922440, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2959850296484922440, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2959850296484922440, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2959850296485017366, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 1
|
||||
@ -2313,6 +2417,10 @@ PrefabInstance:
|
||||
propertyPath: m_SizeDelta.x
|
||||
value: 450
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2959850296485017366, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2959850296485017366, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 168.74998
|
||||
@ -2321,6 +2429,26 @@ PrefabInstance:
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: -600
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3044532144327822992, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3044532144327822992, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3044532144327822992, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_SizeDelta.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3044532144327822992, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3044532144327822992, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3269677882279797627, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
@ -2345,6 +2473,66 @@ PrefabInstance:
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3641119934303568818, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3641119934303568818, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3641119934303568818, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3641119934303568818, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3641119934303568818, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4379688128455002370, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4379688128455002370, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4379688128455002370, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4379688128455002370, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4379688128455002370, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6069245676466788546, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6069245676466788546, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6069245676466788546, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_SizeDelta.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6069245676466788546, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6069245676466788546, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7475116340865457954, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
@ -2445,6 +2633,66 @@ PrefabInstance:
|
||||
propertyPath: m_Name
|
||||
value: Persistent Objects
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7475116342296211536, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7475116342296211536, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7475116342296211536, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7475116342296211536, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7475116342296211536, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7475116342296228278, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7475116342296228278, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7475116342296228278, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7475116342296228278, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7475116342296228278, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7475116342296244508, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7475116342296244508, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7475116342296244508, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7475116342296244508, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7475116342296244508, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7475116342296380174, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 1
|
||||
@ -2457,6 +2705,10 @@ PrefabInstance:
|
||||
propertyPath: m_SizeDelta.x
|
||||
value: 450
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7475116342296380174, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7475116342296380174, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 506.24997
|
||||
@ -2465,9 +2717,25 @@ PrefabInstance:
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: -600
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7864011832780438464, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_SortingOrder
|
||||
value: 5
|
||||
- target: {fileID: 8244038924219432218, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8244038924219432218, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8244038924219432218, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8244038924219432218, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8244038924219432218, guid: 7cf303e1116e7fb46ba92e7d73321eeb, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
|
@ -12,8 +12,8 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: a5d5cf82dd5c07f438f5809f773372e2, type: 3}
|
||||
m_Name: 1-Werewolf_DeepClaw_SlashAbility
|
||||
m_EditorClassIdentifier:
|
||||
displayName: Claw
|
||||
Icon: {fileID: 21300000, guid: 0389074d1deba1c448d45812db40c0df, type: 3}
|
||||
displayName: Deep Claw
|
||||
Icon: {fileID: 21300000, guid: c2be99b0e66fff4479ffbb35df20092e, type: 3}
|
||||
targettingTags:
|
||||
- {fileID: 11400000, guid: 3ac5bfbf7e1fbdd4baec1c17bd3d874c, type: 2}
|
||||
tags:
|
||||
@ -31,6 +31,7 @@ MonoBehaviour:
|
||||
manaCost: 1
|
||||
healthCost: 0
|
||||
classResourceCost: 0
|
||||
spiritPowerReserveCost: 0
|
||||
percentMaxManaCost: 0.5
|
||||
percentMaxHealthCost: 0
|
||||
cooldown: 5
|
||||
|
@ -0,0 +1,52 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
// ============================================================================
|
||||
// 5. EASY MIGRATION HELPER - Update Your Existing Components
|
||||
// ============================================================================
|
||||
|
||||
/// <summary>
|
||||
/// Helper to easily convert your existing ability references
|
||||
/// Just change "BaseAbility" to "RuntimeAbilityInstance" in your existing scripts
|
||||
/// </summary>
|
||||
public static class AbilityMigrationHelper
|
||||
{
|
||||
/// <summary>
|
||||
/// Convert a BaseAbility to RuntimeAbilityInstance
|
||||
/// </summary>
|
||||
public static RuntimeAbilityInstance ToRuntime(this BaseAbility ability)
|
||||
{
|
||||
return new RuntimeAbilityInstance(ability);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Create a modified version of an ability
|
||||
/// </summary>
|
||||
public static RuntimeAbilityInstance CreateModifiedVersion(BaseAbility baseAbility, params AbilityModifier[] modifiers)
|
||||
{
|
||||
var runtime = new RuntimeAbilityInstance(baseAbility);
|
||||
|
||||
foreach (var modifier in modifiers)
|
||||
{
|
||||
runtime.AddModifier(modifier);
|
||||
}
|
||||
|
||||
return runtime;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Create legendary version with special behaviors
|
||||
/// </summary>
|
||||
public static RuntimeAbilityInstance CreateLegendaryVersion(BaseAbility baseAbility, params RuntimeBehavior[] behaviors)
|
||||
{
|
||||
var runtime = new RuntimeAbilityInstance(baseAbility);
|
||||
|
||||
foreach (var behavior in behaviors)
|
||||
{
|
||||
runtime.AddBehavior(behavior);
|
||||
}
|
||||
|
||||
return runtime;
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fddd81fa3189fcf43a2207ea59bdae95
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,60 @@
|
||||
// ============================================================================
|
||||
// 2. ABILITY MODIFIER SYSTEM
|
||||
// ============================================================================
|
||||
|
||||
using UnityEngine;
|
||||
|
||||
[System.Serializable]
|
||||
public class AbilityModifier
|
||||
{
|
||||
[Header("Resource Cost Modifiers")]
|
||||
public float manaCostMultiplier = 1f;
|
||||
public float manaCostFlat = 0f;
|
||||
public float healthCostMultiplier = 1f;
|
||||
public float healthCostFlat = 0f;
|
||||
public float classResourceCostMultiplier = 1f;
|
||||
public float classResourceCostFlat = 0f;
|
||||
|
||||
[Header("Timing Modifiers")]
|
||||
public float castTimeMultiplier = 1f;
|
||||
public float cooldownMultiplier = 1f;
|
||||
|
||||
[Header("Effect Modifiers")]
|
||||
public float damageMultiplier = 1f;
|
||||
public float healingMultiplier = 1f;
|
||||
public float durationMultiplier = 1f;
|
||||
public float rangeMultiplier = 1f;
|
||||
|
||||
[Header("Meta Info")]
|
||||
public string modifierName = "Unnamed Modifier";
|
||||
public string description = "";
|
||||
public float duration = -1f; // -1 = permanent
|
||||
|
||||
// Factory methods for common modifiers
|
||||
public static AbilityModifier CreateDamageBoost(float multiplier, string name = "Damage Boost")
|
||||
{
|
||||
return new AbilityModifier
|
||||
{
|
||||
damageMultiplier = multiplier,
|
||||
modifierName = name
|
||||
};
|
||||
}
|
||||
|
||||
public static AbilityModifier CreateCooldownReduction(float reductionPercent, string name = "Cooldown Reduction")
|
||||
{
|
||||
return new AbilityModifier
|
||||
{
|
||||
cooldownMultiplier = 1f - (reductionPercent / 100f),
|
||||
modifierName = name
|
||||
};
|
||||
}
|
||||
|
||||
public static AbilityModifier CreateManaCostReduction(float reductionPercent, string name = "Mana Cost Reduction")
|
||||
{
|
||||
return new AbilityModifier
|
||||
{
|
||||
manaCostMultiplier = 1f - (reductionPercent / 100f),
|
||||
modifierName = name
|
||||
};
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 759877a48198a3549b2a51623fe20a7c
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,59 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
// ============================================================================
|
||||
// 6. USAGE EXAMPLES - How to Use in Your Existing Code
|
||||
// ============================================================================
|
||||
|
||||
public class AbilityUsageExamples : MonoBehaviour
|
||||
{
|
||||
[Header("Your Existing Abilities")]
|
||||
public BaseAbility fireballAbility;
|
||||
public BaseAbility healingAbility;
|
||||
|
||||
// These can now be RuntimeAbilityInstances!
|
||||
private RuntimeAbilityInstance runtimeFireball;
|
||||
private RuntimeAbilityInstance runtimeHealing;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
// Convert your existing abilities
|
||||
runtimeFireball = fireballAbility.ToRuntime();
|
||||
runtimeHealing = healingAbility.ToRuntime();
|
||||
|
||||
// Example: Add legendary item effect
|
||||
AddLegendaryFireballEffect();
|
||||
}
|
||||
|
||||
private void AddLegendaryFireballEffect()
|
||||
{
|
||||
// This is how you'd handle your legendary item!
|
||||
var explosionBehavior = new ExplodeOnHitBehavior
|
||||
{
|
||||
explosionRadius = 5f,
|
||||
explosionDamage = 50f
|
||||
};
|
||||
|
||||
runtimeFireball.AddBehavior(explosionBehavior);
|
||||
|
||||
// Also add a damage boost
|
||||
var damageBoost = AbilityModifier.CreateDamageBoost(1.5f, "Legendary Damage");
|
||||
runtimeFireball.AddModifier(damageBoost);
|
||||
}
|
||||
|
||||
// Your existing ability usage code works exactly the same!
|
||||
public void CastFireball()
|
||||
{
|
||||
var user = GetComponent<Taggable>();
|
||||
|
||||
// This works exactly like your old BaseAbility.Execute()
|
||||
runtimeFireball.Execute(user);
|
||||
}
|
||||
|
||||
public void CastFireballAtTarget(Transform target)
|
||||
{
|
||||
var user = GetComponent<Taggable>();
|
||||
runtimeFireball.Execute(user, target);
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d1d5a488d66722a468d8af337e46e1e1
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 30b6d22e7928d8047a51992b3fda64b6
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,74 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class ChainLightningBehavior : RuntimeBehavior
|
||||
{
|
||||
public int maxChains = 3;
|
||||
public float chainRange = 8f;
|
||||
public float damageMultiplier = 0.5f; // Each chain does 50% of original damage
|
||||
|
||||
public ChainLightningBehavior()
|
||||
{
|
||||
Trigger = BehaviorTrigger.OnHit;
|
||||
BehaviorName = "Chain Lightning";
|
||||
}
|
||||
|
||||
public override void Execute(RuntimeAbilityInstance ability, Taggable user, Transform target, Vector3 point)
|
||||
{
|
||||
if (target == null) return;
|
||||
|
||||
var currentTarget = target.GetComponent<Taggable>();
|
||||
var chainedTargets = new List<Taggable> { currentTarget };
|
||||
|
||||
for (int i = 0; i < maxChains; i++)
|
||||
{
|
||||
var nextTarget = FindNextChainTarget(currentTarget.transform.position, chainedTargets);
|
||||
if (nextTarget == null) break;
|
||||
|
||||
chainedTargets.Add(nextTarget);
|
||||
|
||||
// Apply reduced damage
|
||||
var health = nextTarget.GetComponent<Health>();
|
||||
if (health != null)
|
||||
{
|
||||
float chainDamage = CalculateChainDamage(ability, i + 1);
|
||||
health.ChangeValue(-chainDamage);
|
||||
}
|
||||
|
||||
currentTarget = nextTarget;
|
||||
}
|
||||
}
|
||||
|
||||
private Taggable FindNextChainTarget(Vector3 position, List<Taggable> excludeTargets)
|
||||
{
|
||||
var colliders = Physics.OverlapSphere(position, chainRange);
|
||||
|
||||
foreach (var collider in colliders)
|
||||
{
|
||||
var target = collider.GetComponent<Taggable>();
|
||||
if (target != null && !excludeTargets.Contains(target))
|
||||
{
|
||||
return target;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private float CalculateChainDamage(RuntimeAbilityInstance ability, int chainNumber)
|
||||
{
|
||||
// This would need to be adapted to your damage system
|
||||
// For now, just return a reduced amount
|
||||
return 50f * Mathf.Pow(damageMultiplier, chainNumber);
|
||||
}
|
||||
|
||||
public override RuntimeBehavior Clone()
|
||||
{
|
||||
return new ChainLightningBehavior
|
||||
{
|
||||
maxChains = this.maxChains,
|
||||
chainRange = this.chainRange,
|
||||
damageMultiplier = this.damageMultiplier
|
||||
};
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3d7ec80971f1d2d4b93d7395e6dcf78c
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,58 @@
|
||||
// ============================================================================
|
||||
// 4. COMMON RUNTIME BEHAVIORS - Your Legendary Item Effects!
|
||||
// ============================================================================
|
||||
|
||||
using UnityEngine;
|
||||
|
||||
public class ExplodeOnHitBehavior : RuntimeBehavior
|
||||
{
|
||||
public GameObject explosionPrefab;
|
||||
public float explosionRadius = 5f;
|
||||
public float explosionDamage = 30f;
|
||||
public LayerMask targetLayers = -1;
|
||||
|
||||
public ExplodeOnHitBehavior()
|
||||
{
|
||||
Trigger = BehaviorTrigger.OnHit;
|
||||
BehaviorName = "Explode on Hit";
|
||||
}
|
||||
|
||||
public override void Execute(RuntimeAbilityInstance ability, Taggable user, Transform target, Vector3 point)
|
||||
{
|
||||
Vector3 explosionPoint = target != null ? target.position : point;
|
||||
|
||||
// Spawn explosion visual if prefab exists
|
||||
if (explosionPrefab != null)
|
||||
{
|
||||
Object.Instantiate(explosionPrefab, explosionPoint, Quaternion.identity);
|
||||
}
|
||||
|
||||
// Find targets in explosion radius
|
||||
var colliders = Physics.OverlapSphere(explosionPoint, explosionRadius, targetLayers);
|
||||
|
||||
foreach (var collider in colliders)
|
||||
{
|
||||
var explosionTarget = collider.GetComponent<Taggable>();
|
||||
if (explosionTarget != null && explosionTarget != user)
|
||||
{
|
||||
// Apply explosion damage
|
||||
var health = explosionTarget.GetComponent<Health>();
|
||||
if (health != null)
|
||||
{
|
||||
health.ChangeValue(-explosionDamage);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override RuntimeBehavior Clone()
|
||||
{
|
||||
return new ExplodeOnHitBehavior
|
||||
{
|
||||
explosionPrefab = this.explosionPrefab,
|
||||
explosionRadius = this.explosionRadius,
|
||||
explosionDamage = this.explosionDamage,
|
||||
targetLayers = this.targetLayers
|
||||
};
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7b92d75ddf02f444fa969dcb95660e60
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,34 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class LifeStealBehavior : RuntimeBehavior
|
||||
{
|
||||
public float lifeStealPercent = 0.15f; // 15% life steal
|
||||
|
||||
public LifeStealBehavior()
|
||||
{
|
||||
Trigger = BehaviorTrigger.OnHit;
|
||||
BehaviorName = "Life Steal";
|
||||
}
|
||||
|
||||
public override void Execute(RuntimeAbilityInstance ability, Taggable user, Transform target, Vector3 point)
|
||||
{
|
||||
// This would need to track the damage dealt to calculate life steal
|
||||
// For now, just heal a fixed amount
|
||||
var userHealth = user.GetComponent<Health>();
|
||||
if (userHealth != null)
|
||||
{
|
||||
float healAmount = 20f * lifeStealPercent; // Placeholder calculation
|
||||
userHealth.ChangeValue(healAmount);
|
||||
}
|
||||
}
|
||||
|
||||
public override RuntimeBehavior Clone()
|
||||
{
|
||||
return new LifeStealBehavior
|
||||
{
|
||||
lifeStealPercent = this.lifeStealPercent
|
||||
};
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 091400d6a45eaac4782ee5636a0f0d1f
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,308 @@
|
||||
// ============================================================================
|
||||
// RUNTIME ABILITY WRAPPER - DROP-IN REPLACEMENT FOR BaseAbility
|
||||
// ============================================================================
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
// ============================================================================
|
||||
// 1. RUNTIME ABILITY INSTANCE - Wraps Your Existing BaseAbility
|
||||
// ============================================================================
|
||||
|
||||
/// <summary>
|
||||
/// Runtime wrapper for BaseAbility that adds modifiers and behaviors
|
||||
/// Can be used anywhere you currently use BaseAbility references
|
||||
/// </summary>
|
||||
public class RuntimeAbilityInstance
|
||||
{
|
||||
// ========================================================================
|
||||
// CORE DATA - Wraps your existing ScriptableObject
|
||||
// ========================================================================
|
||||
|
||||
[SerializeField] private BaseAbility sourceAbility;
|
||||
private List<AbilityModifier> activeModifiers = new List<AbilityModifier>();
|
||||
private List<RuntimeBehavior> runtimeBehaviors = new List<RuntimeBehavior>();
|
||||
|
||||
// Runtime state
|
||||
private float lastUsedTime;
|
||||
private int currentCharges;
|
||||
|
||||
// ========================================================================
|
||||
// CONSTRUCTOR
|
||||
// ========================================================================
|
||||
|
||||
public RuntimeAbilityInstance(BaseAbility source)
|
||||
{
|
||||
sourceAbility = source;
|
||||
currentCharges = GetMaxCharges(); // In case you add charges later
|
||||
RecalculateModifiedValues();
|
||||
}
|
||||
|
||||
// ========================================================================
|
||||
// PROPERTIES - Direct access to original + modified values
|
||||
// ========================================================================
|
||||
|
||||
// Original values (unchanged)
|
||||
public BaseAbility SourceAbility => sourceAbility;
|
||||
public string displayName => sourceAbility.displayName;
|
||||
public Sprite Icon => sourceAbility.Icon;
|
||||
public List<TargetTag> targettingTags => sourceAbility.targettingTags;
|
||||
public List<GameTag> tags => sourceAbility.tags;
|
||||
public List<BaseEffect> abilityEffects => sourceAbility.abilityEffects;
|
||||
public bool castableWhileMoving => sourceAbility.castableWhileMoving;
|
||||
public AbilityAnimationType animationType => sourceAbility.animationType;
|
||||
|
||||
// Modified values (affected by modifiers)
|
||||
public float manaCost { get; private set; }
|
||||
public float healthCost { get; private set; }
|
||||
public float classResourceCost { get; private set; }
|
||||
public float spiritPowerReserveCost { get; private set; }
|
||||
public float percentMaxManaCost { get; private set; }
|
||||
public float percentMaxHealthCost { get; private set; }
|
||||
public float castTime { get; private set; }
|
||||
public float cooldown { get; private set; }
|
||||
|
||||
// Runtime state properties
|
||||
public float LastUsedTime => lastUsedTime;
|
||||
public bool IsOnCooldown => Time.time < lastUsedTime + cooldown;
|
||||
public float CooldownRemaining => Mathf.Max(0f, (lastUsedTime + cooldown) - Time.time);
|
||||
public List<AbilityModifier> ActiveModifiers => new List<AbilityModifier>(activeModifiers);
|
||||
public List<RuntimeBehavior> RuntimeBehaviors => new List<RuntimeBehavior>(runtimeBehaviors);
|
||||
|
||||
// ========================================================================
|
||||
// EXECUTION METHODS - Same signature as your BaseAbility
|
||||
// ========================================================================
|
||||
|
||||
public virtual void Execute(Taggable user)
|
||||
{
|
||||
if (!CanExecute(user)) return;
|
||||
|
||||
// Execute pre-cast behaviors
|
||||
ExecuteBehaviors(BehaviorTrigger.PreCast, user, null, Vector3.zero);
|
||||
|
||||
// Execute original ability
|
||||
sourceAbility.Execute(user);
|
||||
|
||||
// Execute post-cast behaviors
|
||||
ExecuteBehaviors(BehaviorTrigger.PostCast, user, null, Vector3.zero);
|
||||
|
||||
// Update runtime state
|
||||
lastUsedTime = Time.time;
|
||||
}
|
||||
|
||||
public virtual void Execute(Taggable user, Vector3 point)
|
||||
{
|
||||
if (!CanExecute(user)) return;
|
||||
|
||||
ExecuteBehaviors(BehaviorTrigger.PreCast, user, null, point);
|
||||
sourceAbility.Execute(user, point);
|
||||
ExecuteBehaviors(BehaviorTrigger.PostCast, user, null, point);
|
||||
|
||||
lastUsedTime = Time.time;
|
||||
}
|
||||
|
||||
public virtual void Execute(Taggable user, Transform target)
|
||||
{
|
||||
if (!CanExecute(user)) return;
|
||||
|
||||
ExecuteBehaviors(BehaviorTrigger.PreCast, user, target, target.position);
|
||||
sourceAbility.Execute(user, target);
|
||||
ExecuteBehaviors(BehaviorTrigger.PostCast, user, target, target.position);
|
||||
|
||||
lastUsedTime = Time.time;
|
||||
}
|
||||
|
||||
// ========================================================================
|
||||
// ABILITY STATE CHECKS
|
||||
// ========================================================================
|
||||
|
||||
public bool CanExecute(Taggable user)
|
||||
{
|
||||
// Check cooldown
|
||||
if (IsOnCooldown) return false;
|
||||
|
||||
// Check resources using modified costs
|
||||
return CanAffordResources(user);
|
||||
}
|
||||
|
||||
private bool CanAffordResources(Taggable user)
|
||||
{
|
||||
// Use the modified costs, not original
|
||||
var userMana = user.GetComponent<Mana>();
|
||||
if (userMana != null)
|
||||
{
|
||||
float finalManaCost = manaCost + userMana.GetMaxValue() * percentMaxManaCost;
|
||||
if (!userMana.EnoughMana(finalManaCost)) return false;
|
||||
}
|
||||
|
||||
var userHealth = user.GetComponent<Health>();
|
||||
if (userHealth != null)
|
||||
{
|
||||
float finalHealthCost = healthCost + userHealth.GetMaxValue() * percentMaxHealthCost;
|
||||
if (userHealth.GetCurrentValue() <= finalHealthCost) return false;
|
||||
}
|
||||
|
||||
var userClassResource = user.GetComponent<ClassResource>();
|
||||
if (userClassResource != null && classResourceCost > 0)
|
||||
{
|
||||
if (userClassResource.GetCurrentValue() < classResourceCost) return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public float GetFinalManaCost(Mana userMana)
|
||||
{
|
||||
return manaCost + userMana.GetMaxValue() * percentMaxManaCost;
|
||||
}
|
||||
|
||||
public float GetFinalHealthCost(Health userHealth)
|
||||
{
|
||||
return healthCost + userHealth.GetMaxValue() * percentMaxHealthCost;
|
||||
}
|
||||
|
||||
// ========================================================================
|
||||
// MODIFIER SYSTEM
|
||||
// ========================================================================
|
||||
|
||||
public void AddModifier(AbilityModifier modifier)
|
||||
{
|
||||
activeModifiers.Add(modifier);
|
||||
RecalculateModifiedValues();
|
||||
}
|
||||
|
||||
public void RemoveModifier(AbilityModifier modifier)
|
||||
{
|
||||
activeModifiers.Remove(modifier);
|
||||
RecalculateModifiedValues();
|
||||
}
|
||||
|
||||
public void RemoveAllModifiers()
|
||||
{
|
||||
activeModifiers.Clear();
|
||||
RecalculateModifiedValues();
|
||||
}
|
||||
|
||||
private void RecalculateModifiedValues()
|
||||
{
|
||||
// Start with original values
|
||||
manaCost = sourceAbility.manaCost;
|
||||
healthCost = sourceAbility.healthCost;
|
||||
classResourceCost = sourceAbility.classResourceCost;
|
||||
spiritPowerReserveCost = sourceAbility.spiritPowerReserveCost;
|
||||
percentMaxManaCost = sourceAbility.percentMaxManaCost;
|
||||
percentMaxHealthCost = sourceAbility.percentMaxHealthCost;
|
||||
castTime = sourceAbility.castTime;
|
||||
cooldown = sourceAbility.cooldown;
|
||||
|
||||
// Apply all modifiers
|
||||
foreach (var modifier in activeModifiers)
|
||||
{
|
||||
ApplyModifier(modifier);
|
||||
}
|
||||
}
|
||||
|
||||
private void ApplyModifier(AbilityModifier modifier)
|
||||
{
|
||||
// Resource cost modifiers
|
||||
manaCost = manaCost * modifier.manaCostMultiplier + modifier.manaCostFlat;
|
||||
healthCost = healthCost * modifier.healthCostMultiplier + modifier.healthCostFlat;
|
||||
classResourceCost = classResourceCost * modifier.classResourceCostMultiplier + modifier.classResourceCostFlat;
|
||||
|
||||
// Timing modifiers
|
||||
castTime *= modifier.castTimeMultiplier;
|
||||
cooldown *= modifier.cooldownMultiplier;
|
||||
|
||||
// Ensure values don't go negative
|
||||
manaCost = Mathf.Max(0f, manaCost);
|
||||
healthCost = Mathf.Max(0f, healthCost);
|
||||
classResourceCost = Mathf.Max(0f, classResourceCost);
|
||||
castTime = Mathf.Max(0f, castTime);
|
||||
cooldown = Mathf.Max(0f, cooldown);
|
||||
}
|
||||
|
||||
// ========================================================================
|
||||
// RUNTIME BEHAVIOR SYSTEM
|
||||
// ========================================================================
|
||||
|
||||
public void AddBehavior(RuntimeBehavior behavior)
|
||||
{
|
||||
runtimeBehaviors.Add(behavior);
|
||||
}
|
||||
|
||||
public void RemoveBehavior(RuntimeBehavior behavior)
|
||||
{
|
||||
runtimeBehaviors.Remove(behavior);
|
||||
}
|
||||
|
||||
public T GetBehavior<T>() where T : RuntimeBehavior
|
||||
{
|
||||
return runtimeBehaviors.Find(b => b is T) as T;
|
||||
}
|
||||
|
||||
public void RemoveBehavior<T>() where T : RuntimeBehavior
|
||||
{
|
||||
for (int i = runtimeBehaviors.Count - 1; i >= 0; i--)
|
||||
{
|
||||
if (runtimeBehaviors[i] is T)
|
||||
{
|
||||
runtimeBehaviors.RemoveAt(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void ExecuteBehaviors(BehaviorTrigger trigger, Taggable user, Transform target, Vector3 point)
|
||||
{
|
||||
foreach (var behavior in runtimeBehaviors)
|
||||
{
|
||||
if (behavior.Trigger == trigger)
|
||||
{
|
||||
behavior.Execute(this, user, target, point);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ========================================================================
|
||||
// UTILITY METHODS
|
||||
// ========================================================================
|
||||
|
||||
public RuntimeAbilityInstance Clone()
|
||||
{
|
||||
var clone = new RuntimeAbilityInstance(sourceAbility);
|
||||
|
||||
// Copy modifiers
|
||||
foreach (var modifier in activeModifiers)
|
||||
{
|
||||
clone.AddModifier(modifier);
|
||||
}
|
||||
|
||||
// Copy behaviors
|
||||
foreach (var behavior in runtimeBehaviors)
|
||||
{
|
||||
clone.AddBehavior(behavior.Clone());
|
||||
}
|
||||
|
||||
return clone;
|
||||
}
|
||||
|
||||
private int GetMaxCharges()
|
||||
{
|
||||
// Future: add charge system
|
||||
return 1;
|
||||
}
|
||||
|
||||
// ========================================================================
|
||||
// IMPLICIT CONVERSION - Makes it work seamlessly
|
||||
// ========================================================================
|
||||
|
||||
public static implicit operator BaseAbility(RuntimeAbilityInstance instance)
|
||||
{
|
||||
return instance.sourceAbility;
|
||||
}
|
||||
|
||||
public static implicit operator RuntimeAbilityInstance(BaseAbility ability)
|
||||
{
|
||||
return new RuntimeAbilityInstance(ability);
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 63ca0a6b1e4e799418c4e8dd0cf4ace5
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -0,0 +1,19 @@
|
||||
using UnityEngine;
|
||||
|
||||
public enum BehaviorTrigger
|
||||
{
|
||||
PreCast, // Before ability executes
|
||||
PostCast, // After ability executes
|
||||
OnHit, // When ability hits target
|
||||
OnKill, // When ability kills target
|
||||
OnCrit // When ability crits
|
||||
}
|
||||
|
||||
public abstract class RuntimeBehavior
|
||||
{
|
||||
public BehaviorTrigger Trigger { get; set; }
|
||||
public string BehaviorName { get; set; }
|
||||
|
||||
public abstract void Execute(RuntimeAbilityInstance ability, Taggable user, Transform target, Vector3 point);
|
||||
public abstract RuntimeBehavior Clone();
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 0a8f3389f97c1f343ba02dc9b50a1848
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -93,7 +93,7 @@ public class BuildManagerUIController : MonoBehaviour
|
||||
|
||||
abilitySlotsDropdowns[i].RefreshShownValue();
|
||||
|
||||
abilitySlotsDropdowns[i].value = possibleAbilities.IndexOf(buildManager.SelectedBuildSlots[i].ability);
|
||||
abilitySlotsDropdowns[i].SetValueWithoutNotify(possibleAbilities.IndexOf(buildManager.SelectedBuildSlots[i].ability));
|
||||
}
|
||||
|
||||
CheckForSlotUnlockables();
|
||||
|
38
Assets/Scripts/CombatFeedbackExtras/HitFlashEffect.cs
Normal file
38
Assets/Scripts/CombatFeedbackExtras/HitFlashEffect.cs
Normal file
@ -0,0 +1,38 @@
|
||||
using System.Collections;
|
||||
using UnityEngine;
|
||||
|
||||
public class HitFlashEffect : MonoBehaviour
|
||||
{
|
||||
private MaterialPropertyBlock propertyBlock;
|
||||
private Renderer[] renderers;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
propertyBlock = new MaterialPropertyBlock();
|
||||
renderers = GetComponentsInChildren<Renderer>();
|
||||
}
|
||||
|
||||
public void Flash(float duration)
|
||||
{
|
||||
StartCoroutine(FlashCoroutine(duration));
|
||||
}
|
||||
|
||||
IEnumerator FlashCoroutine(float duration)
|
||||
{
|
||||
// Set flash
|
||||
propertyBlock.SetColor("_EmissionColor", Color.white * 2f);
|
||||
foreach (var r in renderers)
|
||||
{
|
||||
r.GetPropertyBlock(propertyBlock);
|
||||
propertyBlock.SetColor("_EmissionColor", Color.white * 2f);
|
||||
r.SetPropertyBlock(propertyBlock);
|
||||
}
|
||||
|
||||
yield return new WaitForSeconds(duration);
|
||||
|
||||
// Clear flash
|
||||
propertyBlock.SetColor("_EmissionColor", Color.black);
|
||||
foreach (var r in renderers)
|
||||
r.SetPropertyBlock(propertyBlock);
|
||||
}
|
||||
}
|
11
Assets/Scripts/CombatFeedbackExtras/HitFlashEffect.cs.meta
Normal file
11
Assets/Scripts/CombatFeedbackExtras/HitFlashEffect.cs.meta
Normal file
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4242ef877b68dd04dafd9ddc4999e5cb
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@ -109,7 +109,7 @@ public class BasicEnemyNPCController : NPCControllerBase
|
||||
if (ability == null)
|
||||
{
|
||||
failedTryAttackCounter++;
|
||||
if(failedTryAttackCounter >= failedTryAttackLimitToChangeTarget)
|
||||
if(failedTryAttackCounter >= failedTryAttackLimitToChangeTarget && possibleTargets.Count > 1)
|
||||
{
|
||||
failedTryAttackCounter = 0;
|
||||
UpdateCurrentTarget(GetClosestTarget());
|
||||
|
@ -2,6 +2,7 @@ using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.AI;
|
||||
using UnityEngine.Events;
|
||||
|
||||
public class NPCAnimatorControllerBase : MonoBehaviour
|
||||
{
|
||||
@ -11,6 +12,8 @@ public class NPCAnimatorControllerBase : MonoBehaviour
|
||||
|
||||
protected bool isLockedInAnimation = false;
|
||||
|
||||
public UnityEvent onHurtAnimation = new UnityEvent();
|
||||
|
||||
protected virtual void Awake()
|
||||
{
|
||||
anim = GetComponent<Animator>();
|
||||
@ -41,6 +44,11 @@ public class NPCAnimatorControllerBase : MonoBehaviour
|
||||
npcController.OnDeathAnimationEventTriggered();
|
||||
}
|
||||
|
||||
protected virtual void OnHurtAnimationEvent()
|
||||
{
|
||||
onHurtAnimation.Invoke();
|
||||
}
|
||||
|
||||
public void SetDead()
|
||||
{
|
||||
anim.SetTrigger("dead");
|
||||
|
@ -52,6 +52,9 @@ public class NetworkManager : MonoBehaviour
|
||||
CancelChangeLevelVote();
|
||||
});
|
||||
onJobSelected.Response.AddListener((x) => votedZone = x.zoneName);
|
||||
|
||||
logoType = Random.Range(0, 100);
|
||||
logoType %= (int)(LoadingLogoType.Count);
|
||||
}
|
||||
|
||||
// Start is called before the first frame update
|
||||
|
@ -135,6 +135,16 @@ public class NetworkedProjectile : MonoBehaviour
|
||||
effect.ApplyEffect(ownerTag, new List<Taggable> { target });
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
target.GetComponentInChildren<Animator>()?.SetTrigger("hurt");
|
||||
}
|
||||
catch (System.Exception)
|
||||
{
|
||||
Debug.Log("No Hurt trigger");
|
||||
}
|
||||
|
||||
|
||||
if (!canPierce)
|
||||
{
|
||||
if (enableRicochet && ricochetCount < maxRicochets)
|
||||
|
Loading…
x
Reference in New Issue
Block a user