Action Bar Weapon Group Binding

Selecting a weapon now displays weapon group toggles
Added global drag and drop handling in game manager
Weapon group toggles can be dragged to action bar to bind them
This commit is contained in:
Reinier Vens 2021-04-19 03:46:35 +01:00
commit 9779afb1bb
24 changed files with 1213 additions and 27 deletions

View file

@ -147,6 +147,7 @@
<Compile Include="Assets\Scripts\ServerShared\NIH\LinqFaster\Repeat.cs" />
<Compile Include="Assets\Scripts\ServerShared\NIH\Heap\MinHeap.cs" />
<Compile Include="Assets\Scripts\ServerShared\Behaviors\Switch.cs" />
<Compile Include="Assets\Scripts\ServerShared\Behaviors\AetherDrive.cs" />
<Compile Include="Assets\Scripts\ServerShared\NIH\KDTree\KDQuery\QueryClosest.cs" />
<Compile Include="Assets\Scripts\ServerShared\CultCache\Serialization\JsonKnownTypes\JsonKnownTypesConverter.cs" />
<Compile Include="Assets\Scripts\ServerShared\NIH\LiteNetLib\Utils\CRC32C.cs" />
@ -252,7 +253,6 @@
<Compile Include="Assets\Scripts\ServerShared\NIH\LinqFaster\SequenceEqual.cs" />
<Compile Include="Assets\Scripts\ServerShared\NIH\LinqFaster\Skip.cs" />
<Compile Include="Assets\Scripts\ServerShared\ItemManager.cs" />
<Compile Include="Assets\Scripts\ServerShared\Behaviors\AetherDrive.cs" />
<None Include="Assets\Scripts\ServerShared\NIH\LinqFaster\readme.txt" />
<None Include="Assets\Scripts\ServerShared\Aetheria.Shared.Unity.asmdef" />
<Reference Include="System.Threading.Tasks.Extensions">

View file

@ -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

View file

@ -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:

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: b987fd2e2a9af93459f01eed2609a58b
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -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}

View file

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: fbe6efeb205a68946af7a6f1cb8b9904
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -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

View file

@ -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

View file

@ -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

BIN
Assets/Resources/Sprites/Icons/mouseR.png (Stored with Git LFS) Normal file

Binary file not shown.

View file

@ -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:

View file

@ -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}

View file

@ -0,0 +1,40 @@
using UnityEditor;
using UnityEditor.SceneManagement;
[InitializeOnLoad]
public class PlayScenePlusPlus
{
static PlayScenePlusPlus()
{
if(EditorPrefs.HasKey("PlayScene"))
{
EditorSceneManager.playModeStartScene = AssetDatabase.LoadAssetAtPath<SceneAsset>(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;
}
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: e7f42430a0ad52b46a18c43afbb72406
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -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);
}

View file

@ -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<DragAction> _endDragCallback;
public EntitySettings NewEntitySettings
{
get => MessagePackSerializer.Deserialize<EntitySettings>(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("<Mouse>/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("<Mouse>/middleButton");
@ -467,6 +497,27 @@ public class ActionGameManager : MonoBehaviour
});
}
public void BeginDrag(DragAction dragAction)
{
_dragAction = dragAction;
}
public void RegisterDragTarget(Action<DragAction> 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; }
}

View file

@ -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<GameObject> OnPropertyAdded;
protected Action OnPropertiesChanged;
@ -462,6 +468,33 @@ public class PropertiesPanel : MonoBehaviour
AddItemProperties(item.EquippableItem);
AddSpacer();
if (item.GetBehavior<Weapon>() != 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();

View file

@ -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<WeaponGroupElement> Groups { get; } = new List<WeaponGroupElement>();
public void Inspect(EquippedItem item)
{
var weapon = item.GetBehavior<Weapon>();
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)>());
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: b9b213fc96d20d848819b8159412680c
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -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;
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 27f5673ad060b834489cad765159cb84
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

BIN
GameData/PlayerSettings.msgpack (Stored with Git LFS)

Binary file not shown.

BIN
UserSettings/EditorUserSettings.asset (Stored with Git LFS)

Binary file not shown.