diff --git a/Aetheria.Shared.Unity.csproj b/Aetheria.Shared.Unity.csproj
index ab7380a3e..74e3a3fee 100644
--- a/Aetheria.Shared.Unity.csproj
+++ b/Aetheria.Shared.Unity.csproj
@@ -147,6 +147,7 @@
+
@@ -252,7 +253,6 @@
-
diff --git a/Assets/Prefabs/UI/Action Slot.prefab b/Assets/Prefabs/UI/Action Slot.prefab
index 1bf80adc3..75f322d0a 100644
--- a/Assets/Prefabs/UI/Action Slot.prefab
+++ b/Assets/Prefabs/UI/Action Slot.prefab
@@ -150,6 +150,8 @@ GameObject:
- component: {fileID: 8334150340270499367}
- component: {fileID: 8334150340270499366}
- component: {fileID: 8334150340270499361}
+ - component: {fileID: 116092007209826482}
+ - component: {fileID: 2829353637824256212}
m_Layer: 5
m_Name: Action Slot
m_TagString: Untagged
@@ -237,8 +239,8 @@ MonoBehaviour:
m_IgnoreLayout: 0
m_MinWidth: -1
m_MinHeight: -1
- m_PreferredWidth: 64
- m_PreferredHeight: 64
+ m_PreferredWidth: 1080
+ m_PreferredHeight: 1080
m_FlexibleWidth: -1
m_FlexibleHeight: -1
m_LayoutPriority: 1
@@ -275,6 +277,8 @@ MonoBehaviour:
InputIcon: {fileID: 8334150340841115256}
QuantityRemaining: {fileID: 8334150341178146431}
Fill: {fileID: 8334150340821902602}
+ PointerEnterTrigger: {fileID: 116092007209826482}
+ PointerExitTrigger: {fileID: 2829353637824256212}
--- !u!114 &8334150340270499361
MonoBehaviour:
m_ObjectHideFlags: 0
@@ -288,6 +292,30 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_ShowMaskGraphic: 0
+--- !u!114 &116092007209826482
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8334150340270499363}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 3468b3db8d419c745b12124f6432696b, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &2829353637824256212
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8334150340270499363}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 9643e74593988274bbed9adf40384e48, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
--- !u!1 &8334150340821902612
GameObject:
m_ObjectHideFlags: 0
@@ -465,7 +493,7 @@ RectTransform:
m_GameObject: {fileID: 8334150340841115258}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
- m_LocalScale: {x: -1, y: 1, z: 1}
+ m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 8334150340270499360}
m_RootOrder: 4
diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Group.prefab b/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Group.prefab
new file mode 100644
index 000000000..95677030e
--- /dev/null
+++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Group.prefab
@@ -0,0 +1,397 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &8854537499097178561
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 8854537499097178562}
+ - component: {fileID: 8854537499097178565}
+ - component: {fileID: 8854537499097178564}
+ - component: {fileID: 8854537499097178563}
+ m_Layer: 5
+ m_Name: Label
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &8854537499097178562
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8854537499097178561}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 7093141058661617964}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &8854537499097178565
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8854537499097178561}
+ m_CullTransparentMesh: 1
+--- !u!114 &8854537499097178564
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8854537499097178561}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_text: G1
+ m_isRightToLeft: 0
+ m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2}
+ m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f,
+ type: 2}
+ m_fontSharedMaterials: []
+ m_fontMaterial: {fileID: 0}
+ m_fontMaterials: []
+ m_fontColor32:
+ serializedVersion: 2
+ rgba: 4294964185
+ m_fontColor: {r: 0.85, g: 0.95199996, b: 1, a: 1}
+ m_enableVertexGradient: 0
+ m_colorMode: 3
+ m_fontColorGradient:
+ topLeft: {r: 1, g: 1, b: 1, a: 1}
+ topRight: {r: 1, g: 1, b: 1, a: 1}
+ bottomLeft: {r: 1, g: 1, b: 1, a: 1}
+ bottomRight: {r: 1, g: 1, b: 1, a: 1}
+ m_fontColorGradientPreset: {fileID: 0}
+ m_spriteAsset: {fileID: 0}
+ m_tintAllSprites: 0
+ m_StyleSheet: {fileID: 0}
+ m_TextStyleHashCode: -1183493901
+ m_overrideHtmlColors: 0
+ m_faceColor:
+ serializedVersion: 2
+ rgba: 4294967295
+ m_fontSize: 12
+ m_fontSizeBase: 12
+ m_fontWeight: 400
+ m_enableAutoSizing: 0
+ m_fontSizeMin: 10
+ m_fontSizeMax: 14
+ m_fontStyle: 33
+ m_HorizontalAlignment: 2
+ m_VerticalAlignment: 512
+ m_textAlignment: 65535
+ m_characterSpacing: 0
+ m_wordSpacing: 0
+ m_lineSpacing: 0
+ m_lineSpacingMax: 0
+ m_paragraphSpacing: 0
+ m_charWidthMaxAdj: 0
+ m_enableWordWrapping: 1
+ m_wordWrappingRatios: 0.4
+ m_overflowMode: 0
+ m_linkedTextComponent: {fileID: 0}
+ parentLinkedComponent: {fileID: 0}
+ m_enableKerning: 1
+ m_enableExtraPadding: 0
+ checkPaddingRequired: 0
+ m_isRichText: 1
+ m_parseCtrlCharacters: 1
+ m_isOrthographic: 1
+ m_isCullingEnabled: 0
+ m_horizontalMapping: 0
+ m_verticalMapping: 0
+ m_uvLineOffset: 0
+ m_geometrySortingOrder: 0
+ m_IsTextObjectScaleStatic: 0
+ m_VertexBufferAutoSizeReduction: 1
+ m_useMaxVisibleDescender: 1
+ m_pageToDisplay: 1
+ m_margin: {x: 0, y: 0, z: 0, w: 0}
+ m_isUsingLegacyAnimationComponent: 0
+ m_isVolumetricText: 0
+ m_hasFontAssetChanged: 0
+ m_baseMaterial: {fileID: 0}
+ m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!114 &8854537499097178563
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8854537499097178561}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Navigation:
+ m_Mode: 3
+ m_WrapAround: 0
+ m_SelectOnUp: {fileID: 0}
+ m_SelectOnDown: {fileID: 0}
+ m_SelectOnLeft: {fileID: 0}
+ m_SelectOnRight: {fileID: 0}
+ m_Transition: 1
+ m_Colors:
+ m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+ m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+ m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
+ m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
+ m_ColorMultiplier: 1
+ m_FadeDuration: 0.1
+ m_SpriteState:
+ m_HighlightedSprite: {fileID: 0}
+ m_PressedSprite: {fileID: 0}
+ m_SelectedSprite: {fileID: 0}
+ m_DisabledSprite: {fileID: 0}
+ m_AnimationTriggers:
+ m_NormalTrigger: Normal
+ m_HighlightedTrigger: Highlighted
+ m_PressedTrigger: Pressed
+ m_SelectedTrigger: Selected
+ m_DisabledTrigger: Disabled
+ m_Interactable: 1
+ m_TargetGraphic: {fileID: 8854537499097178564}
+ m_OnClick:
+ m_PersistentCalls:
+ m_Calls: []
+--- !u!1 &8854537499952373069
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 8854537499952373070}
+ - component: {fileID: 8854537499952373056}
+ - component: {fileID: 8854537499952373071}
+ m_Layer: 5
+ m_Name: Background
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &8854537499952373070
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8854537499952373069}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 7093141058661617964}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &8854537499952373056
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8854537499952373069}
+ m_CullTransparentMesh: 1
+--- !u!114 &8854537499952373071
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 8854537499952373069}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.8, g: 0.9333333, b: 1, a: 0.03137255}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 21300000, guid: 7ed12bf887e951949bd02894a21fb3ff, type: 3}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!1 &9223028044370770576
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 7093141058661617964}
+ - component: {fileID: 5236190267576759953}
+ - component: {fileID: 9223028044370770578}
+ - component: {fileID: 9223028044370770577}
+ - component: {fileID: 3575432560508143777}
+ - component: {fileID: 2103399013588393016}
+ - component: {fileID: 8960961965027693801}
+ - component: {fileID: 2070497072283402020}
+ m_Layer: 5
+ m_Name: Weapon Group
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &7093141058661617964
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 9223028044370770576}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 8854537499952373070}
+ - {fileID: 8854537499097178562}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 1}
+ m_AnchorMax: {x: 0, y: 1}
+ m_AnchoredPosition: {x: 12, y: -12}
+ m_SizeDelta: {x: 24, y: 24}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &5236190267576759953
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 9223028044370770576}
+ m_CullTransparentMesh: 1
+--- !u!114 &9223028044370770578
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 9223028044370770576}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_IgnoreLayout: 0
+ m_MinWidth: -1
+ m_MinHeight: -1
+ m_PreferredWidth: 1080
+ m_PreferredHeight: 1080
+ m_FlexibleWidth: -1
+ m_FlexibleHeight: -1
+ m_LayoutPriority: 1
+--- !u!114 &9223028044370770577
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 9223028044370770576}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: a588f4b3f3e229540a82e5f976b08e2d, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ aspectRatio: 1
+ updateMin: 0
+ updatePreferred: 1
+--- !u!114 &3575432560508143777
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 9223028044370770576}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 27f5673ad060b834489cad765159cb84, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Label: {fileID: 8854537499097178564}
+ Button: {fileID: 8854537499097178563}
+ BeginDragTrigger: {fileID: 2103399013588393016}
+ DragTrigger: {fileID: 8960961965027693801}
+ EndDragTrigger: {fileID: 2070497072283402020}
+--- !u!114 &2103399013588393016
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 9223028044370770576}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 3a81a9b6bec6b4f4fba7e0047cd989f6, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &8960961965027693801
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 9223028044370770576}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 79db090dc9e4db245821e8b89b0e208e, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+--- !u!114 &2070497072283402020
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 9223028044370770576}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b8ce8424f238d6842bd8b09c0cca1ac4, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Group.prefab.meta b/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Group.prefab.meta
new file mode 100644
index 000000000..da7d6e862
--- /dev/null
+++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Group.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: b987fd2e2a9af93459f01eed2609a58b
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Groups.prefab b/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Groups.prefab
new file mode 100644
index 000000000..4c7acce17
--- /dev/null
+++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Groups.prefab
@@ -0,0 +1,330 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &913394255187743890
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 7044292112900681436}
+ - component: {fileID: 835890040255913825}
+ - component: {fileID: 4589204584295863281}
+ m_Layer: 5
+ m_Name: Title
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &7044292112900681436
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 913394255187743890}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 7017012055636029233}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0.5}
+ m_AnchorMax: {x: 1, y: 1}
+ m_AnchoredPosition: {x: 0, y: -2}
+ m_SizeDelta: {x: -16, y: -4}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &835890040255913825
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 913394255187743890}
+ m_CullTransparentMesh: 1
+--- !u!114 &4589204584295863281
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 913394255187743890}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_text: Stat Name
+ m_isRightToLeft: 0
+ m_fontAsset: {fileID: 11400000, guid: 53555f7a2d5e745428813f1b1118734f, type: 2}
+ m_sharedMaterial: {fileID: -2804126062856497447, guid: 53555f7a2d5e745428813f1b1118734f,
+ type: 2}
+ m_fontSharedMaterials: []
+ m_fontMaterial: {fileID: 0}
+ m_fontMaterials: []
+ m_fontColor32:
+ serializedVersion: 2
+ rgba: 4279071487
+ m_fontColor: {r: 1, g: 0.44583336, b: 0.050000012, a: 1}
+ m_enableVertexGradient: 0
+ m_colorMode: 3
+ m_fontColorGradient:
+ topLeft: {r: 1, g: 1, b: 1, a: 1}
+ topRight: {r: 1, g: 1, b: 1, a: 1}
+ bottomLeft: {r: 1, g: 1, b: 1, a: 1}
+ bottomRight: {r: 1, g: 1, b: 1, a: 1}
+ m_fontColorGradientPreset: {fileID: 0}
+ m_spriteAsset: {fileID: 0}
+ m_tintAllSprites: 0
+ m_StyleSheet: {fileID: 0}
+ m_TextStyleHashCode: -1183493901
+ m_overrideHtmlColors: 0
+ m_faceColor:
+ serializedVersion: 2
+ rgba: 4294967295
+ m_fontSize: 14
+ m_fontSizeBase: 14
+ m_fontWeight: 400
+ m_enableAutoSizing: 0
+ m_fontSizeMin: 18
+ m_fontSizeMax: 72
+ m_fontStyle: 16
+ m_HorizontalAlignment: 1
+ m_VerticalAlignment: 512
+ m_textAlignment: 65535
+ m_characterSpacing: 0
+ m_wordSpacing: 0
+ m_lineSpacing: 0
+ m_lineSpacingMax: 0
+ m_paragraphSpacing: 0
+ m_charWidthMaxAdj: 0
+ m_enableWordWrapping: 1
+ m_wordWrappingRatios: 0.4
+ m_overflowMode: 0
+ m_linkedTextComponent: {fileID: 0}
+ parentLinkedComponent: {fileID: 0}
+ m_enableKerning: 1
+ m_enableExtraPadding: 0
+ checkPaddingRequired: 0
+ m_isRichText: 1
+ m_parseCtrlCharacters: 1
+ m_isOrthographic: 1
+ m_isCullingEnabled: 0
+ m_horizontalMapping: 0
+ m_verticalMapping: 0
+ m_uvLineOffset: 0
+ m_geometrySortingOrder: 0
+ m_IsTextObjectScaleStatic: 0
+ m_VertexBufferAutoSizeReduction: 1
+ m_useMaxVisibleDescender: 1
+ m_pageToDisplay: 1
+ m_margin: {x: 0, y: 0, z: 0, w: 0}
+ m_isUsingLegacyAnimationComponent: 0
+ m_isVolumetricText: 0
+ m_hasFontAssetChanged: 0
+ m_baseMaterial: {fileID: 0}
+ m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
+--- !u!1 &4617351576505393965
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 4617351576505394386}
+ - component: {fileID: 4617351576505394387}
+ m_Layer: 5
+ m_Name: Group Container
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &4617351576505394386
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4617351576505393965}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 7017012055636029233}
+ m_RootOrder: 1
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 1, y: 0}
+ m_AnchoredPosition: {x: 0, y: 8}
+ m_SizeDelta: {x: -16, y: 24}
+ m_Pivot: {x: 0.5, y: 0}
+--- !u!114 &4617351576505394387
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 4617351576505393965}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Padding:
+ m_Left: 0
+ m_Right: 0
+ m_Top: 0
+ m_Bottom: 0
+ m_ChildAlignment: 0
+ m_Spacing: 8
+ m_ChildForceExpandWidth: 0
+ m_ChildForceExpandHeight: 1
+ m_ChildControlWidth: 1
+ m_ChildControlHeight: 1
+ m_ChildScaleWidth: 0
+ m_ChildScaleHeight: 0
+ m_ReverseArrangement: 0
+--- !u!1 &6173357060473159663
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 7017012055636029233}
+ - component: {fileID: 1187566180789453781}
+ - component: {fileID: 9198057411594340877}
+ - component: {fileID: 2147666021289938829}
+ - component: {fileID: 6173357060473159660}
+ - component: {fileID: 8654742830357802168}
+ m_Layer: 5
+ m_Name: Weapon Groups
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &7017012055636029233
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6173357060473159663}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 7044292112900681436}
+ - {fileID: 4617351576505394386}
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0, y: 0}
+ m_AnchorMax: {x: 0, y: 0}
+ m_AnchoredPosition: {x: 0, y: 0}
+ m_SizeDelta: {x: 0, y: 0}
+ m_Pivot: {x: 0.5, y: 0.5}
+--- !u!222 &1187566180789453781
+CanvasRenderer:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6173357060473159663}
+ m_CullTransparentMesh: 1
+--- !u!114 &9198057411594340877
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6173357060473159663}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_Material: {fileID: 0}
+ m_Color: {r: 0.45402354, g: 0.45402354, b: 0.603, a: 0.039215688}
+ m_RaycastTarget: 1
+ m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
+ m_Maskable: 1
+ m_OnCullStateChanged:
+ m_PersistentCalls:
+ m_Calls: []
+ m_Sprite: {fileID: 21300000, guid: 84d126f984de5fd42ac66361c00f830c, type: 3}
+ m_Type: 1
+ m_PreserveAspect: 0
+ m_FillCenter: 1
+ m_FillMethod: 4
+ m_FillAmount: 1
+ m_FillClockwise: 1
+ m_FillOrigin: 0
+ m_UseSpriteMesh: 0
+ m_PixelsPerUnitMultiplier: 1
+--- !u!114 &2147666021289938829
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6173357060473159663}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b403db1d8980f544099fedf5735cf364, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Label: {fileID: 4589204584295863281}
+ Value: {fileID: 0}
+--- !u!114 &6173357060473159660
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6173357060473159663}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: 306cc8c2b49d7114eaa3623786fc2126, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ m_IgnoreLayout: 0
+ m_MinWidth: -1
+ m_MinHeight: -1
+ m_PreferredWidth: -1
+ m_PreferredHeight: 64
+ m_FlexibleWidth: -1
+ m_FlexibleHeight: -1
+ m_LayoutPriority: 1
+--- !u!114 &8654742830357802168
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 6173357060473159663}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: b9b213fc96d20d848819b8159412680c, type: 3}
+ m_Name:
+ m_EditorClassIdentifier:
+ Container: {fileID: 4617351576505394386}
+ GroupPrefab: {fileID: 3575432560508143777, guid: b987fd2e2a9af93459f01eed2609a58b,
+ type: 3}
+ ActiveColor: {r: 1, g: 0.44583336, b: 0.050000012, a: 1}
+ InactiveColor: {r: 0.6037736, g: 0.6037736, b: 0.6037736, a: 1}
diff --git a/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Groups.prefab.meta b/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Groups.prefab.meta
new file mode 100644
index 000000000..58ffebfef
--- /dev/null
+++ b/Assets/Prefabs/UI/Properties Panel/Fancy/Weapon Groups.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: fbe6efeb205a68946af7a6f1cb8b9904
+PrefabImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Prefabs/UI/Properties Panel/Properties.prefab b/Assets/Prefabs/UI/Properties Panel/Properties.prefab
index 9f6c03949..29d281e03 100644
--- a/Assets/Prefabs/UI/Properties Panel/Properties.prefab
+++ b/Assets/Prefabs/UI/Properties Panel/Properties.prefab
@@ -787,7 +787,10 @@ MonoBehaviour:
CurveField: {fileID: 3018914896466881005, guid: 168887bbd3de8c74eb3f06d3d46dda4e,
type: 3}
Content: {fileID: 257019179596293679}
+ WeaponGroupAssignment: {fileID: 8654742830357802168, guid: fbe6efeb205a68946af7a6f1cb8b9904,
+ type: 3}
SelectedChild: {fileID: 0}
+ GameManager: {fileID: 0}
--- !u!222 &7131821417165215473
CanvasRenderer:
m_ObjectHideFlags: 0
diff --git a/Assets/Resources/Sprites/Icons/mouse.png b/Assets/Resources/Sprites/Icons/mouseL.png
similarity index 100%
rename from Assets/Resources/Sprites/Icons/mouse.png
rename to Assets/Resources/Sprites/Icons/mouseL.png
diff --git a/Assets/Resources/Sprites/Icons/mouse.png.meta b/Assets/Resources/Sprites/Icons/mouseL.png.meta
similarity index 83%
rename from Assets/Resources/Sprites/Icons/mouse.png.meta
rename to Assets/Resources/Sprites/Icons/mouseL.png.meta
index 0c96413c4..cf1d20e40 100644
--- a/Assets/Resources/Sprites/Icons/mouse.png.meta
+++ b/Assets/Resources/Sprites/Icons/mouseL.png.meta
@@ -1,12 +1,12 @@
fileFormatVersion: 2
guid: a308a6cbccf9c9b4fa444a974e7968df
TextureImporter:
- fileIDToRecycleName: {}
+ internalIDToNameTable: []
externalObjects: {}
- serializedVersion: 9
+ serializedVersion: 11
mipmaps:
mipMapMode: 0
- enableMipMap: 1
+ enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
@@ -23,6 +23,7 @@ TextureImporter:
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
+ vTOnly: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
@@ -54,13 +55,17 @@ TextureImporter:
textureType: 8
textureShape: 1
singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 1
platformSettings:
- - serializedVersion: 2
+ - serializedVersion: 3
buildTarget: DefaultTexturePlatform
- maxTextureSize: 256
+ maxTextureSize: 32
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
@@ -69,9 +74,10 @@ TextureImporter:
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
- - serializedVersion: 2
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
buildTarget: Standalone
- maxTextureSize: 256
+ maxTextureSize: 32
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
@@ -80,7 +86,8 @@ TextureImporter:
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
- - serializedVersion: 2
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 256
resizeAlgorithm: 0
@@ -91,6 +98,7 @@ TextureImporter:
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 1
spriteSheet:
serializedVersion: 2
sprites: []
@@ -98,10 +106,12 @@ TextureImporter:
physicsShape: []
bones: []
spriteID: 29d0cbe550734d745a4c311b08cd9033
+ internalID: 0
vertices: []
indices:
edges: []
weights: []
+ secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
diff --git a/Assets/Resources/Sprites/Icons/mouseMiddle.png.meta b/Assets/Resources/Sprites/Icons/mouseMiddle.png.meta
index cf88fc3c6..0c4917dc6 100644
--- a/Assets/Resources/Sprites/Icons/mouseMiddle.png.meta
+++ b/Assets/Resources/Sprites/Icons/mouseMiddle.png.meta
@@ -1,12 +1,12 @@
fileFormatVersion: 2
guid: 188698480e3264043842e31a1d7b26ab
TextureImporter:
- fileIDToRecycleName: {}
+ internalIDToNameTable: []
externalObjects: {}
- serializedVersion: 9
+ serializedVersion: 11
mipmaps:
mipMapMode: 0
- enableMipMap: 1
+ enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
@@ -23,6 +23,7 @@ TextureImporter:
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
+ vTOnly: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
@@ -54,13 +55,17 @@ TextureImporter:
textureType: 8
textureShape: 1
singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 1
platformSettings:
- - serializedVersion: 2
+ - serializedVersion: 3
buildTarget: DefaultTexturePlatform
- maxTextureSize: 256
+ maxTextureSize: 32
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
@@ -69,9 +74,10 @@ TextureImporter:
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
- - serializedVersion: 2
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
buildTarget: Standalone
- maxTextureSize: 256
+ maxTextureSize: 32
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
@@ -80,7 +86,8 @@ TextureImporter:
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
- - serializedVersion: 2
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 256
resizeAlgorithm: 0
@@ -91,6 +98,7 @@ TextureImporter:
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 1
spriteSheet:
serializedVersion: 2
sprites: []
@@ -98,10 +106,12 @@ TextureImporter:
physicsShape: []
bones: []
spriteID: 3ca6de31166650547bc6aa1652e3e95a
+ internalID: 0
vertices: []
indices:
edges: []
weights: []
+ secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
diff --git a/Assets/Resources/Sprites/Icons/mouseR.png b/Assets/Resources/Sprites/Icons/mouseR.png
new file mode 100644
index 000000000..4384b3624
--- /dev/null
+++ b/Assets/Resources/Sprites/Icons/mouseR.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b2c065fe616b66f3c89ab2c3b2bcaa74492688d9054d7038af74577371437071
+size 6723
diff --git a/Assets/Resources/Sprites/Icons/mouseR.png.meta b/Assets/Resources/Sprites/Icons/mouseR.png.meta
new file mode 100644
index 000000000..46d9740b1
--- /dev/null
+++ b/Assets/Resources/Sprites/Icons/mouseR.png.meta
@@ -0,0 +1,108 @@
+fileFormatVersion: 2
+guid: 3449ac806e8043f40b6612c729d8e555
+TextureImporter:
+ internalIDToNameTable: []
+ externalObjects: {}
+ serializedVersion: 11
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ sRGBTexture: 1
+ linearTexture: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapsPreserveCoverage: 0
+ alphaTestReferenceValue: 0.5
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: 0.25
+ normalMapFilter: 0
+ isReadable: 0
+ streamingMipmaps: 0
+ streamingMipmapsPriority: 0
+ vTOnly: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 6
+ cubemapConvolution: 0
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 2048
+ textureSettings:
+ serializedVersion: 2
+ filterMode: -1
+ aniso: -1
+ mipBias: -100
+ wrapU: 1
+ wrapV: 1
+ wrapW: -1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ spriteMode: 1
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: 0.5, y: 0.5}
+ spritePixelsToUnits: 100
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spriteGenerateFallbackPhysicsShape: 1
+ alphaUsage: 1
+ alphaIsTransparency: 1
+ spriteTessellationDetail: -1
+ textureType: 8
+ textureShape: 1
+ singleChannelComponent: 0
+ flipbookRows: 1
+ flipbookColumns: 1
+ maxTextureSizeSet: 0
+ compressionQualitySet: 0
+ textureFormatSet: 0
+ ignorePngGamma: 0
+ applyGammaDecoding: 0
+ platformSettings:
+ - serializedVersion: 3
+ buildTarget: DefaultTexturePlatform
+ maxTextureSize: 32
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ - serializedVersion: 3
+ buildTarget: Standalone
+ maxTextureSize: 32
+ resizeAlgorithm: 0
+ textureFormat: -1
+ textureCompression: 1
+ compressionQuality: 50
+ crunchedCompression: 0
+ allowsAlphaSplitting: 0
+ overridden: 0
+ androidETC2FallbackOverride: 0
+ forceMaximumCompressionQuality_BC6H_BC7: 0
+ spriteSheet:
+ serializedVersion: 2
+ sprites: []
+ outline: []
+ physicsShape: []
+ bones: []
+ spriteID: 5e97eb03825dee720800000000000000
+ internalID: 0
+ vertices: []
+ indices:
+ edges: []
+ weights: []
+ secondaryTextures: []
+ spritePackingTag:
+ pSDRemoveMatte: 0
+ pSDShowRemoveMatteOption: 0
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scenes/ARPG.unity b/Assets/Scenes/ARPG.unity
index c79ceede9..78ee932a0 100644
--- a/Assets/Scenes/ARPG.unity
+++ b/Assets/Scenes/ARPG.unity
@@ -5350,7 +5350,6 @@ MonoBehaviour:
m_EditorClassIdentifier:
Settings: {fileID: 11400000, guid: cd2344e2001a37544aab0960c164d4ff, type: 2}
ListElementPrototype: {fileID: 1462704895}
- TriggerGroupPrototype: {fileID: 0}
HeaderElementEnabledColor: {r: 0, g: 0, b: 0, a: 0}
HeaderElementDisabledColor: {r: 0, g: 0, b: 0, a: 0}
OverrideIcon: {fileID: 0}
@@ -9410,7 +9409,9 @@ MonoBehaviour:
type: 3}
StatSheet: {fileID: 0}
CurveField: {fileID: 0}
+ WeaponGroupAssignment: {fileID: 0}
Content: {fileID: 620555923}
+ DragParent: {fileID: 0}
SelectedChild: {fileID: 0}
GameManager: {fileID: 0}
CancelClickCatcher: {fileID: 1420548305}
@@ -15388,6 +15389,7 @@ MonoBehaviour:
SevereHypothermiaPP: {fileID: 694183021}
ShiftIcon: {fileID: 21300000, guid: 6a42d073009184c4f9bd47c2d4e8d1f7, type: 3}
MouseLeftIcon: {fileID: 21300000, guid: a308a6cbccf9c9b4fa444a974e7968df, type: 3}
+ MouseRightIcon: {fileID: 21300000, guid: 3449ac806e8043f40b6612c729d8e555, type: 3}
MouseMiddleIcon: {fileID: 21300000, guid: 188698480e3264043842e31a1d7b26ab, type: 3}
ActionBar: {fileID: 393961848}
ActionBarSlot: {fileID: 8334150340270499366, guid: bfce34a0acbaa454e97a700e1875357e,
@@ -29310,6 +29312,11 @@ PrefabInstance:
propertyPath: Dropdown
value:
objectReference: {fileID: 178733681}
+ - target: {fileID: 7131821417165215475, guid: 426f9dcb510530d4dbfa678c9f727ec1,
+ type: 3}
+ propertyPath: DragParent
+ value:
+ objectReference: {fileID: 245842385}
- target: {fileID: 7131821417165215484, guid: 426f9dcb510530d4dbfa678c9f727ec1,
type: 3}
propertyPath: m_Pivot.x
@@ -33338,7 +33345,9 @@ MonoBehaviour:
type: 3}
StatSheet: {fileID: 0}
CurveField: {fileID: 0}
+ WeaponGroupAssignment: {fileID: 0}
Content: {fileID: 3255828831356619720}
+ DragParent: {fileID: 0}
SelectedChild: {fileID: 0}
GameManager: {fileID: 0}
--- !u!114 &5496444666756201237
@@ -35015,7 +35024,6 @@ MonoBehaviour:
m_EditorClassIdentifier:
Settings: {fileID: 11400000, guid: cd2344e2001a37544aab0960c164d4ff, type: 2}
ListElementPrototype: {fileID: 232470599}
- TriggerGroupPrototype: {fileID: 0}
HeaderElementEnabledColor: {r: 1, g: 1, b: 1, a: 0.078431375}
HeaderElementDisabledColor: {r: 1, g: 1, b: 1, a: 0.011764706}
OverrideIcon: {fileID: 1576705656}
diff --git a/Assets/Scripts/Editor/PlayScenePlusPlus.cs b/Assets/Scripts/Editor/PlayScenePlusPlus.cs
new file mode 100644
index 000000000..3beb59e4a
--- /dev/null
+++ b/Assets/Scripts/Editor/PlayScenePlusPlus.cs
@@ -0,0 +1,40 @@
+using UnityEditor;
+using UnityEditor.SceneManagement;
+
+[InitializeOnLoad]
+public class PlayScenePlusPlus
+{
+ static PlayScenePlusPlus()
+ {
+ if(EditorPrefs.HasKey("PlayScene"))
+ {
+ EditorSceneManager.playModeStartScene = AssetDatabase.LoadAssetAtPath(EditorPrefs.GetString("PlayScene"));
+ }
+ }
+
+ [MenuItem("Edit/Play Scene/Set Static", false)]
+ private static void SelectPlayScene()
+ {
+ EditorSceneManager.playModeStartScene = Selection.activeObject as SceneAsset;
+ EditorPrefs.SetString("PlayScene", AssetDatabase.GetAssetPath(EditorSceneManager.playModeStartScene));
+ }
+
+ [MenuItem("Edit/Play Scene/Set Static", true)]
+ private static bool SelectPlaySceneValidate()
+ {
+ return Selection.objects.Length == 1 && Selection.activeObject is SceneAsset;
+ }
+
+ [MenuItem("Edit/Play Scene/Clear", false)]
+ private static void ClearPlayScene()
+ {
+ EditorSceneManager.playModeStartScene = null;
+ EditorPrefs.DeleteKey("PlayScene");
+ }
+
+ [MenuItem("Edit/Play Scene/Clear", true)]
+ private static bool ClearPlaySceneValidate()
+ {
+ return EditorSceneManager.playModeStartScene;
+ }
+}
\ No newline at end of file
diff --git a/Assets/Scripts/Editor/PlayScenePlusPlus.cs.meta b/Assets/Scripts/Editor/PlayScenePlusPlus.cs.meta
new file mode 100644
index 000000000..e454fff89
--- /dev/null
+++ b/Assets/Scripts/Editor/PlayScenePlusPlus.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e7f42430a0ad52b46a18c43afbb72406
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/Gameplay/ActionBarSlot.cs b/Assets/Scripts/Gameplay/ActionBarSlot.cs
index a50405f77..b871a0554 100644
--- a/Assets/Scripts/Gameplay/ActionBarSlot.cs
+++ b/Assets/Scripts/Gameplay/ActionBarSlot.cs
@@ -4,6 +4,7 @@ using JsonKnownTypes;
using MessagePack;
using Newtonsoft.Json;
using TMPro;
+using UniRx.Triggers;
using UnityEngine;
using UnityEngine.UI;
@@ -15,6 +16,8 @@ public class ActionBarSlot : MonoBehaviour
public Image InputIcon;
public TextMeshProUGUI QuantityRemaining;
public Image Fill;
+ public ObservablePointerEnterTrigger PointerEnterTrigger;
+ public ObservablePointerExitTrigger PointerExitTrigger;
private ActionBarBinding binding;
public Entity Entity { get; set; }
@@ -27,6 +30,8 @@ public class ActionBarSlot : MonoBehaviour
binding = value;
if (binding == null)
{
+ Fill.fillAmount = 0;
+ Label.gameObject.SetActive(false);
QuantityRemaining.gameObject.SetActive(false);
Icon.gameObject.SetActive(false);
}
@@ -179,7 +184,8 @@ public class ActionBarWeaponGroupBinding : ActionBarBinding
public ActionBarWeaponGroupBinding(Entity entity, ActionBarSlot slot, int group) : base(entity, slot)
{
Group = group;
- slot.Label.text = $"G{Group}";
+ slot.Label.gameObject.SetActive(true);
+ slot.Label.text = $"G{Group+1}";
Slot.Icon.gameObject.SetActive(false);
}
diff --git a/Assets/Scripts/Gameplay/ActionGameManager.cs b/Assets/Scripts/Gameplay/ActionGameManager.cs
index c73efca2a..6c4d8316a 100644
--- a/Assets/Scripts/Gameplay/ActionGameManager.cs
+++ b/Assets/Scripts/Gameplay/ActionGameManager.cs
@@ -81,6 +81,7 @@ public class ActionGameManager : MonoBehaviour
[Header("Input Icons")]
public Sprite ShiftIcon;
public Sprite MouseLeftIcon;
+ public Sprite MouseRightIcon;
public Sprite MouseMiddleIcon;
[Header("Scene Links")]
@@ -161,6 +162,9 @@ public class ActionGameManager : MonoBehaviour
(float2(0, -1), "Rear")
};
+ private DragAction _dragAction;
+ private Action _endDragCallback;
+
public EntitySettings NewEntitySettings
{
get => MessagePackSerializer.Deserialize(MessagePackSerializer.Serialize(Settings.GameplaySettings.DefaultEntitySettings));
@@ -325,9 +329,36 @@ public class ActionGameManager : MonoBehaviour
var action = new InputAction(binding: controlPath);
_actionBarActions.Add(action);
var slot = Instantiate(ActionBarSlot, ActionBar);
+ slot.Binding = null;
_actionBarSlots.Add(slot);
action.started += context => slot.Binding?.Activate();
action.canceled += context => slot.Binding?.Deactivate();
+
+ slot.PointerEnterTrigger.OnPointerEnterAsObservable().Subscribe(_ =>
+ {
+ //Debug.Log($"Pointer entered action bar slot {controlPath}");
+ RegisterDragTarget(dragAction =>
+ {
+ //Debug.Log("Registering binding!");
+ switch (dragAction)
+ {
+ case EquippedItemDragAction equippedItemDragAction:
+ break;
+ case ItemInstanceDragAction itemInstanceDragAction:
+ break;
+ case WeaponGroupDragAction weaponGroupDragAction:
+ slot.Binding = new ActionBarWeaponGroupBinding(CurrentEntity, slot, weaponGroupDragAction.Group);
+ break;
+ default:
+ throw new ArgumentOutOfRangeException(nameof(dragAction));
+ }
+ });
+ });
+ slot.PointerExitTrigger.OnPointerExitAsObservable().Subscribe(_ =>
+ {
+ //Debug.Log($"Pointer exited action bar slot {controlPath}");
+ UnregisterDragTarget();
+ });
return slot;
}
@@ -340,8 +371,7 @@ public class ActionGameManager : MonoBehaviour
left.InputLabel.gameObject.SetActive(false);
var right = createBinding("/rightButton");
- right.InputIcon.sprite = MouseLeftIcon;
- right.InputIcon.transform.localScale = new Vector3(-1, 1, 1);
+ right.InputIcon.sprite = MouseRightIcon;
right.InputLabel.gameObject.SetActive(false);
var middle = createBinding("/middleButton");
@@ -467,6 +497,27 @@ public class ActionGameManager : MonoBehaviour
});
}
+ public void BeginDrag(DragAction dragAction)
+ {
+ _dragAction = dragAction;
+ }
+
+ public void RegisterDragTarget(Action onEndDrag)
+ {
+ _endDragCallback = onEndDrag;
+ }
+
+ public void UnregisterDragTarget()
+ {
+ _endDragCallback = null;
+ }
+
+ public void EndDrag()
+ {
+ _endDragCallback?.Invoke(_dragAction);
+ _dragAction = null;
+ }
+
public void EnablePlayerInput()
{
Input.Player.Enable();
@@ -1015,4 +1066,36 @@ public class ActionGameManager : MonoBehaviour
}
}
}
+}
+
+public abstract class DragAction{}
+
+public class WeaponGroupDragAction : DragAction
+{
+ public WeaponGroupDragAction(int group)
+ {
+ Group = group;
+ }
+
+ public int Group { get; }
+}
+
+public class ItemInstanceDragAction : DragAction
+{
+ public ItemInstanceDragAction(ItemInstance item)
+ {
+ Item = item;
+ }
+
+ public ItemInstance Item { get; }
+}
+
+public class EquippedItemDragAction : DragAction
+{
+ public EquippedItemDragAction(EquippedItem item)
+ {
+ Item = item;
+ }
+
+ public EquippedItem Item { get; }
}
\ No newline at end of file
diff --git a/Assets/Scripts/UI/PropertiesPanel.cs b/Assets/Scripts/UI/PropertiesPanel.cs
index 272edbdcc..8ae518863 100644
--- a/Assets/Scripts/UI/PropertiesPanel.cs
+++ b/Assets/Scripts/UI/PropertiesPanel.cs
@@ -36,7 +36,10 @@ public class PropertiesPanel : MonoBehaviour
public IncrementField IncrementField;
public StatSheet StatSheet;
public CurveField CurveField;
+ public WeaponGroupAssignment WeaponGroupAssignment;
public RectTransform Content;
+ public RectTransform DragParent;
+
[HideInInspector] public FlatFlatButton SelectedChild;
[HideInInspector] public ActionGameManager GameManager;
@@ -45,6 +48,9 @@ public class PropertiesPanel : MonoBehaviour
protected event Action RefreshPropertyValues;
protected bool RadioSelection = false;
+ private RectTransform _dragObject;
+
+
protected event Action OnPropertyAdded;
protected Action OnPropertiesChanged;
@@ -462,6 +468,33 @@ public class PropertiesPanel : MonoBehaviour
AddItemProperties(item.EquippableItem);
AddSpacer();
+
+ if (item.GetBehavior() != null)
+ {
+ var weaponGroups = Instantiate(WeaponGroupAssignment, Content ?? transform);
+ weaponGroups.Inspect(item);
+ var dragOffset = Vector2.zero;
+ Transform dragObject = null;
+ weaponGroups.OnBeginDragAsObservable().Subscribe(x =>
+ {
+ //Debug.Log($"Began dragging weapon group {x.group}");
+ GameManager.BeginDrag(new WeaponGroupDragAction(x.group));
+ dragObject = Instantiate(weaponGroups.Groups[x.group], DragParent, true).transform;
+ dragOffset = (Vector2)dragObject.position - x.pointerEventData.position;
+ });
+ weaponGroups.OnDragAsObservable().Subscribe(x =>
+ {
+ dragObject.position = x.pointerEventData.position + dragOffset;
+ });
+ weaponGroups.OnEndDragAsObservable().Subscribe(x =>
+ {
+ //Debug.Log($"Ended dragging weapon group {x.group}");
+ GameManager.EndDrag();
+ Destroy(dragObject.gameObject);
+ });
+ Properties.Add(weaponGroups.gameObject);
+ OnPropertyAdded?.Invoke(weaponGroups.gameObject);
+ }
var gearData = GameManager.ItemManager.GetData(item.EquippableItem);
var statusSheet = AddStatSheet();
diff --git a/Assets/Scripts/UI/WeaponGroupAssignment.cs b/Assets/Scripts/UI/WeaponGroupAssignment.cs
new file mode 100644
index 000000000..536ac19af
--- /dev/null
+++ b/Assets/Scripts/UI/WeaponGroupAssignment.cs
@@ -0,0 +1,65 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UniRx;
+using UnityEngine;
+using UnityEngine.EventSystems;
+
+public class WeaponGroupAssignment : MonoBehaviour
+{
+ public RectTransform Container;
+ public WeaponGroupElement GroupPrefab;
+ public Color ActiveColor;
+ public Color InactiveColor;
+
+ Subject<(PointerEventData pointerEventData, int group)> _onBeginDrag;
+ Subject<(PointerEventData pointerEventData, int group)> _onDrag;
+ Subject<(PointerEventData pointerEventData, int group)> _onEndDrag;
+
+ public List Groups { get; } = new List();
+
+ public void Inspect(EquippedItem item)
+ {
+ var weapon = item.GetBehavior();
+ if (weapon == null) throw new ArgumentException($"Attempted to inspect weapon groups on item \"{item.Data.Name}\" but no weapon is present!");
+ var groupCount = ActionGameManager.Instance.Settings.GameplaySettings.TriggerGroupCount;
+ for (int i = 0; i < groupCount; i++)
+ {
+ var i1 = i;
+ bool groupContainsItem() => item.Entity.TriggerGroups[i1].items.Contains(item);
+ var group = Instantiate(GroupPrefab, Container);
+ Groups.Add(group);
+ group.Label.text = $"G{i+1}";
+ group.Label.color = groupContainsItem() ? ActiveColor : InactiveColor;
+ group.Button.onClick.AddListener(() =>
+ {
+ if (groupContainsItem())
+ {
+ item.Entity.TriggerGroups[i1].items.Remove(item);
+ item.Entity.TriggerGroups[i1].weapons.Remove(weapon);
+ group.Label.color = InactiveColor;
+ }
+ else
+ {
+ item.Entity.TriggerGroups[i1].items.Add(item);
+ item.Entity.TriggerGroups[i1].weapons.Add(weapon);
+ group.Label.color = ActiveColor;
+ }
+ });
+
+ group.BeginDragTrigger.OnBeginDragAsObservable()
+ .Subscribe(data => _onBeginDrag?.OnNext((data, i1)));
+ group.DragTrigger.OnDragAsObservable()
+ .Subscribe(data => _onDrag?.OnNext((data, i1)));
+ group.EndDragTrigger.OnEndDragAsObservable()
+ .Subscribe(data => _onEndDrag?.OnNext((data, i1)));
+ }
+ }
+
+ public UniRx.IObservable<(PointerEventData pointerEventData, int group)> OnBeginDragAsObservable() =>
+ _onBeginDrag ?? (_onBeginDrag = new Subject<(PointerEventData pointerEventData, int group)>());
+ public UniRx.IObservable<(PointerEventData pointerEventData, int group)> OnDragAsObservable() =>
+ _onDrag ?? (_onDrag = new Subject<(PointerEventData pointerEventData, int group)>());
+ public UniRx.IObservable<(PointerEventData pointerEventData, int group)> OnEndDragAsObservable() =>
+ _onEndDrag ?? (_onEndDrag = new Subject<(PointerEventData pointerEventData, int group)>());
+}
diff --git a/Assets/Scripts/UI/WeaponGroupAssignment.cs.meta b/Assets/Scripts/UI/WeaponGroupAssignment.cs.meta
new file mode 100644
index 000000000..4ba983332
--- /dev/null
+++ b/Assets/Scripts/UI/WeaponGroupAssignment.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: b9b213fc96d20d848819b8159412680c
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/Assets/Scripts/UI/WeaponGroupElement.cs b/Assets/Scripts/UI/WeaponGroupElement.cs
new file mode 100644
index 000000000..495267974
--- /dev/null
+++ b/Assets/Scripts/UI/WeaponGroupElement.cs
@@ -0,0 +1,15 @@
+using System.Collections;
+using System.Collections.Generic;
+using TMPro;
+using UniRx.Triggers;
+using UnityEngine;
+using UnityEngine.UI;
+
+public class WeaponGroupElement : MonoBehaviour
+{
+ public TextMeshProUGUI Label;
+ public Button Button;
+ public ObservableBeginDragTrigger BeginDragTrigger;
+ public ObservableDragTrigger DragTrigger;
+ public ObservableEndDragTrigger EndDragTrigger;
+}
diff --git a/Assets/Scripts/UI/WeaponGroupElement.cs.meta b/Assets/Scripts/UI/WeaponGroupElement.cs.meta
new file mode 100644
index 000000000..99c6e5e1b
--- /dev/null
+++ b/Assets/Scripts/UI/WeaponGroupElement.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 27f5673ad060b834489cad765159cb84
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/GameData/PlayerSettings.msgpack b/GameData/PlayerSettings.msgpack
index b03ecd7d5..c76a1ccc0 100644
--- a/GameData/PlayerSettings.msgpack
+++ b/GameData/PlayerSettings.msgpack
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:855065c2989064850795d1d60f37111d97f19aaaad1750c630ec940a58a7dc7c
+oid sha256:0ac5d262fca3d766a88a6f5849db285f7b8d42cda04f747c9f36f562c85490b9
size 17318
diff --git a/UserSettings/EditorUserSettings.asset b/UserSettings/EditorUserSettings.asset
index bc307be86..29995cccf 100644
--- a/UserSettings/EditorUserSettings.asset
+++ b/UserSettings/EditorUserSettings.asset
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
-oid sha256:caf20eb516bc53f1774f3a147124ab3b7e9869c889cf6083eba3f4507444845a
+oid sha256:ddf9f0c22847dc8893a39a7d9afc9b90b2fa13176fb5c4da0a1d8f16a85ee649
size 1699