Compare commits
3 commits
7bec7c539d
...
9a8077021a
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9a8077021a | ||
|
|
0bf8adc76d | ||
|
|
d79d6216f0 |
24 changed files with 1513 additions and 125 deletions
8
PuzzleGameProject/Assets/Prefabs/Abilities.meta
Normal file
8
PuzzleGameProject/Assets/Prefabs/Abilities.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: a4e1c5deae88ba542be379f34514fd90
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -0,0 +1,259 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &5293741749250652686
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4874973863404433756}
|
||||
- component: {fileID: 1855216729025243642}
|
||||
- component: {fileID: 6494629451359164186}
|
||||
m_Layer: 0
|
||||
m_Name: Text (TMP)
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &4874973863404433756
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5293741749250652686}
|
||||
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_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 8989188457857827130}
|
||||
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 &1855216729025243642
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5293741749250652686}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &6494629451359164186
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5293741749250652686}
|
||||
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:
|
||||
m_isRightToLeft: 0
|
||||
m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||
m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2}
|
||||
m_fontSharedMaterials: []
|
||||
m_fontMaterial: {fileID: 0}
|
||||
m_fontMaterials: []
|
||||
m_fontColor32:
|
||||
serializedVersion: 2
|
||||
rgba: 4281479730
|
||||
m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, 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: 24
|
||||
m_fontSizeBase: 24
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 0
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
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_TextWrappingMode: 1
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
parentLinkedComponent: {fileID: 0}
|
||||
m_enableKerning: 0
|
||||
m_ActiveFontFeatures: 6e72656b
|
||||
m_enableExtraPadding: 0
|
||||
checkPaddingRequired: 0
|
||||
m_isRichText: 1
|
||||
m_EmojiFallbackSupport: 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: 0
|
||||
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 &6167039396952026974
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8989188457857827130}
|
||||
- component: {fileID: 7568565659390603518}
|
||||
- component: {fileID: 9157113186282288804}
|
||||
- component: {fileID: 1648245930821754079}
|
||||
m_Layer: 0
|
||||
m_Name: TorchAbilityUse
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &8989188457857827130
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6167039396952026974}
|
||||
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_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 4874973863404433756}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 30, y: 30}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &7568565659390603518
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6167039396952026974}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &9157113186282288804
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6167039396952026974}
|
||||
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.8962264, g: 0.07186722, b: 0.07186722, 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_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Type: 1
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 0
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!114 &1648245930821754079
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6167039396952026974}
|
||||
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: 9157113186282288804}
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 5e46b071ca9c11745a7893c22faf6976
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
|
@ -1,5 +1,80 @@
|
|||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1735603092438910357
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2350009719861052788}
|
||||
- component: {fileID: 286217537584344082}
|
||||
- component: {fileID: 5126110704028324915}
|
||||
m_Layer: 0
|
||||
m_Name: Checkmark
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &2350009719861052788
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1735603092438910357}
|
||||
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_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1764876241474559387}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 20, y: 20}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &286217537584344082
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1735603092438910357}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &5126110704028324915
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1735603092438910357}
|
||||
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: 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_Sprite: {fileID: 10901, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_Type: 0
|
||||
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 &2435349004046080434
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
@ -50,9 +125,9 @@ MonoBehaviour:
|
|||
m_EditorClassIdentifier:
|
||||
adjacentRooms: []
|
||||
isEntrance: 0
|
||||
keyType: 0
|
||||
locks:
|
||||
numberTextObject: {fileID: 8119019481281764985}
|
||||
healthTickObject: {fileID: 2885337975627474754}
|
||||
_health: 0
|
||||
--- !u!212 &1770509300873928573
|
||||
SpriteRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
@ -169,6 +244,167 @@ MonoBehaviour:
|
|||
m_EffectColor: {r: 0, g: 1, b: 0.09941673, a: 0.5}
|
||||
m_EffectDistance: {x: 10, y: 10}
|
||||
m_UseGraphicAlpha: 1
|
||||
--- !u!1 &2846330325476652680
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1764876241474559387}
|
||||
- component: {fileID: 7181831331141731840}
|
||||
- component: {fileID: 1847420437976641395}
|
||||
m_Layer: 0
|
||||
m_Name: Background
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &1764876241474559387
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2846330325476652680}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 10, y: 10, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 2350009719861052788}
|
||||
m_Father: {fileID: 244121025600760136}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 20, y: 20}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &7181831331141731840
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2846330325476652680}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &1847420437976641395
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2846330325476652680}
|
||||
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: 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_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
|
||||
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 &2885337975627474754
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 244121025600760136}
|
||||
- component: {fileID: 8929257494273614377}
|
||||
m_Layer: 0
|
||||
m_Name: HealthTick
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &244121025600760136
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2885337975627474754}
|
||||
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_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 1764876241474559387}
|
||||
m_Father: {fileID: 2539620726141895785}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 486.7102, y: 253}
|
||||
m_SizeDelta: {x: 200, y: 200}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &8929257494273614377
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2885337975627474754}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, 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: 0
|
||||
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: 0
|
||||
m_TargetGraphic: {fileID: 1847420437976641395}
|
||||
toggleTransition: 1
|
||||
graphic: {fileID: 5126110704028324915}
|
||||
m_Group: {fileID: 0}
|
||||
onValueChanged:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
m_IsOn: 0
|
||||
--- !u!1 &7488793311042651820
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
@ -182,7 +418,7 @@ GameObject:
|
|||
- component: {fileID: 8840412798147865769}
|
||||
- component: {fileID: 3878377942961622899}
|
||||
m_Layer: 0
|
||||
m_Name: NumberCanvas
|
||||
m_Name: Canvas
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
|
|
@ -201,6 +437,7 @@ RectTransform:
|
|||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 6916722731958000395}
|
||||
- {fileID: 244121025600760136}
|
||||
m_Father: {fileID: 9187907134033443523}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -12,7 +12,7 @@ namespace Abilities
|
|||
[SerializeField] private GameObject abilityUseOne;
|
||||
[SerializeField] private GameObject abilityUseTwo;
|
||||
[SerializeField] private GameObject abilityUseThree;
|
||||
[SerializeField] private int _uses = 3;
|
||||
private int _uses = 3;
|
||||
|
||||
private GameObject[] _usesUsed;
|
||||
private bool _canClick;
|
||||
|
|
|
|||
58
PuzzleGameProject/Assets/Scripts/Abilities/TorchAbility.cs
Normal file
58
PuzzleGameProject/Assets/Scripts/Abilities/TorchAbility.cs
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
using System;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class TorchAbility : MonoBehaviour
|
||||
{
|
||||
public static
|
||||
event Action TorchAbilityUsed;
|
||||
[SerializeField] private GameObject abilityUseOne;
|
||||
[SerializeField] private GameObject abilityUseTwo;
|
||||
|
||||
private int _uses = 2;
|
||||
private GameObject[] _usesUsed;
|
||||
private bool _canClick;
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
GameManager.StateChanged += HandleStateChanged;
|
||||
}
|
||||
|
||||
private void OnDisable()
|
||||
{
|
||||
GameManager.StateChanged -= HandleStateChanged;
|
||||
}
|
||||
|
||||
private void Start()
|
||||
{
|
||||
_usesUsed = new GameObject[_uses];
|
||||
abilityUseOne.GetComponent<Button>().onClick.AddListener(() => UseClicked(abilityUseOne));
|
||||
abilityUseTwo.GetComponent<Button>().onClick.AddListener(() => UseClicked(abilityUseTwo));
|
||||
}
|
||||
|
||||
private void UseClicked(GameObject abilityUseObject)
|
||||
{
|
||||
if (!_canClick) return;
|
||||
|
||||
if (_uses > 0)
|
||||
{
|
||||
_usesUsed[_uses - 1] = abilityUseObject;
|
||||
MarkUsed(abilityUseObject);
|
||||
TorchAbilityUsed?.Invoke();
|
||||
_uses -= 1;
|
||||
}
|
||||
|
||||
_canClick = false;
|
||||
}
|
||||
|
||||
private void MarkUsed(GameObject useObject)
|
||||
{
|
||||
useObject.GetComponentInChildren<TextMeshProUGUI>().text = "X";
|
||||
}
|
||||
|
||||
private void HandleStateChanged(GameState state)
|
||||
{
|
||||
_canClick = true;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: a942e4ca1244b054b8ca96ded24fb63a
|
||||
|
|
@ -70,7 +70,7 @@ public class DicePair
|
|||
return _pair.Item1.GetResult() + _pair.Item2.GetResult();
|
||||
}
|
||||
|
||||
public bool DoResultsMatch()
|
||||
public bool CheckIfResultsMatch()
|
||||
{
|
||||
if (_pair.Item1.GetResult() == _pair.Item2.GetResult())
|
||||
{
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ public enum GameState
|
|||
}
|
||||
public class GameManager : MonoBehaviour
|
||||
{
|
||||
[SerializeField] public GameState state;
|
||||
[SerializeField] public static GameState State;
|
||||
[SerializeField] private GameObject rooms;
|
||||
[SerializeField] private DiceRoller diceRoller;
|
||||
[SerializeField] private PassManager passManager;
|
||||
|
|
@ -35,7 +35,7 @@ public class GameManager : MonoBehaviour
|
|||
passManager.PassRequested += PassRequested;
|
||||
foreach (Transform roomTransform in rooms.transform)
|
||||
{
|
||||
roomTransform.gameObject.GetComponent<Room>().ValidRoomClicked += ValidRoomClicked;
|
||||
roomTransform.gameObject.GetComponent<Room>().RoomExploredByDice += HandleRoomExploredByDice;
|
||||
}
|
||||
foreach (Transform diceTransform in diceRoller.dice.transform)
|
||||
{
|
||||
|
|
@ -46,10 +46,10 @@ public class GameManager : MonoBehaviour
|
|||
}
|
||||
|
||||
private void ChangeState(GameState stateToChangeTo) {
|
||||
if (state != stateToChangeTo)
|
||||
if (State != stateToChangeTo)
|
||||
{
|
||||
state = stateToChangeTo;
|
||||
StateChanged?.Invoke(state);
|
||||
State = stateToChangeTo;
|
||||
StateChanged?.Invoke(State);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -62,16 +62,8 @@ public class GameManager : MonoBehaviour
|
|||
_dicePairTwo = new DicePair();
|
||||
}
|
||||
|
||||
void ValidRoomClicked(object sender, Room room) {
|
||||
switch (state)
|
||||
{
|
||||
case GameState.PickRoomOne when !room.TryUnlock(_dicePairOne):
|
||||
case GameState.PickRoomTwo when !room.TryUnlock(_dicePairTwo):
|
||||
return;
|
||||
}
|
||||
|
||||
room.SetRoomExplored();
|
||||
if (state == GameState.PickRoomOne)
|
||||
void HandleRoomExploredByDice(object sender, Room room) {
|
||||
if (State == GameState.PickRoomOne)
|
||||
{
|
||||
ChangeState(GameState.PickDiceTwo);
|
||||
}
|
||||
|
|
@ -82,7 +74,7 @@ public class GameManager : MonoBehaviour
|
|||
}
|
||||
|
||||
private void HandleDieSelected(Die die) {
|
||||
switch (state)
|
||||
switch (State)
|
||||
{
|
||||
case GameState.PickDiceOne:
|
||||
_dicePairOne.SelectDie(die);
|
||||
|
|
@ -106,11 +98,11 @@ public class GameManager : MonoBehaviour
|
|||
}
|
||||
|
||||
private void HandleDieUnselected(Die die) {
|
||||
switch (state)
|
||||
switch (State)
|
||||
{
|
||||
case GameState.PickDiceOne:
|
||||
case GameState.PickRoomOne:
|
||||
if (state == GameState.PickRoomOne)
|
||||
if (State == GameState.PickRoomOne)
|
||||
{
|
||||
ChangeState(GameState.PickDiceOne);
|
||||
}
|
||||
|
|
@ -119,7 +111,7 @@ public class GameManager : MonoBehaviour
|
|||
break;
|
||||
case GameState.PickDiceTwo:
|
||||
case GameState.PickRoomTwo:
|
||||
if (state == GameState.PickRoomTwo)
|
||||
if (State == GameState.PickRoomTwo)
|
||||
{
|
||||
ChangeState(GameState.PickDiceTwo);
|
||||
}
|
||||
|
|
@ -136,7 +128,7 @@ public class GameManager : MonoBehaviour
|
|||
|
||||
private void DiceRolled(object sender, EventArgs e)
|
||||
{
|
||||
if (state == GameState.RollDice)
|
||||
if (State == GameState.RollDice)
|
||||
{
|
||||
diceRoller.Disable();
|
||||
ChangeState(GameState.PickDiceOne);
|
||||
|
|
@ -144,7 +136,7 @@ public class GameManager : MonoBehaviour
|
|||
}
|
||||
|
||||
private void PassRequested(object sender, EventArgs e) {
|
||||
switch (state)
|
||||
switch (State)
|
||||
{
|
||||
case GameState.PickDiceOne:
|
||||
case GameState.PickDiceTwo:
|
||||
|
|
|
|||
|
|
@ -4,16 +4,15 @@ using UnityEngine;
|
|||
public class EmptyRoom : Room
|
||||
{
|
||||
[SerializeField] private GameObject numberTextObject;
|
||||
[SerializeField] private int number;
|
||||
|
||||
protected override void InitializeRoom() {
|
||||
base.InitializeRoom();
|
||||
TextMeshProUGUI numberText = numberTextObject.GetComponent<TextMeshProUGUI>();
|
||||
if (keyType == KeyType.Number)
|
||||
if (_locks[0] is NumberLock )
|
||||
{
|
||||
numberText.SetText(number.ToString());
|
||||
numberText.SetText(((NumberLock)_locks[0]).GetNumber().ToString());
|
||||
}
|
||||
else if (keyType == KeyType.MatchingDice)
|
||||
else if (_locks[0] is MatchingDiceLock)
|
||||
{
|
||||
numberText.SetText("=");
|
||||
}
|
||||
|
|
@ -21,24 +20,7 @@ public class EmptyRoom : Room
|
|||
|
||||
public override bool TryUnlock(DicePair pair)
|
||||
{
|
||||
switch (keyType)
|
||||
{
|
||||
case KeyType.Number:
|
||||
if (number == pair.Sum())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
case KeyType.MatchingDice:
|
||||
if (pair.DoResultsMatch())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return false;
|
||||
return _locks[0].CheckIfKeyFits(pair);
|
||||
}
|
||||
|
||||
public override void SetRoomExplored() {
|
||||
|
|
|
|||
|
|
@ -1,16 +0,0 @@
|
|||
using UnityEngine;
|
||||
|
||||
public class Key : MonoBehaviour
|
||||
{
|
||||
// Start is called once before the first execution of Update after the MonoBehaviour is created
|
||||
void Start()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -1,2 +0,0 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 65db8ffa325fb48e89716418fa310bca
|
||||
8
PuzzleGameProject/Assets/Scripts/Rooms/Locks.meta
Normal file
8
PuzzleGameProject/Assets/Scripts/Rooms/Locks.meta
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
fileFormatVersion: 2
|
||||
guid: a3af0e06c321aa8458a492be0ed8db63
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
34
PuzzleGameProject/Assets/Scripts/Rooms/Locks/Lock.cs
Normal file
34
PuzzleGameProject/Assets/Scripts/Rooms/Locks/Lock.cs
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
using System;
|
||||
using Unity.VisualScripting;
|
||||
using UnityEngine;
|
||||
using System.Collections.Generic;
|
||||
|
||||
public abstract class Lock : MonoBehaviour
|
||||
{
|
||||
// Room that must be explored before lock can be unlocked.
|
||||
[SerializeField] protected Room blockingRoom;
|
||||
public event Action Unlocked;
|
||||
|
||||
public virtual bool CheckIfKeyFits(DicePair dicePair)
|
||||
{
|
||||
if (blockingRoom == null || blockingRoom.GetRoomExplored())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public virtual void Unlock(DicePair dicePair)
|
||||
{
|
||||
if (CheckIfKeyFits(dicePair))
|
||||
{
|
||||
OnUnlock();
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual void OnUnlock()
|
||||
{
|
||||
Unlocked?.Invoke();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: b665fd3798293ac4e9eb870c53c878a0
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
using Unity.VisualScripting;
|
||||
using UnityEngine;
|
||||
|
||||
public class MatchingDiceLock : Lock
|
||||
{
|
||||
public override bool CheckIfKeyFits(DicePair dicePair)
|
||||
{
|
||||
if (base.CheckIfKeyFits(dicePair) && dicePair.CheckIfResultsMatch())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: b40cbe88356086a49b6bc7dc8ff549c0
|
||||
21
PuzzleGameProject/Assets/Scripts/Rooms/Locks/NumberLock.cs
Normal file
21
PuzzleGameProject/Assets/Scripts/Rooms/Locks/NumberLock.cs
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
using UnityEngine;
|
||||
|
||||
public class NumberLock : Lock
|
||||
{
|
||||
[SerializeField] private int number;
|
||||
|
||||
public override bool CheckIfKeyFits(DicePair dicePair)
|
||||
{
|
||||
if (base.CheckIfKeyFits(dicePair) && dicePair.Sum() == number)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public int GetNumber()
|
||||
{
|
||||
return number;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 0f021f4903d50cb4b8bea2c40701ad58
|
||||
|
|
@ -2,30 +2,41 @@ using UnityEngine;
|
|||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using TMPro;
|
||||
using UnityEngine.UIElements;
|
||||
using Toggle = UnityEngine.UI.Toggle;
|
||||
|
||||
public class MonsterRoom : Room
|
||||
{
|
||||
[SerializeField] private List<int> locks = new();
|
||||
[SerializeField] private GameObject numberTextObject;
|
||||
[SerializeField] private GameObject healthTickObject;
|
||||
[SerializeField] private int _health; // Number of times the room needs to be unlocked before becoming explored.
|
||||
|
||||
private GameObject[] _healthTicks;
|
||||
protected override void InitializeRoom() {
|
||||
base.InitializeRoom();
|
||||
|
||||
// Create the lock numbers on the room.
|
||||
numberTextObject.GetComponent<TextMeshProUGUI>().text = locks[0].ToString();
|
||||
numberTextObject.GetComponent<TextMeshProUGUI>().text = ((NumberLock)_locks[0]).GetNumber().ToString();
|
||||
GameObject lockToDuplicate = numberTextObject;
|
||||
for (int i = 1; i < locks.Count; i++)
|
||||
for (int i = 1; i < _locks.Length; i++)
|
||||
{
|
||||
lockToDuplicate = DuplicateToTheLeft(lockToDuplicate, ((RectTransform)lockToDuplicate.transform).rect.width);
|
||||
lockToDuplicate.GetComponent<TextMeshProUGUI>().text = locks[i].ToString();
|
||||
lockToDuplicate.GetComponent<TextMeshProUGUI>().text = ((NumberLock)_locks[i]).GetNumber().ToString();
|
||||
}
|
||||
|
||||
_healthTicks = new GameObject[_health];
|
||||
_healthTicks[0] = healthTickObject;
|
||||
for (int i = 1; i < _health; i++)
|
||||
{
|
||||
_healthTicks[i] = DuplicateDown(_healthTicks[i - 1],
|
||||
((RectTransform)_healthTicks[i - 1].transform).rect.height);
|
||||
}
|
||||
}
|
||||
|
||||
public override bool TryUnlock(DicePair pair) {
|
||||
foreach (int lockNumber in locks)
|
||||
foreach (NumberLock numberLock in _locks)
|
||||
{
|
||||
if (pair.Sum() == lockNumber)
|
||||
if (numberLock.CheckIfKeyFits(pair))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
|
@ -34,7 +45,9 @@ public class MonsterRoom : Room
|
|||
return false;
|
||||
}
|
||||
|
||||
public override void SetRoomExplored() {
|
||||
public override void SetRoomExplored()
|
||||
{
|
||||
_healthTicks[^_health].GetComponent<Toggle>().isOn = true; // Toggles the corresponding health tick
|
||||
_health -= 1;
|
||||
if (_health == 0)
|
||||
{
|
||||
|
|
@ -50,4 +63,11 @@ public class MonsterRoom : Room
|
|||
clone.transform.localPosition -= new Vector3(offset, 0, 0);
|
||||
return clone;
|
||||
}
|
||||
|
||||
private GameObject DuplicateDown(GameObject original, float offset)
|
||||
{
|
||||
GameObject clone = Instantiate(original, original.transform.parent);
|
||||
clone.transform.localPosition -= new Vector3(0, offset, 0);
|
||||
return clone;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,33 +5,33 @@ using UnityEngine;
|
|||
using System.Collections.Generic;
|
||||
using Unity.VisualScripting;
|
||||
|
||||
public enum KeyType
|
||||
{
|
||||
Number,
|
||||
MatchingDice
|
||||
}
|
||||
|
||||
public abstract class Room : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private List<GameObject> adjacentRooms;
|
||||
[SerializeField] private bool isEntrance;
|
||||
[SerializeField] protected KeyType keyType;
|
||||
public event EventHandler<Room> ValidRoomClicked;
|
||||
public event EventHandler<Room> RoomExploredByDice;
|
||||
public static event Action<Room> RoomExploredByTorch;
|
||||
private Color _roomNumberOriginalColor;
|
||||
private DicePair _diceSelected;
|
||||
|
||||
protected bool _isExplored = false;
|
||||
private bool _isClickable = true;
|
||||
protected Lock[] _locks;
|
||||
private bool _usingTorchAbility = false;
|
||||
|
||||
private void OnEnable() {
|
||||
GameManager.StateChanged += HandleStateChange;
|
||||
GameManager.DiceSelected += HandleDiceSelected;
|
||||
GameManager.DiceUnselected += HandDiceUnselected;
|
||||
TorchAbility.TorchAbilityUsed += HandleTorchAbilityUsed;
|
||||
RoomExploredByTorch += HandleRoomExploredByTorch;
|
||||
}
|
||||
|
||||
private void OnDisable() {
|
||||
GameManager.StateChanged -= HandleStateChange;
|
||||
GameManager.DiceSelected -= HandleDiceSelected;
|
||||
GameManager.DiceUnselected -= HandDiceUnselected;
|
||||
TorchAbility.TorchAbilityUsed -= HandleTorchAbilityUsed;
|
||||
}
|
||||
|
||||
// Start is called once before the first execution of Update after the MonoBehaviour is created
|
||||
|
|
@ -40,12 +40,18 @@ public abstract class Room : MonoBehaviour
|
|||
_roomNumberOriginalColor = gameObject.GetComponentInChildren<TextMeshProUGUI>().color;
|
||||
}
|
||||
|
||||
public bool GetRoomExplored()
|
||||
{
|
||||
return _isExplored;
|
||||
}
|
||||
|
||||
public abstract void SetRoomExplored();
|
||||
|
||||
protected virtual void InitializeRoom() {
|
||||
if (isEntrance) {
|
||||
SetPropertiesOfEntrance();
|
||||
}
|
||||
_locks = gameObject.GetComponents<Lock>();
|
||||
}
|
||||
|
||||
protected void HighlightRoomAsOption()
|
||||
|
|
@ -64,18 +70,44 @@ public abstract class Room : MonoBehaviour
|
|||
}
|
||||
|
||||
void OnMouseDown() {
|
||||
if (!_isClickable) return;
|
||||
if (IsValidRoomToExplore()) {
|
||||
OnValidRoomClicked();
|
||||
if (!CheckIfValidRoomToExplore()) return;
|
||||
|
||||
switch (GameManager.State)
|
||||
{
|
||||
case GameState.PickRoomOne:
|
||||
case GameState.PickRoomTwo:
|
||||
if (TryUnlock(_diceSelected))
|
||||
{
|
||||
OnRoomExploredByDice();
|
||||
SetRoomExplored();
|
||||
}
|
||||
else if(_usingTorchAbility && CheckIfValidRoomToExplore())
|
||||
{
|
||||
SetRoomExplored();
|
||||
OnRoomExploredByTorch();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (_usingTorchAbility && CheckIfValidRoomToExplore())
|
||||
{
|
||||
SetRoomExplored();
|
||||
OnRoomExploredByTorch();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual void OnValidRoomClicked() {
|
||||
ValidRoomClicked?.Invoke(this, this);
|
||||
protected virtual void OnRoomExploredByDice() {
|
||||
RoomExploredByDice?.Invoke(this, this);
|
||||
}
|
||||
|
||||
private void OnRoomExploredByTorch()
|
||||
{
|
||||
RoomExploredByTorch?.Invoke(this);
|
||||
}
|
||||
|
||||
// Check if the room is valid to be explored. If so trigger the event.
|
||||
private bool IsValidRoomToExplore() {
|
||||
private bool CheckIfValidRoomToExplore() {
|
||||
if (_isExplored) {
|
||||
return false;
|
||||
}
|
||||
|
|
@ -109,24 +141,42 @@ public abstract class Room : MonoBehaviour
|
|||
{
|
||||
case GameState.PickDiceOne:
|
||||
case GameState.PickDiceTwo:
|
||||
case GameState.RollDice:
|
||||
_isClickable = false;
|
||||
break;
|
||||
case GameState.PickRoomTwo:
|
||||
case GameState.PickRoomOne:
|
||||
_isClickable = true;
|
||||
_diceSelected = null;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
private void HandleDiceSelected(DicePair pair) {
|
||||
if (TryUnlock(pair) && IsValidRoomToExplore())
|
||||
private void HandleDiceSelected(DicePair pair)
|
||||
{
|
||||
_diceSelected = pair;
|
||||
if (TryUnlock(pair) && CheckIfValidRoomToExplore())
|
||||
{
|
||||
HighlightRoomAsOption();
|
||||
}
|
||||
}
|
||||
|
||||
private void HandDiceUnselected() {
|
||||
private void HandDiceUnselected()
|
||||
{
|
||||
_diceSelected = null;
|
||||
UnhighlightRoomAsOption();
|
||||
}
|
||||
|
||||
private void HandleTorchAbilityUsed()
|
||||
{
|
||||
if (CheckIfValidRoomToExplore())
|
||||
{
|
||||
_usingTorchAbility = true;
|
||||
HighlightRoomAsOption();
|
||||
}
|
||||
}
|
||||
|
||||
private void HandleRoomExploredByTorch(Room roomExploredByTorch)
|
||||
{
|
||||
_usingTorchAbility = false;
|
||||
if (_diceSelected != null && TryUnlock(_diceSelected))
|
||||
{
|
||||
return;
|
||||
}
|
||||
UnhighlightRoomAsOption();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue