Merge branch 'main' into SP3-2-Physics

This commit is contained in:
Diren D Bharwani 2023-03-04 13:44:53 +08:00
parent e2d96569b5
commit 15bbf6892f
26 changed files with 684 additions and 212 deletions

View File

@ -277,7 +277,12 @@
Position Offset: {x: 0, y: 0.5, z: 0} Position Offset: {x: 0, y: 0.5, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0} Rotation Offset: {x: 0, y: 0, z: 0}
IsActive: true IsActive: true
Scripts: ~ Scripts:
- Type: SHADE_Scripting.Audio.SoundLoopEmitter
Enabled: true
clipHandlerName: SFXWash65
clipPath: event:/Props/washing_machine_loop
volume: 0.300000012
- EID: 66 - EID: 66
Name: washingMachineDoor Name: washingMachineDoor
IsActive: true IsActive: true
@ -418,7 +423,12 @@
Position Offset: {x: 0, y: 0.5, z: 0} Position Offset: {x: 0, y: 0.5, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0} Rotation Offset: {x: 0, y: 0, z: 0}
IsActive: true IsActive: true
Scripts: ~ Scripts:
- Type: SHADE_Scripting.Audio.SoundLoopEmitter
Enabled: true
clipHandlerName: SFXWash43
clipPath: event:/Props/washing_machine_loop
volume: 0.300000012
- EID: 44 - EID: 44
Name: washingMachineDoor Name: washingMachineDoor
IsActive: true IsActive: true
@ -460,7 +470,12 @@
Position Offset: {x: 0, y: 0.5, z: 0} Position Offset: {x: 0, y: 0.5, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0} Rotation Offset: {x: 0, y: 0, z: 0}
IsActive: true IsActive: true
Scripts: ~ Scripts:
- Type: SHADE_Scripting.Audio.SoundLoopEmitter
Enabled: true
clipHandlerName: SFXWash42
clipPath: event:/Props/washing_machine_loop
volume: 0.300000012
- EID: 131081 - EID: 131081
Name: washingMachineDoor Name: washingMachineDoor
IsActive: true IsActive: true
@ -2403,7 +2418,7 @@
Components: Components:
Transform Component: Transform Component:
Translate: {x: 0, y: 0, z: 0} Translate: {x: 0, y: 0, z: 0}
Rotate: {x: 0, y: 0, z: 0} Rotate: {x: 0.5, y: -299.5, z: 0.5}
Scale: {x: 1, y: 1, z: 1} Scale: {x: 1, y: 1, z: 1}
IsActive: true IsActive: true
Renderable Component: Renderable Component:
@ -4101,60 +4116,6 @@
Rotation Offset: {x: 0, y: 0, z: 0} Rotation Offset: {x: 0, y: 0, z: 0}
IsActive: true IsActive: true
Scripts: ~ Scripts: ~
- EID: 199
Name: =====Text====
IsActive: true
NumberOfChildren: 3
Components: ~
Scripts: ~
- EID: 237
Name: Score
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: -800, y: 400, z: 0.100000001}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 60, y: 60, z: 60}
IsActive: true
Text Renderer Component:
Text: "Score: 0"
Font: 176667660
Color: {x: 1, y: 1, z: 1, w: 1}
IsActive: true
Scripts: ~
- EID: 206
Name: Timer
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 500, y: 400, z: 0.100000001}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 60, y: 60, z: 60}
IsActive: true
Text Renderer Component:
Text: "Time Left: 200"
Font: 176667660
Color: {x: 1, y: 1, z: 1, w: 1}
IsActive: true
Scripts: ~
- EID: 238
Name: Multiplier
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: -800, y: 300, z: 0.100000001}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 60, y: 60, z: 60}
IsActive: true
Text Renderer Component:
Text: ""
Font: 176667660
Color: {x: 1, y: 1, z: 1, w: 1}
IsActive: true
Scripts: ~
- EID: 236 - EID: 236
Name: ====GameManager==== Name: ====GameManager====
IsActive: true IsActive: true
@ -4169,9 +4130,9 @@
totalItemCount: 4 totalItemCount: 4
Score: 0 Score: 0
timer: 200 timer: 200
scoreText: 237 scoreText: 449
timeText: 206 timeText: 520
multiplierText: 238 multiplierText: 139
maxMultiplierDuration: 5 maxMultiplierDuration: 5
maxMultiplierCombo: 10 maxMultiplierCombo: 10
multiplierFont: 60 multiplierFont: 60
@ -4225,6 +4186,7 @@
- Type: Homeowner1 - Type: Homeowner1
Enabled: true Enabled: true
waypointsPool: 234 waypointsPool: 234
startWaypoint: 233
patrolSpeed: 3 patrolSpeed: 3
chaseSpeed: 6 chaseSpeed: 6
turningSpeed: 5 turningSpeed: 5
@ -5221,7 +5183,7 @@
Transform Component: Transform Component:
Translate: {x: 0, y: 100, z: 0} Translate: {x: 0, y: 100, z: 0}
Rotate: {x: 0, y: 0, z: 0} Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 300, y: 200, z: 500} Scale: {x: 400, y: 100, z: 500}
IsActive: true IsActive: true
Renderable Component: Renderable Component:
Mesh: 141771688 Mesh: 141771688
@ -5237,7 +5199,15 @@
Hovered: false Hovered: false
Clicked: false Clicked: false
IsActive: true IsActive: true
Scripts: ~ Scripts:
- Type: SHADE_Scripting.UI.ButtonFX
Enabled: true
onHoverEnterSound: event:/Music/player_undetected
onHoverExitSound: event:/Music/player_undetected
onClickSound: event:/Music/player_undetected
onReleaseSound: event:/Music/player_undetected
hoverScale: 1.10000002
clickScale: 0.899999976
- EID: 456 - EID: 456
Name: QuitButton Name: QuitButton
IsActive: true IsActive: true
@ -5246,7 +5216,7 @@
Transform Component: Transform Component:
Translate: {x: 0, y: -300, z: 0} Translate: {x: 0, y: -300, z: 0}
Rotate: {x: 0, y: 0, z: 0} Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 300, y: 200, z: 500} Scale: {x: 400, y: 100, z: 500}
IsActive: true IsActive: true
Renderable Component: Renderable Component:
Mesh: 141771688 Mesh: 141771688
@ -5262,7 +5232,15 @@
Hovered: false Hovered: false
Clicked: false Clicked: false
IsActive: true IsActive: true
Scripts: ~ Scripts:
- Type: SHADE_Scripting.UI.ButtonFX
Enabled: true
onHoverEnterSound: event:/Music/player_undetected
onHoverExitSound: event:/Music/player_undetected
onClickSound: event:/Music/player_undetected
onReleaseSound: event:/Music/player_undetected
hoverScale: 1.10000002
clickScale: 0.899999976
- EID: 455 - EID: 455
Name: RetryButton Name: RetryButton
IsActive: true IsActive: true
@ -5271,7 +5249,7 @@
Transform Component: Transform Component:
Translate: {x: 0, y: -100, z: 0} Translate: {x: 0, y: -100, z: 0}
Rotate: {x: 0, y: 0, z: 0} Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 300, y: 200, z: 500} Scale: {x: 400, y: 100, z: 500}
IsActive: true IsActive: true
Renderable Component: Renderable Component:
Mesh: 141771688 Mesh: 141771688
@ -5287,7 +5265,15 @@
Hovered: false Hovered: false
Clicked: false Clicked: false
IsActive: true IsActive: true
Scripts: ~ Scripts:
- Type: SHADE_Scripting.UI.ButtonFX
Enabled: true
onHoverEnterSound: event:/Music/player_undetected
onHoverExitSound: event:/Music/player_undetected
onClickSound: event:/Music/player_undetected
onReleaseSound: event:/Music/player_undetected
hoverScale: 1.10000002
clickScale: 0.899999976
- EID: 454 - EID: 454
Name: GamePauseText Name: GamePauseText
IsActive: true IsActive: true
@ -5300,8 +5286,9 @@
IsActive: true IsActive: true
Text Renderer Component: Text Renderer Component:
Text: Game Pause Text: Game Pause
Font: 176667660 Font: 174412429
Color: {x: 1, y: 1, z: 1, w: 1} Color: {x: 1, y: 1, z: 1, w: 1}
Text Size: {x: 1, y: 1, z: 1}
IsActive: false IsActive: false
UI Component: UI Component:
Canvas ID: 458 Canvas ID: 458
@ -5345,3 +5332,145 @@
alphaValue: 1 alphaValue: 1
fadeInTime: 0.5 fadeInTime: 0.5
fadeOutTime: 0.5 fadeOutTime: 0.5
- EID: 459
Name: Gameplay Canvas
IsActive: true
NumberOfChildren: 3
Components:
Canvas Component:
Canvas Width: 1920
Canvas Height: 1080
Scale by canvas width: false
IsActive: true
Scripts: ~
- EID: 449
Name: Score Text
IsActive: true
NumberOfChildren: 1
Components:
Transform Component:
Translate: {x: -800, y: 365, z: 0.600000024}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 100, y: 100, z: 60}
IsActive: true
Text Renderer Component:
Text: My name is Brandon.
Font: 174412429
Color: {x: 1, y: 1, z: 1, w: 1}
Text Size: {x: 1, y: 1, z: 1}
IsActive: true
UI Component:
Canvas ID: 459
Hovered: false
Clicked: false
IsActive: true
Scripts: ~
- EID: 521
Name: Score BG
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 0.300000012, y: 0.600000024, z: 0.98999995}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 3.45600009, y: 2, z: 1}
IsActive: true
Renderable Component:
Mesh: 141771688
Material: 127527215
IsActive: true
UI Component:
Canvas ID: 459
Hovered: false
Clicked: false
IsActive: true
Scripts: ~
- EID: 520
Name: Timer Text
IsActive: true
NumberOfChildren: 1
Components:
Transform Component:
Translate: {x: 700, y: 400, z: 0.100000001}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 60, y: 60, z: 60}
IsActive: true
Text Renderer Component:
Text: My name is Brandon.
Font: 174412429
Color: {x: 1, y: 1, z: 1, w: 1}
Text Size: {x: 1, y: 1, z: 1}
IsActive: true
UI Component:
Canvas ID: 459
Hovered: false
Clicked: false
IsActive: true
Scripts: ~
- EID: 519
Name: Timer BG
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 0.5, y: 0.300000012, z: 0.98999995}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 5, y: 2, z: 1}
IsActive: true
Renderable Component:
Mesh: 141771688
Material: 126220632
IsActive: true
UI Component:
Canvas ID: 459
Hovered: false
Clicked: false
IsActive: true
Scripts: ~
- EID: 139
Name: Multiplier Text
IsActive: true
NumberOfChildren: 1
Components:
Transform Component:
Translate: {x: -800, y: 250, z: 0.100000001}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 50, y: 50, z: 60}
IsActive: true
Text Renderer Component:
Text: X2
Font: 174412429
Color: {x: 1, y: 1, z: 1, w: 1}
Text Size: {x: 1, y: 1, z: 1}
IsActive: true
UI Component:
Canvas ID: 459
Hovered: false
Clicked: false
IsActive: true
Scripts:
- Type: SHADE_Scripting.UI.MultiplierTextFx
Enabled: true
maxSize: 1
minSize: 0.300000012
minAlpha: 0.300000012
- EID: 518
Name: Multiplier BG
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 0.400000006, y: 0.400000006, z: 0.98999995}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 4.26499987, y: 2, z: 1}
IsActive: true
Renderable Component:
Mesh: 141771688
Material: 133784677
IsActive: true
UI Component:
Canvas ID: 459
Hovered: false
Clicked: false
IsActive: true
Scripts: ~

View File

@ -464,6 +464,8 @@
Enabled: true Enabled: true
threshHold: 0.5 threshHold: 0.5
ignoreRaccoon: true ignoreRaccoon: true
breakClipHandlerName: SFXEggBreak144
breakClipPath: event:/Props/impact_egg
- Type: Item - Type: Item
Enabled: true Enabled: true
Score: 10 Score: 10
@ -1652,6 +1654,8 @@
Enabled: true Enabled: true
threshHold: 4 threshHold: 4
ignoreRaccoon: true ignoreRaccoon: true
breakClipHandlerName: SFXWatermelonBreak464
breakClipPath: event:/Props/impact_watermelon_break
- Type: Item - Type: Item
Enabled: true Enabled: true
Score: 500 Score: 500
@ -2064,6 +2068,8 @@
Enabled: true Enabled: true
threshHold: 4 threshHold: 4
ignoreRaccoon: true ignoreRaccoon: true
breakClipHandlerName: SFXWatermelonBreak522
breakClipPath: event:/Props/impact_watermelon_break
- Type: Item - Type: Item
Enabled: true Enabled: true
Score: 500 Score: 500
@ -2085,8 +2091,8 @@
Scale: {x: 1, y: 1, z: 1} Scale: {x: 1, y: 1, z: 1}
IsActive: false IsActive: false
Renderable Component: Renderable Component:
Mesh: 0 Mesh: 144023586
Material: 0 Material: 122370915
IsActive: false IsActive: false
RigidBody Component: RigidBody Component:
Type: Dynamic Type: Dynamic
@ -2182,8 +2188,8 @@
NumberOfChildren: 0 NumberOfChildren: 0
Components: Components:
Transform Component: Transform Component:
Translate: {x: -0.230162144, y: -0.0580062866, z: -0.00789308548} Translate: {x: 0, y: 0, z: 0}
Rotate: {x: 0, y: 3.6088712e-09, z: 1.97286229e-16} Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 1, y: 1, z: 1} Scale: {x: 1, y: 1, z: 1}
IsActive: false IsActive: false
Renderable Component: Renderable Component:
@ -2195,8 +2201,8 @@
Drag: 0.00999999978 Drag: 0.00999999978
Angular Drag: 0.100000001 Angular Drag: 0.100000001
Use Gravity: true Use Gravity: true
Interpolate: false Interpolate: true
Sleeping Enabled: true Sleeping Enabled: false
Freeze Position X: false Freeze Position X: false
Freeze Position Y: false Freeze Position Y: false
Freeze Position Z: false Freeze Position Z: false
@ -2374,6 +2380,8 @@
Enabled: true Enabled: true
threshHold: 4 threshHold: 4
ignoreRaccoon: true ignoreRaccoon: true
breakClipHandlerName: SFXWatermelonBreak156
breakClipPath: event:/Props/impact_watermelon_break
- Type: Item - Type: Item
Enabled: true Enabled: true
Score: 500 Score: 500
@ -2684,6 +2692,8 @@
Enabled: true Enabled: true
threshHold: 0.5 threshHold: 0.5
ignoreRaccoon: true ignoreRaccoon: true
breakClipHandlerName: SFXEggBreak533
breakClipPath: event:/Props/impact_egg
- Type: Item - Type: Item
Enabled: true Enabled: true
Score: 10 Score: 10
@ -2903,6 +2913,8 @@
Enabled: true Enabled: true
threshHold: 0.5 threshHold: 0.5
ignoreRaccoon: true ignoreRaccoon: true
breakClipHandlerName: SFXEggBreak538
breakClipPath: event:/Props/impact_egg
- Type: Item - Type: Item
Enabled: true Enabled: true
Score: 10 Score: 10
@ -3122,6 +3134,8 @@
Enabled: true Enabled: true
threshHold: 0.5 threshHold: 0.5
ignoreRaccoon: true ignoreRaccoon: true
breakClipHandlerName: SFXEggBreak543
breakClipPath: event:/Props/impact_egg
- Type: Item - Type: Item
Enabled: true Enabled: true
Score: 10 Score: 10
@ -3477,6 +3491,7 @@
Text: My name is Brandon. Text: My name is Brandon.
Font: 174412429 Font: 174412429
Color: {x: 1, y: 1, z: 1, w: 1} Color: {x: 1, y: 1, z: 1, w: 1}
Text Size: {x: 1, y: 1, z: 1}
IsActive: true IsActive: true
UI Component: UI Component:
Canvas ID: 199 Canvas ID: 199
@ -3505,19 +3520,40 @@
IsActive: true IsActive: true
Scripts: ~ Scripts: ~
- EID: 206 - EID: 206
Name: Timer Name: Timer Text
IsActive: true IsActive: true
NumberOfChildren: 0 NumberOfChildren: 1
Components: Components:
Transform Component: Transform Component:
Translate: {x: 500, y: 400, z: 0.100000001} Translate: {x: 700, y: 400, z: 0.100000001}
Rotate: {x: 0, y: 0, z: 0} Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 60, y: 60, z: 60} Scale: {x: 60, y: 60, z: 60}
IsActive: true IsActive: true
Text Renderer Component: Text Renderer Component:
Text: My name is Brandon. Text: My name is Brandon.
Font: 176667660 Font: 174412429
Color: {x: 1, y: 1, z: 1, w: 1} Color: {x: 1, y: 1, z: 1, w: 1}
Text Size: {x: 1, y: 1, z: 1}
IsActive: true
UI Component:
Canvas ID: 199
Hovered: false
Clicked: false
IsActive: true
Scripts: ~
- EID: 520
Name: Timer BG
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 0.5, y: 0.300000012, z: 0.98999995}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 5, y: 2, z: 1}
IsActive: true
Renderable Component:
Mesh: 141771688
Material: 126220632
IsActive: true IsActive: true
UI Component: UI Component:
Canvas ID: 199 Canvas ID: 199
@ -3539,6 +3575,7 @@
Text: X2 Text: X2
Font: 174412429 Font: 174412429
Color: {x: 1, y: 1, z: 1, w: 1} Color: {x: 1, y: 1, z: 1, w: 1}
Text Size: {x: 1, y: 1, z: 1}
IsActive: true IsActive: true
UI Component: UI Component:
Canvas ID: 199 Canvas ID: 199
@ -3551,7 +3588,7 @@
maxSize: 1 maxSize: 1
minSize: 0.300000012 minSize: 0.300000012
minAlpha: 0.300000012 minAlpha: 0.300000012
- EID: 520 - EID: 519
Name: Multiplier BG Name: Multiplier BG
IsActive: true IsActive: true
NumberOfChildren: 0 NumberOfChildren: 0
@ -3803,6 +3840,8 @@
Enabled: true Enabled: true
threshHold: 0.100000001 threshHold: 0.100000001
ignoreRaccoon: false ignoreRaccoon: false
breakClipHandlerName: SFXBreak1
breakClipPath: event:/Props/impact_break
- EID: 196 - EID: 196
Name: Piece1 Name: Piece1
IsActive: false IsActive: false
@ -4012,6 +4051,8 @@
Enabled: true Enabled: true
threshHold: 0.100000001 threshHold: 0.100000001
ignoreRaccoon: false ignoreRaccoon: false
breakClipHandlerName: SFXBreak171
breakClipPath: event:/Props/impact_break
- EID: 65703 - EID: 65703
Name: Piece1 Name: Piece1
IsActive: false IsActive: false
@ -4221,6 +4262,8 @@
Enabled: true Enabled: true
threshHold: 0.100000001 threshHold: 0.100000001
ignoreRaccoon: false ignoreRaccoon: false
breakClipHandlerName: SFXBreak150
breakClipPath: event:/Props/impact_break
- EID: 149 - EID: 149
Name: Piece1 Name: Piece1
IsActive: false IsActive: false
@ -4430,6 +4473,8 @@
Enabled: true Enabled: true
threshHold: 0.100000001 threshHold: 0.100000001
ignoreRaccoon: false ignoreRaccoon: false
breakClipHandlerName: SFXBreak145
breakClipPath: event:/Props/impact_break
- EID: 488 - EID: 488
Name: Piece1 Name: Piece1
IsActive: false IsActive: false
@ -4639,6 +4684,8 @@
Enabled: true Enabled: true
threshHold: 0.100000001 threshHold: 0.100000001
ignoreRaccoon: false ignoreRaccoon: false
breakClipHandlerName: SFXBreak492
breakClipPath: event:/Props/impact_break
- EID: 493 - EID: 493
Name: Piece1 Name: Piece1
IsActive: false IsActive: false
@ -4848,6 +4895,8 @@
Enabled: true Enabled: true
threshHold: 0.100000001 threshHold: 0.100000001
ignoreRaccoon: false ignoreRaccoon: false
breakClipHandlerName: SFXBreak497
breakClipPath: event:/Props/impact_break
- EID: 498 - EID: 498
Name: Piece1 Name: Piece1
IsActive: false IsActive: false
@ -5057,6 +5106,8 @@
Enabled: true Enabled: true
threshHold: 0.100000001 threshHold: 0.100000001
ignoreRaccoon: false ignoreRaccoon: false
breakClipHandlerName: SFXBreak502
breakClipPath: event:/Props/impact_break
- EID: 503 - EID: 503
Name: Piece1 Name: Piece1
IsActive: false IsActive: false
@ -5266,6 +5317,8 @@
Enabled: true Enabled: true
threshHold: 0.100000001 threshHold: 0.100000001
ignoreRaccoon: false ignoreRaccoon: false
breakClipHandlerName: SFXBreak507
breakClipPath: event:/Props/impact_break
- EID: 508 - EID: 508
Name: Piece1 Name: Piece1
IsActive: false IsActive: false
@ -5475,6 +5528,8 @@
Enabled: true Enabled: true
threshHold: 0.100000001 threshHold: 0.100000001
ignoreRaccoon: false ignoreRaccoon: false
breakClipHandlerName: SFXBreak512
breakClipPath: event:/Props/impact_break
- EID: 513 - EID: 513
Name: Piece1 Name: Piece1
IsActive: false IsActive: false
@ -5684,6 +5739,8 @@
Enabled: true Enabled: true
threshHold: 0.100000001 threshHold: 0.100000001
ignoreRaccoon: false ignoreRaccoon: false
breakClipHandlerName: SFXBreak517
breakClipPath: event:/Props/impact_break
- EID: 518 - EID: 518
Name: Piece1 Name: Piece1
IsActive: false IsActive: false
@ -5725,7 +5782,7 @@
Rotation Offset: {x: 0, y: 0, z: 0} Rotation Offset: {x: 0, y: 0, z: 0}
IsActive: false IsActive: false
Scripts: ~ Scripts: ~
- EID: 519 - EID: 461
Name: Piece2 Name: Piece2
IsActive: false IsActive: false
NumberOfChildren: 0 NumberOfChildren: 0
@ -5766,7 +5823,7 @@
Rotation Offset: {x: 0, y: 0, z: 0} Rotation Offset: {x: 0, y: 0, z: 0}
IsActive: false IsActive: false
Scripts: ~ Scripts: ~
- EID: 461 - EID: 460
Name: Piece3 Name: Piece3
IsActive: false IsActive: false
NumberOfChildren: 0 NumberOfChildren: 0
@ -5807,7 +5864,7 @@
Rotation Offset: {x: 0, y: 0, z: 0} Rotation Offset: {x: 0, y: 0, z: 0}
IsActive: false IsActive: false
Scripts: ~ Scripts: ~
- EID: 460 - EID: 459
Name: Piece4 Name: Piece4
IsActive: false IsActive: false
NumberOfChildren: 0 NumberOfChildren: 0
@ -5855,7 +5912,7 @@
Components: ~ Components: ~
Scripts: ~ Scripts: ~
- EID: 165 - EID: 165
Name: 1 Name: 0
IsActive: true IsActive: true
NumberOfChildren: 0 NumberOfChildren: 0
Components: Components:
@ -5866,7 +5923,7 @@
IsActive: true IsActive: true
Scripts: ~ Scripts: ~
- EID: 164 - EID: 164
Name: 2 Name: 1
IsActive: true IsActive: true
NumberOfChildren: 0 NumberOfChildren: 0
Components: Components:
@ -5877,7 +5934,7 @@
IsActive: true IsActive: true
Scripts: ~ Scripts: ~
- EID: 163 - EID: 163
Name: 3 Name: 2
IsActive: true IsActive: true
NumberOfChildren: 0 NumberOfChildren: 0
Components: Components:
@ -5888,7 +5945,7 @@
IsActive: true IsActive: true
Scripts: ~ Scripts: ~
- EID: 162 - EID: 162
Name: 4 Name: 3
IsActive: true IsActive: true
NumberOfChildren: 0 NumberOfChildren: 0
Components: Components:
@ -5899,7 +5956,7 @@
IsActive: true IsActive: true
Scripts: ~ Scripts: ~
- EID: 161 - EID: 161
Name: 5 Name: 4
IsActive: true IsActive: true
NumberOfChildren: 0 NumberOfChildren: 0
Components: Components:
@ -5910,7 +5967,7 @@
IsActive: true IsActive: true
Scripts: ~ Scripts: ~
- EID: 160 - EID: 160
Name: 6 Name: 5
IsActive: true IsActive: true
NumberOfChildren: 0 NumberOfChildren: 0
Components: Components:
@ -5921,7 +5978,7 @@
IsActive: true IsActive: true
Scripts: ~ Scripts: ~
- EID: 159 - EID: 159
Name: 7 Name: 6
IsActive: true IsActive: true
NumberOfChildren: 0 NumberOfChildren: 0
Components: Components:
@ -5937,7 +5994,7 @@
NumberOfChildren: 0 NumberOfChildren: 0
Components: Components:
Transform Component: Transform Component:
Translate: {x: 0.0576689839, y: 0, z: -2.61272359} Translate: {x: -3.45969725, y: 0, z: -2.61272359}
Rotate: {x: -0, y: 0, z: -0} Rotate: {x: -0, y: 0, z: -0}
Scale: {x: 1, y: 1, z: 1} Scale: {x: 1, y: 1, z: 1}
IsActive: true IsActive: true
@ -5975,12 +6032,13 @@
- Type: Homeowner1 - Type: Homeowner1
Enabled: true Enabled: true
waypointsPool: 166 waypointsPool: 166
startWaypoint: 162
patrolSpeed: 3 patrolSpeed: 3
chaseSpeed: 6 chaseSpeed: 6
turningSpeed: 5 turningSpeed: 5
sightDistance: 8 sightDistance: 8
eyeOffset: [0, 1.64999998, 0] eyeOffset: [0, 1.64999998, 0]
distanceToCapture: 0.5 distanceToCapture: 0.800000012
captureTime: 0.5 captureTime: 0.5
footstepSFXIntervalMultiplier: 0.5 footstepSFXIntervalMultiplier: 0.5
- EID: 12 - EID: 12
@ -6061,14 +6119,14 @@
Enabled: true Enabled: true
- EID: 10 - EID: 10
Name: Pause Canvas Name: Pause Canvas
IsActive: true IsActive: false
NumberOfChildren: 4 NumberOfChildren: 4
Components: Components:
Canvas Component: Canvas Component:
Canvas Width: 1920 Canvas Width: 1920
Canvas Height: 1080 Canvas Height: 1080
Scale by canvas width: false Scale by canvas width: false
IsActive: true IsActive: false
Scripts: ~ Scripts: ~
- EID: 8 - EID: 8
Name: ResumeButton Name: ResumeButton
@ -6110,7 +6168,7 @@
Components: Components:
Transform Component: Transform Component:
Translate: {x: 0, y: -300, z: 0} Translate: {x: 0, y: -300, z: 0}
Rotate: {x: -4.5, y: 2, z: -2.5} Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 400, y: 100, z: 500} Scale: {x: 400, y: 100, z: 500}
IsActive: true IsActive: true
Renderable Component: Renderable Component:
@ -6136,7 +6194,7 @@
onReleaseSound: event:/Music/player_undetected onReleaseSound: event:/Music/player_undetected
hoverScale: 1.10000002 hoverScale: 1.10000002
clickScale: 0.899999976 clickScale: 0.899999976
- EID: 459 - EID: 458
Name: RetryButton Name: RetryButton
IsActive: true IsActive: true
NumberOfChildren: 0 NumberOfChildren: 0
@ -6175,14 +6233,15 @@
NumberOfChildren: 0 NumberOfChildren: 0
Components: Components:
Transform Component: Transform Component:
Translate: {x: -250, y: 300, z: 0} Translate: {x: -250, y: 300, z: 0.100000001}
Rotate: {x: 0, y: 0, z: 0} Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 100, y: 100, z: 100} Scale: {x: 100, y: 100, z: 100}
IsActive: true IsActive: true
Text Renderer Component: Text Renderer Component:
Text: Game Pause Text: Game Pause
Font: 176667660 Font: 174412429
Color: {x: 1, y: 1, z: 1, w: 1} Color: {x: 1, y: 1, z: 1, w: 1}
Text Size: {x: 1, y: 1, z: 1}
IsActive: false IsActive: false
UI Component: UI Component:
Canvas ID: 10 Canvas ID: 10
@ -11912,7 +11971,7 @@
Rotation Offset: {x: 0, y: 0, z: 0} Rotation Offset: {x: 0, y: 0, z: 0}
IsActive: true IsActive: true
Scripts: ~ Scripts: ~
- EID: 458 - EID: 457
Name: Exterior Name: Exterior
IsActive: true IsActive: true
NumberOfChildren: 5 NumberOfChildren: 5
@ -14576,7 +14635,7 @@
Material: 131956078 Material: 131956078
IsActive: true IsActive: true
Scripts: ~ Scripts: ~
- EID: 457 - EID: 174
Name: Exterior_Bush02 Name: Exterior_Bush02
IsActive: true IsActive: true
NumberOfChildren: 0 NumberOfChildren: 0
@ -14591,7 +14650,7 @@
Material: 131956078 Material: 131956078
IsActive: true IsActive: true
Scripts: ~ Scripts: ~
- EID: 174 - EID: 173
Name: Exterior_Bush01 Name: Exterior_Bush01
IsActive: true IsActive: true
NumberOfChildren: 0 NumberOfChildren: 0
@ -14606,7 +14665,7 @@
Material: 131956078 Material: 131956078
IsActive: true IsActive: true
Scripts: ~ Scripts: ~
- EID: 173 - EID: 172
Name: Exterior_Bush02 Name: Exterior_Bush02
IsActive: true IsActive: true
NumberOfChildren: 0 NumberOfChildren: 0
@ -14621,7 +14680,7 @@
Material: 131956078 Material: 131956078
IsActive: true IsActive: true
Scripts: ~ Scripts: ~
- EID: 172 - EID: 548
Name: TweenManager Name: TweenManager
IsActive: true IsActive: true
NumberOfChildren: 0 NumberOfChildren: 0
@ -14629,7 +14688,7 @@
Scripts: Scripts:
- Type: SHADE_Scripting.UI.TweenManager - Type: SHADE_Scripting.UI.TweenManager
Enabled: true Enabled: true
- EID: 548 - EID: 549
Name: StealFoodCanvas Name: StealFoodCanvas
IsActive: true IsActive: true
NumberOfChildren: 1 NumberOfChildren: 1
@ -14640,7 +14699,7 @@
Scale by canvas width: false Scale by canvas width: false
IsActive: true IsActive: true
Scripts: ~ Scripts: ~
- EID: 549 - EID: 550
Name: StealFoodLogo Name: StealFoodLogo
IsActive: true IsActive: true
NumberOfChildren: 0 NumberOfChildren: 0
@ -14655,7 +14714,7 @@
Material: 127459277 Material: 127459277
IsActive: true IsActive: true
UI Component: UI Component:
Canvas ID: 548 Canvas ID: 549
Hovered: false Hovered: false
Clicked: false Clicked: false
IsActive: true IsActive: true
@ -14668,7 +14727,7 @@
rotationAmt: 1800 rotationAmt: 1800
scaleAmtX: 538 scaleAmtX: 538
scaleAmtY: 377 scaleAmtY: 377
- EID: 550 - EID: 551
Name: TransitionCanvas Name: TransitionCanvas
IsActive: true IsActive: true
NumberOfChildren: 1 NumberOfChildren: 1
@ -14679,7 +14738,7 @@
Scale by canvas width: false Scale by canvas width: false
IsActive: true IsActive: true
Scripts: ~ Scripts: ~
- EID: 551 - EID: 552
Name: Transition Name: Transition
IsActive: true IsActive: true
NumberOfChildren: 0 NumberOfChildren: 0
@ -14694,7 +14753,7 @@
Material: 120016136 Material: 120016136
IsActive: true IsActive: true
UI Component: UI Component:
Canvas ID: 550 Canvas ID: 551
Hovered: false Hovered: false
Clicked: false Clicked: false
IsActive: true IsActive: true
@ -14704,7 +14763,7 @@
alphaValue: 1 alphaValue: 1
fadeInTime: 0.5 fadeInTime: 0.5
fadeOutTime: 0.5 fadeOutTime: 0.5
- EID: 552 - EID: 553
Name: TweenManager Name: TweenManager
IsActive: true IsActive: true
NumberOfChildren: 0 NumberOfChildren: 0
@ -14712,7 +14771,7 @@
Scripts: Scripts:
- Type: SHADE_Scripting.UI.TweenManager - Type: SHADE_Scripting.UI.TweenManager
Enabled: true Enabled: true
- EID: 553 - EID: 554
Name: CameraPoints Name: CameraPoints
IsActive: true IsActive: true
NumberOfChildren: 3 NumberOfChildren: 3
@ -14725,7 +14784,7 @@
endPoint3: [1.14999998, 2.20000005, 2] endPoint3: [1.14999998, 2.20000005, 2]
playerCamera: 4 playerCamera: 4
duration: 3 duration: 3
- EID: 554 - EID: 555
Name: PreviewLevel1 Name: PreviewLevel1
IsActive: true IsActive: true
NumberOfChildren: 0 NumberOfChildren: 0
@ -14747,7 +14806,7 @@
FOV: 90 FOV: 90
IsActive: true IsActive: true
Scripts: ~ Scripts: ~
- EID: 555 - EID: 556
Name: PreviewLevel2 Name: PreviewLevel2
IsActive: true IsActive: true
NumberOfChildren: 0 NumberOfChildren: 0
@ -14769,7 +14828,7 @@
FOV: 90 FOV: 90
IsActive: true IsActive: true
Scripts: ~ Scripts: ~
- EID: 556 - EID: 557
Name: PreviewLevel3 Name: PreviewLevel3
IsActive: true IsActive: true
NumberOfChildren: 0 NumberOfChildren: 0

View File

@ -1100,7 +1100,11 @@
Hovered: false Hovered: false
Clicked: false Clicked: false
IsActive: true IsActive: true
Scripts: ~ Scripts:
- Type: SHADE_Scripting.UI.ScrollingCredits
Enabled: true
endY: 4000
duration: 20
- EID: 48 - EID: 48
Name: BackButton Name: BackButton
IsActive: true IsActive: true
@ -1131,23 +1135,23 @@
canvasToActivate: 0 canvasToActivate: 0
- EID: 49 - EID: 49
Name: Credits Title Text Name: Credits Title Text
IsActive: true IsActive: false
NumberOfChildren: 0 NumberOfChildren: 0
Components: Components:
Transform Component: Transform Component:
Translate: {x: -150, y: 400, z: 0.100000001} Translate: {x: -150, y: 400, z: 0.100000001}
Rotate: {x: 0, y: 0, z: 0} Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 100, y: 100, z: 1} Scale: {x: 100, y: 100, z: 1}
IsActive: true IsActive: false
Text Renderer Component: Text Renderer Component:
Text: Credits Text: Credits
Font: 174412429 Font: 174412429
IsActive: true IsActive: false
UI Component: UI Component:
Canvas ID: 46 Canvas ID: 46
Hovered: false Hovered: false
Clicked: false Clicked: false
IsActive: true IsActive: false
Scripts: ~ Scripts: ~
- EID: 50 - EID: 50
Name: Level Select Canvas Name: Level Select Canvas

View File

@ -10,12 +10,9 @@
IsActive: true IsActive: true
RigidBody Component: RigidBody Component:
Type: Dynamic Type: Dynamic
Auto Mass: false
Mass: 1
Drag: 0.00999999978 Drag: 0.00999999978
Angular Drag: 0.100000001 Angular Drag: 0.100000001
Use Gravity: true Use Gravity: true
Gravity Scale: 1
Interpolate: false Interpolate: false
Sleeping Enabled: true Sleeping Enabled: true
Freeze Position X: false Freeze Position X: false
@ -38,6 +35,10 @@
Rotation Offset: {x: 0, y: 0, z: 0} Rotation Offset: {x: 0, y: 0, z: 0}
IsActive: true IsActive: true
Scripts: Scripts:
- Type: PhysicsTestObj
Enabled: true
forceAmount: 50
torqueAmount: 500
- Type: CollisionTest - Type: CollisionTest
Enabled: true Enabled: true
- EID: 1 - EID: 1
@ -74,10 +75,10 @@
Yaw: 0 Yaw: 0
Roll: 0 Roll: 0
Width: 1920 Width: 1920
Height: 1080
Near: 0.00999999978 Near: 0.00999999978
Far: 10000 Far: 10000
Perspective: true Perspective: true
FOV: 90
IsActive: true IsActive: true
Scripts: ~ Scripts: ~
- EID: 65539 - EID: 65539
@ -172,6 +173,43 @@
Rotation Offset: {x: 0, y: 0, z: 0} Rotation Offset: {x: 0, y: 0, z: 0}
IsActive: true IsActive: true
Scripts: ~ Scripts: ~
- EID: 7
Name: Default
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 0, y: 0, z: 3}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 1, y: 1, z: 1}
IsActive: true
RigidBody Component:
Type: Dynamic
Drag: 0.00999999978
Angular Drag: 0.100000001
Use Gravity: true
Interpolate: true
Sleeping Enabled: true
Freeze Position X: false
Freeze Position Y: false
Freeze Position Z: false
Freeze Rotation X: false
Freeze Rotation Y: false
Freeze Rotation Z: false
IsActive: true
Collider Component:
Colliders:
- Is Trigger: false
Collision Tag: 1
Type: Box
Half Extents: {x: 1, y: 1, z: 1}
Friction: 0.400000006
Bounciness: 0
Density: 1
Position Offset: {x: 0, y: 0, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0}
IsActive: true
Scripts: ~
- EID: 8 - EID: 8
Name: Target Name: Target
IsActive: true IsActive: true

View File

@ -0,0 +1,32 @@
using SHADE;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SHADE_Scripting.Audio
{
public class SoundLoopEmitter : Script
{
[SerializeField]
private string clipHandlerName;
[SerializeField]
private string clipPath;
public float volume;
protected override void awake()
{
AudioHandler.audioClipHandlers[clipHandlerName] = SHADE.Audio.CreateAudioClip(clipPath);
}
protected override void start()
{
SHADE.Audio.AttachAudioClipToObject(AudioHandler.audioClipHandlers[clipHandlerName], GameObject.EntityId);
AudioHandler.audioClipHandlers[clipHandlerName].SetVolume(volume);
AudioHandler.audioClipHandlers[clipHandlerName].Play();
}
}
}

View File

@ -0,0 +1,3 @@
Name: CS_SoundLoopEmitter
ID: 154714630
Type: 9

View File

@ -1,4 +1,4 @@
/********************************************************************* /*********************************************************************
* \file Homeowner1.cs * \file Homeowner1.cs
* \author Ryan Wang Nian Jing * \author Ryan Wang Nian Jing
* \brief The implemented behaviour tree for the homeowner * \brief The implemented behaviour tree for the homeowner
@ -37,6 +37,9 @@ public partial class Homeowner1 : BehaviourTree
private List<GameObject> waypoints; private List<GameObject> waypoints;
[SerializeField]
private GameObject startWaypoint;
[SerializeField] [SerializeField]
[Tooltip("The AI will patrol at this speed")] [Tooltip("The AI will patrol at this speed")]
private float patrolSpeed; private float patrolSpeed;
@ -112,8 +115,14 @@ public partial class Homeowner1 : BehaviourTree
AudioHandler.audioClipHandlers["BGMAdaptive"] = Audio.CreateAudioClip("event:/Music/bgm_adaptive"); AudioHandler.audioClipHandlers["BGMAdaptive"] = Audio.CreateAudioClip("event:/Music/bgm_adaptive");
AudioHandler.audioClipHandlers["SFXFootstep"] = Audio.CreateAudioClip("event:/Homeowner/homeowner_footsteps"); AudioHandler.audioClipHandlers["SFXFootstep"] = Audio.CreateAudioClip("event:/Homeowner/homeowner_footsteps");
Audio.AttachAudioClipToObject(AudioHandler.audioClipHandlers["SFXFootstep"], GameObject.EntityId);
AudioHandler.audioClipHandlers["SFXDetectAh"] = Audio.CreateAudioClip("event:/Homeowner/homeowner_detect_raccoon"); AudioHandler.audioClipHandlers["SFXDetectAh"] = Audio.CreateAudioClip("event:/Homeowner/homeowner_detect_raccoon");
Audio.AttachAudioClipToObject(AudioHandler.audioClipHandlers["SFXDetectAh"], GameObject.EntityId);
AudioHandler.audioClipHandlers["SFXDetectSting"] = Audio.CreateAudioClip("event:/Music/stingers/player_detected"); AudioHandler.audioClipHandlers["SFXDetectSting"] = Audio.CreateAudioClip("event:/Music/stingers/player_detected");
AudioHandler.audioClipHandlers["SFXHumming"] = Audio.CreateAudioClip("event:/Homeowner/homeowner_humming");
Audio.AttachAudioClipToObject(AudioHandler.audioClipHandlers["SFXHumming"], GameObject.EntityId);
AudioHandler.audioClipHandlers["SFXHumming"].SetVolume(0.15f);
AudioHandler.audioClipHandlers["SFXHumming"].Play();
if (aiInstance != null && aiInstance != this) if (aiInstance != null && aiInstance != this)
RemoveScript<Homeowner1>(); RemoveScript<Homeowner1>();
@ -151,6 +160,8 @@ public partial class Homeowner1 : BehaviourTree
SetData("distanceToCapture", distanceToCapture); SetData("distanceToCapture", distanceToCapture);
if (GetData("baseCaptureTime") == null || (float)GetData("baseCaptureTime") != captureTime) if (GetData("baseCaptureTime") == null || (float)GetData("baseCaptureTime") != captureTime)
SetData("baseCaptureTime", captureTime); SetData("baseCaptureTime", captureTime);
if (GetData("startWaypoint") == null || (GameObject)GetData("startWaypoint") != startWaypoint)
SetData("startWaypoint", startWaypoint);
events.Tick(); events.Tick();

View File

@ -1,4 +1,4 @@
/********************************************************************* /*********************************************************************
* \file LeafAttack.cs * \file LeafAttack.cs
* \author Ryan Wang Nian Jing * \author Ryan Wang Nian Jing
* \brief Leaf node implementation for AI attacking the player * \brief Leaf node implementation for AI attacking the player
@ -12,6 +12,7 @@
using SHADE; using SHADE;
using SHADE_Scripting.AIBehaviour.BehaviourTree; using SHADE_Scripting.AIBehaviour.BehaviourTree;
using SHADE_Scripting.Audio;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
@ -98,6 +99,35 @@ public partial class LeafAttack : BehaviourTreeNode
if (player.GetScript<PlayerController>().stateMachine && !player.GetScript<PlayerController>().stateMachine.IsState(typeof(PlayerCaughtState))) if (player.GetScript<PlayerController>().stateMachine && !player.GetScript<PlayerController>().stateMachine.IsState(typeof(PlayerCaughtState)))
player.GetScript<PlayerController>().stateMachine.SetState(typeof(PlayerCaughtState)); player.GetScript<PlayerController>().stateMachine.SetState(typeof(PlayerCaughtState));
//Teleport AI back to home waypoint
int homeIndex = 0;
GameObject? startWaypoint = null;
List<GameObject>? waypoints = (List<GameObject>)GetNodeData("waypoints");
if (GetNodeData("startWaypoint") != null)
startWaypoint = (GameObject)GetNodeData("startWaypoint");
if (startWaypoint != null)
{
for (int i = 0; i < waypoints.Count; ++i)
{
if (startWaypoint == waypoints[i])
{
homeIndex = i;
}
}
}
SetNodeData("currentWaypointIndex", homeIndex);
SetNodeData("playerLastSightedWaypointIndex", homeIndex);
SetNodeData("isAlert", false);
Audio.SetParameterWithLabel("PlayerDetection", "Undetected");
AudioHandler.audioClipHandlers["SFXHumming"].Play();
Transform? transform = (Transform)GetNodeData("transform");
if (waypoints != null && transform != null)
{
transform.GlobalPosition = waypoints[homeIndex].GetComponent<Transform>().GlobalPosition;
}
ClearNodeData("target");
status = BehaviourTreeNodeStatus.SUCCESS; status = BehaviourTreeNodeStatus.SUCCESS;
onExit(BehaviourTreeNodeStatus.SUCCESS); onExit(BehaviourTreeNodeStatus.SUCCESS);
return status; return status;

View File

@ -60,7 +60,7 @@ public partial class LeafChase : BehaviourTreeNode
} }
} }
//Debug.Log("Player is nearest " + nearestWaypointIndex); //Debug.Log("Player is nearest " + nearestWaypointIndex);
//Debug.Log("I'm at " + (int)GetNodeData("currentWaypointIndex")); //Debug.Log("AI going to " + (int)GetNodeData("currentWaypointIndex"));
SetNodeData("playerLastSightedWaypointIndex", nearestWaypointIndex); SetNodeData("playerLastSightedWaypointIndex", nearestWaypointIndex);
} }
@ -78,6 +78,7 @@ public partial class LeafChase : BehaviourTreeNode
GetNodeData("distanceToCapture") == null || GetNodeData("distanceToCapture") == null ||
GetNodeData("baseCaptureTime") == null) GetNodeData("baseCaptureTime") == null)
{ {
//Debug.Log("Chase Failure: null values");
status = BehaviourTreeNodeStatus.FAILURE; status = BehaviourTreeNodeStatus.FAILURE;
onExit(BehaviourTreeNodeStatus.FAILURE); onExit(BehaviourTreeNodeStatus.FAILURE);
return status; return status;

View File

@ -29,7 +29,7 @@ public partial class LeafPatrol : BehaviourTreeNode
private float chaseSpeed; private float chaseSpeed;
private float turningSpeed; private float turningSpeed;
private float retreatTimer = 0.0f; private float retreatTimer = 0.0f;
private int currentWaypointIndex = 0; private int currentWaypointIndex = -1;
private bool retreatState = false; private bool retreatState = false;
private bool goingForwards = true; private bool goingForwards = true;
@ -47,7 +47,7 @@ public partial class LeafPatrol : BehaviourTreeNode
//node, and hence we do not need to inherit its constructors //node, and hence we do not need to inherit its constructors
public LeafPatrol(string name) : base(name) public LeafPatrol(string name) : base(name)
{ {
currentWaypointIndex = 0; currentWaypointIndex = -1;
} }
//When it comes to evaluating, //When it comes to evaluating,
@ -57,6 +57,42 @@ public partial class LeafPatrol : BehaviourTreeNode
//Debug.LogWarning("LeafPatrol"); //Debug.LogWarning("LeafPatrol");
onEnter(BehaviourTreeNodeStatus.RUNNING); onEnter(BehaviourTreeNodeStatus.RUNNING);
//Initialise home waypoint
waypoints = (List<GameObject>)GetNodeData("waypoints");
if (currentWaypointIndex == -1)
{
if (waypoints != null)
{
//Debug.Log("Waypoints not null");
if (GetNodeData("startWaypoint") != null)
{
//Debug.Log("Getting start waypoint");
GameObject startWaypoint = (GameObject)(GetNodeData("startWaypoint"));
for (int i = 0; i < waypoints.Count; ++i)
{
if (startWaypoint == waypoints[i])
{
//Debug.Log("Leaf Patrol Constructor: Start Waypoint Index: " + i.ToString());
currentWaypointIndex = i;
SetNodeData("currentWaypointIndex", i);
}
}
}
else
{
status = BehaviourTreeNodeStatus.FAILURE;
onExit(BehaviourTreeNodeStatus.FAILURE);
return status;
}
}
else
{
status = BehaviourTreeNodeStatus.FAILURE;
onExit(BehaviourTreeNodeStatus.FAILURE);
return status;
}
}
//Get data //Get data
if (GetNodeData("transform") == null || if (GetNodeData("transform") == null ||
GetNodeData("patrolSpeed") == null || GetNodeData("patrolSpeed") == null ||
@ -104,12 +140,13 @@ public partial class LeafPatrol : BehaviourTreeNode
ClearNodeData("isWaiting"); ClearNodeData("isWaiting");
return; return;
} }
waypoints = (List<GameObject>)GetNodeData("waypoints"); if (GetNodeData("currentWaypointIndex") != null)
if (waypoints == null)
{ {
return; //2023 Mar 4, 0400, this is needed when the AI teleports back to the first spot after catching
currentWaypointIndex = (int)GetNodeData("currentWaypointIndex");
} }
Vector3 targetPosition = waypoints[currentWaypointIndex].GetComponent<Transform>().GlobalPosition; //Modulo operator to prevent out of range exceptions
Vector3 targetPosition = waypoints[(currentWaypointIndex % waypoints.Count)].GetComponent<Transform>().GlobalPosition;
//Reach waypoint by X and Z being near enough //Reach waypoint by X and Z being near enough
//Do not consider Y of waypoints yet //Do not consider Y of waypoints yet
Vector3 remainingDistance = targetPosition - transform.GlobalPosition; Vector3 remainingDistance = targetPosition - transform.GlobalPosition;
@ -195,6 +232,8 @@ public partial class LeafPatrol : BehaviourTreeNode
//Debug.Log("AI is at " + transform.GlobalPosition.x.ToString() + " " + transform.GlobalPosition.y.ToString() + " " + transform.GlobalPosition.z.ToString()); //Debug.Log("AI is at " + transform.GlobalPosition.x.ToString() + " " + transform.GlobalPosition.y.ToString() + " " + transform.GlobalPosition.z.ToString());
Vector3 normalisedDifference = targetPosition - transform.GlobalPosition; Vector3 normalisedDifference = targetPosition - transform.GlobalPosition;
normalisedDifference.y = 0.0f; //Do not move vertically normalisedDifference.y = 0.0f; //Do not move vertically
//Debug.Log("Leaf Patrol Current Waypoint Index: " + currentWaypointIndex.ToString());
//Debug.Log("True Difference x " + normalisedDifference.x.ToString() + " z " + normalisedDifference.z.ToString());
normalisedDifference /= normalisedDifference.GetMagnitude(); normalisedDifference /= normalisedDifference.GetMagnitude();
//Debug.Log("Normalised Difference x " + normalisedDifference.x.ToString() + " z " + normalisedDifference.z.ToString()); //Debug.Log("Normalised Difference x " + normalisedDifference.x.ToString() + " z " + normalisedDifference.z.ToString());

View File

@ -1,4 +1,4 @@
using SHADE; using SHADE;
using SHADE_Scripting.Audio; using SHADE_Scripting.Audio;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -14,6 +14,12 @@ public class Breakable : Script
public bool isBreak { get; set; } public bool isBreak { get; set; }
private List<GameObject> itemPieces = new List<GameObject>(); private List<GameObject> itemPieces = new List<GameObject>();
[SerializeField]
private string breakClipHandlerName;
[SerializeField]
private string breakClipPath;
protected override void awake() protected override void awake()
{ {
rb = GetComponent<RigidBody>(); rb = GetComponent<RigidBody>();
@ -32,7 +38,7 @@ public class Breakable : Script
isBreak = false; isBreak = false;
AudioHandler.audioClipHandlers["SFXBreak"] = Audio.CreateAudioClip("event:/Props/impact_break"); AudioHandler.audioClipHandlers[breakClipHandlerName] = Audio.CreateAudioClip(breakClipPath);
} }
protected override void update() protected override void update()
@ -76,7 +82,9 @@ public class Breakable : Script
GameManager.Instance.itemShatter = false; GameManager.Instance.itemShatter = false;
isBreak = false; isBreak = false;
AudioHandler.audioClipHandlers["SFXBreak"].Play(); Audio.AttachAudioClipToObject(AudioHandler.audioClipHandlers[breakClipHandlerName], GameObject.EntityId);
AudioHandler.audioClipHandlers[breakClipHandlerName].Play();
//Audio.DetachAudioClipFromObject(AudioHandler.audioClipHandlers[breakClipHandlerName]);
GameObject.SetActive(false); GameObject.SetActive(false);
} }
} }

View File

@ -1,4 +1,4 @@
using SHADE; using SHADE;
using SHADE_Scripting.Audio; using SHADE_Scripting.Audio;
using System; using System;
public class Item : Script public class Item : Script
@ -121,11 +121,15 @@ public class Item : Script
if (playSound) if (playSound)
{ {
Audio.AttachAudioClipToObject(AudioHandler.audioClipHandlers["SFXImpactElastic"], GameObject.EntityId);
Audio.AttachAudioClipToObject(AudioHandler.audioClipHandlers["SFXImpactHard"], GameObject.EntityId);
if (currCategory == ItemCategory.LIGHT) if (currCategory == ItemCategory.LIGHT)
AudioHandler.audioClipHandlers["SFXImpactElastic"].Play(); AudioHandler.audioClipHandlers["SFXImpactElastic"].Play();
else if (currCategory == ItemCategory.MEDIUM || currCategory == ItemCategory.HEAVY) else if (currCategory == ItemCategory.MEDIUM || currCategory == ItemCategory.HEAVY)
AudioHandler.audioClipHandlers["SFXImpactHard"].Play(); AudioHandler.audioClipHandlers["SFXImpactHard"].Play();
playSound = false; playSound = false;
Audio.DetachAudioClipFromObject(AudioHandler.audioClipHandlers["SFXImpactElastic"]);
Audio.DetachAudioClipFromObject(AudioHandler.audioClipHandlers["SFXImpactHard"]);
} }
if (info.GameObject.GetScript<Homeowner1>() && !returnBack) if (info.GameObject.GetScript<Homeowner1>() && !returnBack)

View File

@ -76,9 +76,9 @@ public class GameManager : Script
goingToLose = false; goingToLose = false;
if (scoreText) if (scoreText)
scoreText.GetComponent<TextRenderable>().Text = $"Score: {Score}"; scoreText.GetComponent<TextRenderable>().Text = $"{Score}";
if (timeText) if (timeText)
timeText.GetComponent<TextRenderable>().Text = $"Time Left: {timer.ToString("0")}"; timeText.GetComponent<TextRenderable>().Text = $"{timer.ToString("0")}";
} }
protected override void start() protected override void start()
@ -91,10 +91,6 @@ public class GameManager : Script
AudioHandler.audioClipHandlers["KitchenAmbience"] = Audio.CreateAudioClip("event:/Ambience/roomtone_kitchen"); AudioHandler.audioClipHandlers["KitchenAmbience"] = Audio.CreateAudioClip("event:/Ambience/roomtone_kitchen");
AudioHandler.audioClipHandlers["KitchenAmbience"].Play(); AudioHandler.audioClipHandlers["KitchenAmbience"].Play();
AudioHandler.audioClipHandlers["SFXHumming"] = Audio.CreateAudioClip("event:/Homeowner/homeowner_humming");
AudioHandler.audioClipHandlers["SFXHumming"].SetVolume(0.15f);
AudioHandler.audioClipHandlers["SFXHumming"].Play();
if (SceneFadeInOut.Instance != null) if (SceneFadeInOut.Instance != null)
SceneFadeInOut.Instance.CallFadeOut(); SceneFadeInOut.Instance.CallFadeOut();
Application.IsCursorVisible = false; Application.IsCursorVisible = false;
@ -105,7 +101,7 @@ public class GameManager : Script
if (GamePause || !stealFoodPopUpDone) if (GamePause || !stealFoodPopUpDone)
{ {
Input.SetMouseCentering(false); Input.SetMouseCentering(false);
//Application.IsCursorVisible = true; Application.IsCursorVisible = true;
return; return;
} }
@ -117,12 +113,10 @@ public class GameManager : Script
if(scoreText) if(scoreText)
scoreText.GetComponent<TextRenderable>().Text = $"{Score}"; scoreText.GetComponent<TextRenderable>().Text = $"{Score}";
if(timeText) if(timeText)
timeText.GetComponent<TextRenderable>().Text = $"Time Left: {timer.ToString("0")}"; timeText.GetComponent<TextRenderable>().Text = $"{timer.ToString("0.00")}";
if (itemScored) if (itemScored)
{ {
//multiplierText.GetComponent<TextRenderable>().Text = $"X {currMultiplierCombo}";
//multiplierText.GetComponent<Transform>().LocalScale -= fontScalar * Time.DeltaTimeF;
currMultiplierDuration += Time.DeltaTimeF; currMultiplierDuration += Time.DeltaTimeF;
if (currMultiplierDuration >= maxMultiplierDuration) if (currMultiplierDuration >= maxMultiplierDuration)
@ -197,7 +191,6 @@ public class GameManager : Script
totalItemCount -= 1; totalItemCount -= 1;
itemScored = true; itemScored = true;
currMultiplierDuration = 0; currMultiplierDuration = 0;
//multiplierText.GetComponent<Transform>().LocalScale = new Vector3(multiplierFont, multiplierFont, multiplierFont);
if (currMultiplierCombo < maxMultiplierCombo) if (currMultiplierCombo < maxMultiplierCombo)
currMultiplierCombo += 1; currMultiplierCombo += 1;

View File

@ -1,10 +1,12 @@
using SHADE; using SHADE;
using SHADE_Scripting.Audio;
using System; using System;
public class JumpPad : Script public class JumpPad : Script
{ {
protected override void awake() protected override void awake()
{ {
AudioHandler.audioClipHandlers["SFXJumpPad"] = Audio.CreateAudioClip("event:/Props/jumppad_boing");
} }
protected override void update() protected override void update()
@ -15,6 +17,8 @@ public class JumpPad : Script
{ {
if (info.GameObject.GetScript<PlayerController>() && info.GameObject.GetScript<PlayerController>().currentState == PlayerController.RaccoonStates.FALLING) if (info.GameObject.GetScript<PlayerController>() && info.GameObject.GetScript<PlayerController>().currentState == PlayerController.RaccoonStates.FALLING)
{ {
Audio.AttachAudioClipToObject(AudioHandler.audioClipHandlers["SFXJumpPad"], GameObject.EntityId);
AudioHandler.audioClipHandlers["SFXJumpPad"].Play();
info.GameObject.GetScript<PlayerController>().landedOnJumpPad = true; info.GameObject.GetScript<PlayerController>().landedOnJumpPad = true;
} }
} }

View File

@ -52,12 +52,15 @@ namespace SHADE_Scripting.UI
private static float EaseInSine(float value) private static float EaseInSine(float value)
{ {
return (float)(1.0f - Math.Cos((value * Math.PI / 2.0f)));
return (float)(1.0f - Math.Cos((value * Math.PI / 2.0f) ));
} }
private static float EaseOutSine(float value) private static float EaseOutSine(float value)
{ {
return (float)(Math.Sin(value * Math.PI / 2.0f)); return (float)(Math.Sin(value * Math.PI / 2.0f) );
} }

View File

@ -16,8 +16,8 @@ public class EndScene : Script
protected override void start() protected override void start()
{ {
Input.SetMouseCentering(false);
Debug.Log("EndScene::Start():"); Debug.Log("EndScene::Start():");
Input.SetMouseCentering(false);
Application.IsCursorVisible = true; Application.IsCursorVisible = true;
SceneFadeInOut.Instance.CallFadeOut(); SceneFadeInOut.Instance.CallFadeOut();
} }

View File

@ -24,8 +24,8 @@ public class MainMenu : Script
protected override void start() protected override void start()
{ {
Input.SetMouseCentering(false); //Input.SetMouseCentering(false);
Application.IsCursorVisible = true; //Application.IsCursorVisible = true;
SceneFadeInOut.Instance.CallFadeOut(); SceneFadeInOut.Instance.CallFadeOut();
} }
protected override void update() protected override void update()

View File

@ -1,4 +1,4 @@
using SHADE; using SHADE;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
@ -11,6 +11,7 @@ namespace SHADE_Scripting.UI
{ {
[NonSerialized] [NonSerialized]
private TweenThread sizeThread; private TweenThread sizeThread;
private TweenThread sizeInvertThread;
private TweenThread alphaThread; private TweenThread alphaThread;
@ -20,6 +21,7 @@ namespace SHADE_Scripting.UI
private bool showMultiplier = false; private bool showMultiplier = false;
const float sizeUpDuration = 0.1f;
[NonSerialized] [NonSerialized]
private Vector3 defaultScale; private Vector3 defaultScale;
@ -27,6 +29,7 @@ namespace SHADE_Scripting.UI
protected override void start() protected override void start()
{ {
sizeThread = TweenManager.CreateTweenThread(0.0f, maxSize, minSize, EASING_METHOD.EASE_IN_SINE); sizeThread = TweenManager.CreateTweenThread(0.0f, maxSize, minSize, EASING_METHOD.EASE_IN_SINE);
sizeInvertThread = TweenManager.CreateTweenThread(sizeUpDuration, minSize, maxSize, EASING_METHOD.EASE_IN_SINE);
alphaThread = TweenManager.CreateTweenThread(0.0f, 1.0f, minAlpha, EASING_METHOD.EASE_OUT_SINE); alphaThread = TweenManager.CreateTweenThread(0.0f, 1.0f, minAlpha, EASING_METHOD.EASE_OUT_SINE);
Transform transform = GetComponent<Transform>(); Transform transform = GetComponent<Transform>();
if (transform != null) if (transform != null)
@ -43,8 +46,29 @@ namespace SHADE_Scripting.UI
protected override void update() protected override void update()
{ {
Transform transform = GetComponent<Transform>(); Transform transform = GetComponent<Transform>();
if (transform != null && showMultiplier == true) if (transform != null && showMultiplier == true)
{ {
if(!sizeInvertThread.IsCompleted())
{
transform.LocalScale = defaultScale * sizeInvertThread.GetValue();
Renderable rend = GetComponentInChildren<Renderable>();
if(rend)
{
rend.Material.SetProperty<float>("data.alpha", 1.0f);
}
TextRenderable text = GetComponent<TextRenderable>();
if (text)
{
Color clr = text.TextColor;
text.TextColor = new Color(clr.r, clr.g, clr.b, 1.0f);
}
return;
}
if(sizeThread.IsCompleted()) if(sizeThread.IsCompleted())
{ {
transform.LocalScale = Vector3.Zero; transform.LocalScale = Vector3.Zero;
@ -53,7 +77,18 @@ namespace SHADE_Scripting.UI
else else
{ {
transform.LocalScale = defaultScale * sizeThread.GetValue(); transform.LocalScale = defaultScale * sizeThread.GetValue();
GetComponentInChildren<Renderable>().Material.SetProperty<float>("data.alpha",alphaThread.GetValue());
Renderable rend = GetComponentInChildren<Renderable>();
if (rend)
{
rend.Material.SetProperty<float>("data.alpha", alphaThread.GetValue());
}
TextRenderable text = GetComponent<TextRenderable>();
if(text)
{
Color clr = text.TextColor;
text.TextColor = new Color(clr.r,clr.g,clr.b,alphaThread.GetValue() * 1.3f);
}
} }
} }
} }
@ -62,9 +97,10 @@ namespace SHADE_Scripting.UI
public void ShowMultiplier(int multiplier, float duration) public void ShowMultiplier(int multiplier, float duration)
{ {
GetComponent<TextRenderable>().Text = $"X {multiplier}"; GetComponent<TextRenderable>().Text = $"X {multiplier}";
sizeThread.duration = duration; sizeThread.duration = duration + sizeUpDuration;
alphaThread.duration = duration; alphaThread.duration = duration + sizeUpDuration;
sizeInvertThread.Reset();
sizeThread.Reset(); sizeThread.Reset();
alphaThread.Reset(); alphaThread.Reset();
showMultiplier = true; showMultiplier = true;

View File

@ -0,0 +1,49 @@
using System;
using SHADE;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SHADE_Scripting.UI
{
public class ScrollingCredits: Script
{
public float endY = 4000.0f;
public float duration = 30.0f;
[NonSerialized]
TweenThread thread;
protected override void awake()
{
base.awake();
}
protected override void start()
{
base.start();
Transform transform = GetComponent<Transform>();
if(transform != null)
{
thread = TweenManager.CreateTweenThread(duration, transform.LocalPosition.y, endY, EASING_METHOD.EASE_IN_SINE);
}
}
protected override void update()
{
base.update();
Transform transform = GetComponent<Transform>();
if(thread != null && transform != null)
{
transform.LocalPosition = new Vector3( transform.LocalPosition.x ,thread.GetValue() , transform.LocalPosition.z);
}
}
}
}

View File

@ -0,0 +1,3 @@
Name: SC_ScrollingCredits
ID: 159139676
Type: 9

View File

@ -338,7 +338,7 @@ namespace SHADE
ImGui::PushID(SHFamilyID<SHComponent>::GetID<SHColliderComponent>()); ImGui::PushID(SHFamilyID<SHComponent>::GetID<SHColliderComponent>());
std::vector<const char*> collisionTagNames(SHCollisionTag::NUM_LAYERS); std::vector<const char*> collisionTagNames(SHCollisionTag::NUM_LAYERS);
//Fetch tag names //Fetch tag names
for(int i{}; i < SHCollisionTag::NUM_LAYERS; ++i) for (int i{}; i < SHCollisionTag::NUM_LAYERS; ++i)
{ {
collisionTagNames[i] = SHCollisionTagMatrix::GetTagName(i).c_str(); collisionTagNames[i] = SHCollisionTagMatrix::GetTagName(i).c_str();
} }
@ -387,20 +387,20 @@ namespace SHADE
else if (shape->GetType() == SHCollisionShape::Type::CAPSULE) else if (shape->GetType() == SHCollisionShape::Type::CAPSULE)
{ {
} //}
{ {
SHEditorWidgets::CheckBox("Is Trigger", [shape] { return shape->IsTrigger(); }, [shape](bool value) { shape->SetIsTrigger(value); }); SHEditorWidgets::CheckBox("Is Trigger", [shape] { return shape->IsTrigger(); }, [shape](bool value) { shape->SetIsTrigger(value); });
SHEditorWidgets::ComboBox("Tag", collisionTagNames, [shape]{return SHCollisionTagMatrix::GetTagIndex(shape->GetCollisionTag().GetName());}, [shape](int const& value){shape->SetCollisionTag(SHCollisionTagMatrix::GetTag(value));}); SHEditorWidgets::ComboBox("Tag", collisionTagNames, [shape] {return SHCollisionTagMatrix::GetTagIndex(shape->GetCollisionTag().GetName()); }, [shape](int const& value) {shape->SetCollisionTag(SHCollisionTagMatrix::GetTag(value)); });
if(ImGui::CollapsingHeader("Physics Material")) if (ImGui::CollapsingHeader("Physics Material"))
{ {
SHEditorWidgets::DragFloat("Friction", [shape] { return shape->GetFriction(); }, [shape](float value) { shape->SetFriction(value); }, "Friction", 0.05f, 0.0f, 1.0f); SHEditorWidgets::DragFloat("Friction", [shape] { return shape->GetFriction(); }, [shape](float value) { shape->SetFriction(value); }, "Friction", 0.05f, 0.0f, 1.0f);
SHEditorWidgets::DragFloat("Bounciness", [shape] { return shape->GetBounciness(); }, [shape](float value) { shape->SetBounciness(value); }, "Bounciness", 0.05f, 0.0f, 1.0f); SHEditorWidgets::DragFloat("Bounciness", [shape] { return shape->GetBounciness(); }, [shape](float value) { shape->SetBounciness(value); }, "Bounciness", 0.05f, 0.0f, 1.0f);
SHEditorWidgets::DragFloat("Mass Density", [shape] { return shape->GetDensity(); }, [shape](float value) { shape->SetDensity(value); }, "Mass Density", 0.1f, 0.0f); SHEditorWidgets::DragFloat("Mass Density", [shape] { return shape->GetDensity(); }, [shape](float value) { shape->SetDensity(value); }, "Mass Density", 0.1f, 0.0f);
} }
SHEditorWidgets::BeginPanel("Offsets",{ ImGui::GetContentRegionAvail().x, 30.0f }); SHEditorWidgets::BeginPanel("Offsets", { ImGui::GetContentRegionAvail().x, 30.0f });
SHEditorWidgets::DragVec3("Position", { "X", "Y", "Z" }, [&shape] {return shape->GetPositionOffset(); }, [&shape](SHVec3 const& vec) {shape->SetPositionOffset(vec); }); SHEditorWidgets::DragVec3("Position", { "X", "Y", "Z" }, [&shape] {return shape->GetPositionOffset(); }, [&shape](SHVec3 const& vec) {shape->SetPositionOffset(vec); });
SHEditorWidgets::DragVec3("Rotation", { "X", "Y", "Z" }, SHEditorWidgets::DragVec3("Rotation", { "X", "Y", "Z" },
[&shape] [&shape]
@ -448,7 +448,12 @@ namespace SHADE
ImGui::EndMenu(); ImGui::EndMenu();
} }
} }
else DrawContextMenu(component); }
else
{
DrawContextMenu(component);
}
ImGui::PopID(); ImGui::PopID();
} }

View File

@ -19,6 +19,7 @@ of DigiPen Institute of Technology is prohibited.
#include "Assets/NativeAsset.hxx" #include "Assets/NativeAsset.hxx"
#include "Utility/Convert.hxx" #include "Utility/Convert.hxx"
namespace SHADE namespace SHADE
{ {
/*---------------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------------*/
@ -55,4 +56,16 @@ namespace SHADE
GetNativeComponent()->SetFont(value.NativeObject); GetNativeComponent()->SetFont(value.NativeObject);
} }
} }
Color TextRenderable::TextColor::get()
{
return Convert::ToCLI(GetNativeComponent()->GetColor());
}
void TextRenderable::TextColor::set(Color value)
{
GetNativeComponent()->SetColor(Convert::ToNative(value));
}
} }

View File

@ -60,6 +60,13 @@ namespace SHADE
FontAsset get(); FontAsset get();
void set(FontAsset value); void set(FontAsset value);
} }
property Color TextColor
{
Color get();
void set(Color value);
}
}; };
} }

View File

@ -22,6 +22,7 @@ namespace SHADE
: Component(entity) : Component(entity)
{} {}
/*-----------------------------------------------------------------------------------*/ /*-----------------------------------------------------------------------------------*/
/* Properties */ /* Properties */
/*-----------------------------------------------------------------------------------*/ /*-----------------------------------------------------------------------------------*/

View File

@ -77,7 +77,7 @@ namespace SHADE
} }
void Application::IsCursorVisible::set(bool value) void Application::IsCursorVisible::set(bool value)
{ {
SHWindow::SetMouseVisible(value); //SHWindow::SetMouseVisible(value);
} }
/*---------------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------------*/
/* Usage Functions */ /* Usage Functions */

View File

@ -149,7 +149,7 @@ namespace SHADE
void Input::SetMouseCentering(bool state) void Input::SetMouseCentering(bool state)
{ {
SHInputManager::SetMouseCentering(state); //SHInputManager::SetMouseCentering(state);
} }
bool Input::GetMouseCentering() bool Input::GetMouseCentering()