Compare commits

...

91 Commits

Author SHA1 Message Date
Sri Sham Haran 0f7d86543f Fix adaptive bgm not changing on alert 2023-04-02 18:16:25 +08:00
Glence 8ffca03f16 AI fix 2023-04-02 13:32:21 +08:00
XiaoQiDigipen 724f8ae2cf
Merge pull request #456 from SHADE-DP/Navigation
adjusted hitbox timing
2023-04-02 12:48:39 +08:00
maverickdgg f495dfe4fd adjusted hitbox timing 2023-04-02 12:34:47 +08:00
Glence e5c8f4c380 fix camera jittering 2023-04-01 21:30:18 +08:00
Glence f114a7f59a Scene changes for level preview 2023-04-01 21:06:12 +08:00
XiaoQiDigipen 273bdfcdcc
Merge pull request #455 from SHADE-DP/PlayerController
bug fixes
2023-04-01 19:18:29 +08:00
Glence 9b55d69f9a Merge branch 'main' into PlayerController 2023-04-01 19:14:38 +08:00
Glence 716087d15c small bug fixes 2023-04-01 19:14:30 +08:00
Xiao Qi 5c79bb7f9f Recompiled all shaders 2023-04-01 18:55:25 +08:00
XiaoQiDigipen f54448b5eb
Merge pull request #454 from SHADE-DP/PlayerController
Credits and Transition done
2023-04-01 18:09:04 +08:00
Glence 51f426868e credits and transition done 2023-04-01 18:07:22 +08:00
Glence 51867f0c5e Merge branch 'main' into PlayerController 2023-04-01 17:23:04 +08:00
Glence 96fd8295aa audio 2023-04-01 17:22:51 +08:00
XiaoQiDigipen a3c1993576
Merge pull request #453 from SHADE-DP/PlayerController
Level changes and bug fix
2023-04-01 16:43:19 +08:00
maverickdgg 483d8c7066 Added AI Humming 2023-04-01 16:41:38 +08:00
maverickdgg c643bd64f3 Added a space to skip 2023-04-01 16:32:56 +08:00
maverickdgg d5240b420d Credits scene 2023-04-01 16:31:23 +08:00
Glence cc9b7c20c4 Merge branch 'main' into PlayerController 2023-04-01 16:30:43 +08:00
Glence ce6288880a other stuff 2023-04-01 16:30:33 +08:00
Glence b2e38df969 Merge branch 'main' into PlayerController 2023-04-01 16:11:09 +08:00
XiaoQiDigipen 0dad2e9e9f
Merge pull request #451 from SHADE-DP/PlayerController
Scene changes
2023-04-01 16:11:08 +08:00
XiaoQiDigipen e9d0b01972
Merge pull request #452 from SHADE-DP/Navigation
Added HomeOwner VO and Raccoon Caught effect
2023-04-01 16:09:44 +08:00
Glence f70a41a9dc transition for level is done along with bug fix 2023-04-01 16:08:32 +08:00
maverickdgg 43c6a62186 Added UI changes to other scenes 2023-04-01 15:37:12 +08:00
maverickdgg 2e20b295b5 Added Homeowner VO and small UI changes 2023-04-01 15:36:02 +08:00
Glence 3e4794cebc Merge branch 'main' into PlayerController 2023-04-01 00:51:27 +08:00
Glence 191ed7de43 scene changes 2023-04-01 00:51:15 +08:00
XiaoQiDigipen fada41174d
Merge pull request #450 from SHADE-DP/PlayerController
New features done
2023-04-01 00:42:19 +08:00
Glence a76f2eca87 level clear done 2023-04-01 00:35:16 +08:00
Glence 5ed0219a0b WIP for level clear 2023-03-31 18:37:28 +08:00
XiaoQiDigipen 1c6def8e70
Merge pull request #449 from SHADE-DP/Navigation
Added CaughtRaccoon state to AI FSM
2023-03-31 17:05:28 +08:00
maverickdgg 9d8b94a5ab Merge branch 'main' into Navigation 2023-03-31 16:51:12 +08:00
XiaoQiDigipen 1838209ec2
Merge pull request #448 from SHADE-DP/SP3-20-UI-System
Gameplay and Main Menu UI Update
2023-03-31 15:07:19 +08:00
maverickdgg c335f58702 Updated Gameplay UI 2023-03-31 15:02:31 +08:00
maverickdgg af9e523da9 Gameplay UI Update 2023-03-31 14:50:25 +08:00
maverickdgg 6ee619d26e Added Slider SFX 2023-03-31 14:18:09 +08:00
maverickdgg b123cd83f8 Updated Main menu with correct slider scale and added fx for buttons 2023-03-31 14:14:44 +08:00
maverickdgg fdc261749e Merge branch 'main' into SP3-20-UI-System 2023-03-31 14:06:33 +08:00
XiaoQiDigipen 125f88bcac
Merge pull request #447 from SHADE-DP/SP3-1-Rendering
Implemented color decay, color range emission and custom VS and FS for particles
2023-03-30 19:37:33 +08:00
Brandon Mak 83955e4618 Merge remote-tracking branch 'origin/main' into SP3-1-Rendering 2023-03-30 19:15:12 +08:00
Brandon Mak 4d145bbc43 Added support for custom VS and FS for particles 2023-03-30 19:15:03 +08:00
maverickdgg c2a8c86483 Slider textures updated 2023-03-30 17:09:18 +08:00
maverickdgg 12bbce33e8 Slider WIP 2023-03-30 16:56:41 +08:00
XiaoQiDigipen 3fc69890e4 Revert "Merge pull request #446 from SHADE-DP/Fix-ResourceHubCrashOnExit"
This reverts commit 5ab7cbe5f3.
2023-03-30 16:25:05 +08:00
maverickdgg 3fef57f88a Merge branch 'Navigation' of https://github.com/SHADE-DP/SHADE_Y3 into Navigation 2023-03-30 15:37:46 +08:00
maverickdgg 3f7522d76f Revert "Merge pull request #446 from SHADE-DP/Fix-ResourceHubCrashOnExit"
This reverts commit 5ab7cbe5f3, reversing
changes made to ffc638e14b.
2023-03-30 15:37:42 +08:00
maverickdgg c6faeeb282 Added CaughtRaccoon State. 2023-03-30 15:26:15 +08:00
Brandon Mak 9c19d178db Implemented color decay and color tint range support for particles 2023-03-30 15:19:54 +08:00
maverickdgg 8c5bf82aa5 Added CaughtRaccoon State. 2023-03-30 15:16:18 +08:00
XiaoQiDigipen 5ab7cbe5f3
Merge pull request #446 from SHADE-DP/Fix-ResourceHubCrashOnExit
"Fixed" crash from ResourceHub on engine exit
2023-03-30 14:24:21 +08:00
Brandon Mak 8aa5c681e3 Merge branch 'main' into SP3-1-Rendering 2023-03-30 14:03:36 +08:00
Kah Wei 6cf20d414e "Fixed" crash from ResourceHub on engine exit 2023-03-29 22:20:20 +08:00
Glence ffc638e14b using waypoint to store startpos 2023-03-26 20:50:49 +08:00
Glence 2abb1ce697 safety checks 2023-03-26 20:38:03 +08:00
Sri Sham Haran 0f9afc2a18 Merge remote-tracking branch 'origin/main' into main 2023-03-26 20:29:41 +08:00
Sri Sham Haran 0890bd8d3f safety checks 2023-03-26 20:29:38 +08:00
Brandon Mak fed76708bd Particle bug fix 2023-03-26 20:28:04 +08:00
Glence 2fd4e51cd0 added food particles and small bug fix 2023-03-26 18:10:58 +08:00
Glence 2da73f12d0 ai fix along wit new music 2023-03-26 13:27:42 +08:00
Sri Sham Haran 44bbdf5f82 Merge remote-tracking branch 'origin/main' into main 2023-03-26 10:19:29 +08:00
Sri Sham Haran c6172be3ad Set detected parameters in AI states
Increase size of score zone in level 1
2023-03-26 10:19:22 +08:00
Brandon Mak e685f8ebaf Quick fix for Silhouette 2023-03-26 10:18:19 +08:00
Glence 92de505af4 made egg heavier so they dont fly so far 2023-03-25 21:46:33 +08:00
maverickdgg cf41fe245e AI added for Level 1 2023-03-25 19:41:40 +08:00
XiaoQiDigipen bc1167267c
Merge pull request #445 from SHADE-DP/Navigation
Navigation and AI merge for level 3
2023-03-25 18:49:20 +08:00
maverickdgg e7ec24c15a fixed AI not resetting 2023-03-25 18:47:42 +08:00
maverickdgg 89bfbf3100 WIP 2023-03-25 18:18:29 +08:00
maverickdgg 72bbc72531 Merge branch 'main' into Navigation 2023-03-25 17:29:13 +08:00
maverickdgg 6c1f0162e9 Attack hitbox change 2023-03-25 17:29:03 +08:00
Glence 270cab64e2 raccoon new tag 2023-03-25 17:28:42 +08:00
maverickdgg 2d9b7f3a5d Merge branch 'main' into Navigation 2023-03-25 17:20:49 +08:00
maverickdgg 4a149508c9 Level 3 generated 2023-03-25 17:20:42 +08:00
Glence ce24a1efb0 player caught bug fix 2023-03-25 17:20:35 +08:00
XiaoQiDigipen 4f84736599
Merge pull request #444 from SHADE-DP/Navigation
Added Attack animation, Fix Edge case for path finding. Added footsteps. Level 2 merge
2023-03-25 16:54:30 +08:00
maverickdgg 75f38f4e36 Merge branch 'main' into Navigation 2023-03-25 16:52:34 +08:00
maverickdgg 485d8cc38b AI Level 2 merge 2023-03-25 16:52:26 +08:00
XiaoQiDigipen 3affd446f3
Merge pull request #443 from SHADE-DP/ShaderCompilerMigrate
Removed shader compiler to external executable
2023-03-25 16:52:02 +08:00
Xiao Qi 47a78de609 Added dependencies pull for shader compiler 2023-03-25 16:41:49 +08:00
maverickdgg 749cedfae2 Merge branch 'main' into Navigation 2023-03-25 16:13:03 +08:00
maverickdgg c1544b0b51 Merge branch 'main' into Navigation 2023-03-25 16:12:42 +08:00
XiaoQiDigipen cd04a93df9
Merge pull request #442 from SHADE-DP/PlayerController
Bug fixes
2023-03-25 16:11:55 +08:00
Glence 429674c16e Merge branch 'main' into PlayerController 2023-03-25 16:10:01 +08:00
Glence 9b6a0d112e remove density 2023-03-25 16:09:40 +08:00
maverickdgg 291c9d044e Added footsteps. Fix path forward to not get stuck as much 2023-03-25 16:09:20 +08:00
Xiao Qi f21f235980 Moved out all native shader compiler code
Replaced call to internal classes with system calls to external executable
2023-03-25 15:58:06 +08:00
XiaoQiDigipen a40c59872c
Merge pull request #441 from SHADE-DP/SP3-6-c-scripting
Fixed issues where scripts cannot be loaded if another instance of the engine is using it
2023-03-25 15:52:51 +08:00
Glence 82fd4e2149 dont ask me 2023-03-25 15:52:22 +08:00
Kah Wei 52d27ae6bd Fixed issues where scripts cannot be loaded if another instance of the engine is using it 2023-03-25 14:59:42 +08:00
maverickdgg 47f195e998 HomeOwner attack and animations 2023-03-25 14:51:28 +08:00
maverickdgg ab4493822a Fix edge case of starting node being a wall 2023-03-25 10:52:50 +08:00
178 changed files with 9536 additions and 3410 deletions

View File

@ -14,13 +14,13 @@ Type: 13
Name: Walk Name: Walk
ID: 229189609 ID: 229189609
Type: 13 Type: 13
Name: Alerted by Racoon Name: Alerted_by_Racoon
ID: 227890696 ID: 227890696
Type: 13 Type: 13
Name: Alerted Idle Name: Alerted_Idle
ID: 234046577 ID: 234046577
Type: 13 Type: 13
Name: Alerted Run Name: Alerted_Run
ID: 230172366 ID: 230172366
Type: 13 Type: 13
Name: Interact Name: Interact
@ -47,21 +47,21 @@ Type: 13
Name: StunEndBack Name: StunEndBack
ID: 226668516 ID: 226668516
Type: 13 Type: 13
Name: React to Broken Stuff Name: React_to_Broken_Stuff
ID: 228323560 ID: 228323560
Type: 13 Type: 13
Name: Pickup Item Name: Pickup_Item
ID: 227002263 ID: 227002263
Type: 13 Type: 13
Name: Return Item Name: Return_Item
ID: 222655168 ID: 222655168
Type: 13 Type: 13
Name: Attack Windup Name: Attack_Windup
ID: 223078653 ID: 223078653
Type: 13 Type: 13
Name: Attack Hold Name: Attack_Hold
ID: 228250554 ID: 228250554
Type: 13 Type: 13
Name: Attack Sequence Name: Attack_Sequence
ID: 226129627 ID: 226129627
Type: 13 Type: 13

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,5 +1,5 @@
0 StaticObject 1101000000000000 0 StaticObject 1101000000000000
1 Player 1101000000000000 1 Furniture 1101000000000000
2 Food 1000000000000000 2 Food 1000000000000000
3 Breakable 1100000000000000 3 Breakable 1100000000000000
4 ScoringWallCollider 0110000000000000 4 ScoringWallCollider 0110000000000000
@ -8,7 +8,7 @@
7 StaticWithCameraCollision 1111000000000000 7 StaticWithCameraCollision 1111000000000000
8 Floor 1100000000000000 8 Floor 1100000000000000
9 Navigation 0001000000000000 9 Navigation 0001000000000000
10 11 0000000000000000 10 Player 1100000000000000
11 12 0000000000000000 11 12 0000000000000000
12 13 0000000000000000 12 13 0000000000000000
13 14 0000000000000000 13 14 0000000000000000

View File

@ -3,6 +3,6 @@
SubPass: UI SubPass: UI
Properties: Properties:
data.color: {x: 1, y: 1, z: 1, w: 1} data.color: {x: 1, y: 1, z: 1, w: 1}
data.textureIndex: 59379300 data.textureIndex: 55278388
data.alpha: 1 data.alpha: 1
data.beta: {x: 1, y: 1, z: 1} data.beta: {x: 1, y: 1, z: 1}

View File

@ -0,0 +1,8 @@
- VertexShader: 46580970
FragmentShader: 35983630
SubPass: UI
Properties:
data.color: {x: 1, y: 1, z: 1, w: 1}
data.textureIndex: 64816540
data.alpha: 1
data.beta: {x: 1, y: 1, z: 1}

View File

@ -0,0 +1,3 @@
Name: UIMat_SliderBG
ID: 117587364
Type: 7

View File

@ -0,0 +1,11 @@
- VertexShader: 46580970
FragmentShader: 43211183
SubPass: UI
Properties:
data.color: {x: 1, y: 1, z: 1, w: 1}
data.textureIndex: 50370514
data.alpha: 1
data.beta: {x: 1, y: 1, z: 1}
data.sliderThreshold: 1
data.sliderStartColor: {x: 0.36500001, y: 0.783999979, z: 0.878000021, w: 1}
data.sliderBarColor: {x: 1, y: 1, z: 1, w: 1}

View File

@ -0,0 +1,3 @@
Name: UIMat_Slider_BGM
ID: 129354037
Type: 7

View File

@ -0,0 +1,11 @@
- VertexShader: 46580970
FragmentShader: 43211183
SubPass: UI
Properties:
data.color: {x: 1, y: 1, z: 1, w: 1}
data.textureIndex: 50370514
data.alpha: 1
data.beta: {x: 1, y: 1, z: 1}
data.sliderThreshold: 1
data.sliderStartColor: {x: 0.624000013, y: 0.211999997, z: 0.949000001, w: 1}
data.sliderBarColor: {x: 1, y: 1, z: 1, w: 1}

View File

@ -0,0 +1,3 @@
Name: UIMat_Slider_FOV
ID: 117651669
Type: 7

View File

@ -0,0 +1,11 @@
- VertexShader: 46580970
FragmentShader: 43211183
SubPass: UI
Properties:
data.color: {x: 1, y: 1, z: 1, w: 1}
data.textureIndex: 50370514
data.alpha: 1
data.beta: {x: 1, y: 1, z: 1}
data.sliderThreshold: 1
data.sliderStartColor: {x: 0.949000001, y: 0.689999998, z: 0.211999997, w: 1}
data.sliderBarColor: {x: 1, y: 1, z: 1, w: 1}

View File

@ -0,0 +1,3 @@
Name: UIMat_Slider_SFX
ID: 122820018
Type: 7

View File

@ -3,7 +3,9 @@
SubPass: UI SubPass: UI
Properties: Properties:
data.color: {x: 1, y: 1, z: 1, w: 1} data.color: {x: 1, y: 1, z: 1, w: 1}
data.textureIndex: 51995224 data.textureIndex: 50370514
data.alpha: 1 data.alpha: 1
data.beta: {x: 1, y: 1, z: 1} data.beta: {x: 1, y: 1, z: 1}
data.sliderThreshold: 1 data.sliderThreshold: 1
data.sliderStartColor: {x: 0.254901886, y: 0.321500003, z: 0.909799993, w: 1}
data.sliderBarColor: {x: 1, y: 1, z: 1, w: 1}

View File

@ -0,0 +1,8 @@
- VertexShader: 46580970
FragmentShader: 40208610
SubPass: UI
Properties:
data.color: {x: 1, y: 1, z: 1, w: 1}
data.textureIndex: 50770098
data.alpha: 1
data.beta: {x: 1, y: 1, z: 1}

View File

@ -0,0 +1,3 @@
Name: UIMat_Transistion
ID: 132131066
Type: 7

View File

@ -0,0 +1,8 @@
- VertexShader: 46580970
FragmentShader: 35983630
SubPass: UI
Properties:
data.color: {x: 1, y: 1, z: 1, w: 1}
data.textureIndex: 55490391
data.alpha: 1
data.beta: {x: 1, y: 1, z: 1}

View File

@ -0,0 +1,3 @@
Name: UI_Result
ID: 130179375
Type: 7

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,3 @@
Name: Level1_NavData
ID: 257298636
Type: 15

View File

@ -1,3 +1,3 @@
Name: Level2_AITest_NavData Name: Level2_AITest_NavData
ID: 255209218 ID: 254149790
Type: 15 Type: 15

Binary file not shown.

View File

@ -0,0 +1,3 @@
Name: Level2_NavData
ID: 260674210
Type: 15

Binary file not shown.

View File

@ -0,0 +1,3 @@
Name: Level3_NavData
ID: 252819653
Type: 15

View File

@ -0,0 +1,174 @@
- NavData: 0
- EID: 0
Name: Camera
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 0, y: 0, z: 0}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 1, y: 1, z: 1}
IsActive: true
Camera Component:
Position: {x: 0, y: 0, z: 0}
Pitch: 0
Yaw: 0
Roll: 0
Width: 1920
Near: 0.00999999978
Far: 10000
Perspective: true
FOV: 90
IsActive: true
Scripts: ~
- EID: 46
Name: Credits Canvas
IsActive: true
NumberOfChildren: 3
Components:
Canvas Component:
Canvas Width: 1920
Canvas Height: 1080
Scale by canvas width: false
IsActive: true
Scripts: ~
- EID: 47
Name: Scrolling Credits
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 0, y: -3800, z: 1.5}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 1920, y: 8026, z: 1}
IsActive: true
Renderable Component:
Mesh: 141771688
Material: 120332672
IsActive: true
UI Component:
Canvas ID: 46
Hovered: false
Clicked: false
IsActive: true
Scripts:
- Type: SHADE_Scripting.UI.ScrollingCredits
Enabled: true
endY: 4300
duration: 27
levelTransition: 619
- Type: SHADE_Scripting.UI.TransitToMainMenu
Enabled: true
timeToTransit: 27
sceneToChange: 97158628
- EID: 49
Name: Credits Title Text
IsActive: false
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: -150, y: 400, z: 0.100000001}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 100, y: 100, z: 1}
IsActive: false
Text Renderer Component:
Text: Credits
Font: 174412429
Color: {x: 0, y: 0, z: 0, w: 1}
Text Size: {x: 1, y: 1, z: 1}
IsActive: false
UI Component:
Canvas ID: 46
Hovered: false
Clicked: false
IsActive: false
Scripts: ~
- EID: 55
Name: BackGround
IsActive: false
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 0, y: 0, z: 1.5}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 1920, y: 1080, z: 1}
IsActive: false
Renderable Component:
Mesh: 141771688
Material: 121834459
IsActive: false
UI Component:
Canvas ID: 46
Hovered: false
Clicked: false
IsActive: false
Scripts: ~
- EID: 54
Name: TweenManager
IsActive: true
NumberOfChildren: 0
Components: ~
Scripts:
- Type: TweenManager
Enabled: true
- EID: 619
Name: LevelTransistionCanvas
IsActive: true
NumberOfChildren: 2
Components:
Canvas Component:
Canvas Width: 1920
Canvas Height: 1080
Scale by canvas width: false
IsActive: true
Scripts:
- Type: LevelTransistion
Enabled: true
logo: 618
bg: 617
duration: 0.5
bgEndPositionX: 3000
logoEndPositionX: 3000
rotAndScale: false
rotationAmt: 360
scaleAmt: 631
- EID: 618
Name: LevelTransistionLogo
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 0, y: 0, z: 0.100000001}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 631, y: 631, z: 1}
IsActive: true
Renderable Component:
Mesh: 141771688
Material: 126117259
IsActive: true
UI Component:
Canvas ID: 619
Hovered: false
Clicked: false
IsActive: true
Scripts: ~
- EID: 617
Name: LevelTransistionBG
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 0, y: 0, z: 0.200000003}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 4000, y: 4000, z: 1}
IsActive: true
Renderable Component:
Mesh: 141771688
Material: 132131066
IsActive: true
UI Component:
Canvas ID: 619
Hovered: false
Clicked: false
IsActive: true
Scripts: ~

View File

@ -0,0 +1,3 @@
Name: CreditsScene
ID: 97376761
Type: 5

View File

@ -1,3 +1,4 @@
- NavData: 0
- EID: 1 - EID: 1
Name: Canvas4 Name: Canvas4
IsActive: true IsActive: true
@ -152,7 +153,7 @@
Scripts: Scripts:
- Type: CutsceneEnd - Type: CutsceneEnd
Enabled: true Enabled: true
nextScene: 92009475 nextScene: 97376761
duration: 1 duration: 1
skipDuration: 0.100000001 skipDuration: 0.100000001
cutscene4Points: 4 cutscene4Points: 4
@ -161,6 +162,7 @@
cutscene5Pics: 15 cutscene5Pics: 15
canvas4: 1 canvas4: 1
canvas5: 14 canvas5: 14
levelTransition: 619
- EID: 4 - EID: 4
Name: CutScene4Points Name: CutScene4Points
IsActive: true IsActive: true
@ -288,7 +290,7 @@
NumberOfChildren: 0 NumberOfChildren: 0
Components: Components:
Transform Component: Transform Component:
Translate: {x: 250, y: -500, z: 0.100000001} Translate: {x: 250, y: -500, z: 0.300000012}
Rotate: {x: 0, y: 0, z: 0} Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 50, y: 50, z: 50} Scale: {x: 50, y: 50, z: 50}
IsActive: true IsActive: true
@ -332,3 +334,72 @@
Scale: {x: 1, y: 1, z: 1} Scale: {x: 1, y: 1, z: 1}
IsActive: true IsActive: true
Scripts: ~ Scripts: ~
- EID: 619
Name: LevelTransistionCanvas
IsActive: true
NumberOfChildren: 2
Components:
Canvas Component:
Canvas Width: 1920
Canvas Height: 1080
Scale by canvas width: false
IsActive: true
Scripts:
- Type: LevelTransistion
Enabled: true
logo: 618
bg: 617
duration: 0.5
bgEndPositionX: 3000
logoEndPositionX: 3000
rotAndScale: false
rotationAmt: 360
scaleAmt: 631
- EID: 618
Name: LevelTransistionLogo
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 0, y: 0, z: 0.100000001}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 631, y: 631, z: 1}
IsActive: true
Renderable Component:
Mesh: 141771688
Material: 126117259
IsActive: true
UI Component:
Canvas ID: 619
Hovered: false
Clicked: false
IsActive: true
Scripts: ~
- EID: 617
Name: LevelTransistionBG
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 0, y: 0, z: 0.200000003}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 4000, y: 4000, z: 1}
IsActive: true
Renderable Component:
Mesh: 141771688
Material: 132131066
IsActive: true
UI Component:
Canvas ID: 619
Hovered: false
Clicked: false
IsActive: true
Scripts: ~
- EID: 616
Name: TweenManager
IsActive: true
NumberOfChildren: 0
Components: ~
Scripts:
- Type: TweenManager
Enabled: true

View File

@ -1,3 +1,4 @@
- NavData: 0
- EID: 1 - EID: 1
Name: Canvas1 Name: Canvas1
IsActive: true IsActive: true
@ -164,6 +165,7 @@
canvas1: 1 canvas1: 1
canvas2: 13 canvas2: 13
canvas3: 24 canvas3: 24
levelTransition: 619
- EID: 4 - EID: 4
Name: CutScene1Points Name: CutScene1Points
IsActive: true IsActive: true
@ -177,7 +179,7 @@
Components: Components:
Transform Component: Transform Component:
Translate: {x: -550, y: 0, z: 0.5} Translate: {x: -550, y: 0, z: 0.5}
Rotate: {x: 0, y: 0, z: 0} Rotate: {x: 500.5, y: -274.5, z: 0.600000024}
Scale: {x: 1, y: 1, z: 1} Scale: {x: 1, y: 1, z: 1}
IsActive: true IsActive: true
Scripts: ~ Scripts: ~
@ -394,7 +396,7 @@
NumberOfChildren: 0 NumberOfChildren: 0
Components: Components:
Transform Component: Transform Component:
Translate: {x: -1375, y: 250, z: 0.5} Translate: {x: -1375, y: 250, z: 0.899999976}
Rotate: {x: 0, y: 0, z: 0} Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 982, y: 527, z: 1} Scale: {x: 982, y: 527, z: 1}
IsActive: true IsActive: true
@ -414,7 +416,7 @@
NumberOfChildren: 0 NumberOfChildren: 0
Components: Components:
Transform Component: Transform Component:
Translate: {x: 200, y: 1200, z: 0.400000006} Translate: {x: 200, y: 1200, z: 0.800000012}
Rotate: {x: 0, y: 0, z: 0} Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 625, y: 579, z: 1} Scale: {x: 625, y: 579, z: 1}
IsActive: true IsActive: true
@ -434,7 +436,7 @@
NumberOfChildren: 0 NumberOfChildren: 0
Components: Components:
Transform Component: Transform Component:
Translate: {x: 1700, y: 200, z: 0.300000012} Translate: {x: 1700, y: 200, z: 0.699999988}
Rotate: {x: 0, y: 0, z: 0} Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 529, y: 670, z: 1} Scale: {x: 529, y: 670, z: 1}
IsActive: true IsActive: true
@ -454,7 +456,7 @@
NumberOfChildren: 0 NumberOfChildren: 0
Components: Components:
Transform Component: Transform Component:
Translate: {x: -1600, y: -200, z: 0.5} Translate: {x: -1600, y: -200, z: 0.899999976}
Rotate: {x: 0, y: 0, z: 0} Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 1299, y: 575, z: 1} Scale: {x: 1299, y: 575, z: 1}
IsActive: true IsActive: true
@ -474,7 +476,7 @@
NumberOfChildren: 0 NumberOfChildren: 0
Components: Components:
Transform Component: Transform Component:
Translate: {x: 500, y: -1275, z: 0.5} Translate: {x: 500, y: -1275, z: 0.899999976}
Rotate: {x: 0, y: 0, z: 0} Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 866, y: 483, z: 1} Scale: {x: 866, y: 483, z: 1}
IsActive: true IsActive: true
@ -494,7 +496,7 @@
NumberOfChildren: 0 NumberOfChildren: 0
Components: Components:
Transform Component: Transform Component:
Translate: {x: 0, y: 0, z: 0.699999988} Translate: {x: 0, y: 0, z: 0.99000001}
Rotate: {x: 0, y: 0, z: 0} Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 1920, y: 1080, z: 1} Scale: {x: 1920, y: 1080, z: 1}
IsActive: true IsActive: true
@ -514,7 +516,7 @@
NumberOfChildren: 0 NumberOfChildren: 0
Components: Components:
Transform Component: Transform Component:
Translate: {x: 250, y: -500, z: 0.100000001} Translate: {x: 250, y: -500, z: 0.400000006}
Rotate: {x: 0, y: 0, z: 0} Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 50, y: 50, z: 50} Scale: {x: 50, y: 50, z: 50}
IsActive: true IsActive: true
@ -542,7 +544,7 @@
NumberOfChildren: 0 NumberOfChildren: 0
Components: Components:
Transform Component: Transform Component:
Translate: {x: -375, y: 250, z: 0.5} Translate: {x: -375, y: 250, z: 0.899999976}
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
@ -553,7 +555,7 @@
NumberOfChildren: 0 NumberOfChildren: 0
Components: Components:
Transform Component: Transform Component:
Translate: {x: 200, y: 200, z: 0.400000006} Translate: {x: 200, y: 200, z: 0.800000012}
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
@ -564,7 +566,7 @@
NumberOfChildren: 0 NumberOfChildren: 0
Components: Components:
Transform Component: Transform Component:
Translate: {x: 700, y: 200, z: 0.300000012} Translate: {x: 700, y: 200, z: 0.699999988}
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
@ -575,7 +577,7 @@
NumberOfChildren: 0 NumberOfChildren: 0
Components: Components:
Transform Component: Transform Component:
Translate: {x: -225, y: -200, z: 0.200000003} Translate: {x: -225, y: -200, z: 0.600000024}
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
@ -586,8 +588,77 @@
NumberOfChildren: 0 NumberOfChildren: 0
Components: Components:
Transform Component: Transform Component:
Translate: {x: 500, y: -275, z: 0.100000001} Translate: {x: 500, y: -275, z: 0.5}
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
Scripts: ~ Scripts: ~
- EID: 619
Name: LevelTransistionCanvas
IsActive: true
NumberOfChildren: 2
Components:
Canvas Component:
Canvas Width: 1920
Canvas Height: 1080
Scale by canvas width: false
IsActive: true
Scripts:
- Type: LevelTransistion
Enabled: true
logo: 618
bg: 617
duration: 0.5
bgEndPositionX: 3000
logoEndPositionX: 3000
rotAndScale: false
rotationAmt: 360
scaleAmt: 631
- EID: 618
Name: LevelTransistionLogo
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 0, y: 0, z: 0.100000001}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 631, y: 631, z: 1}
IsActive: true
Renderable Component:
Mesh: 141771688
Material: 126117259
IsActive: true
UI Component:
Canvas ID: 619
Hovered: false
Clicked: false
IsActive: true
Scripts: ~
- EID: 617
Name: LevelTransistionBG
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 0, y: 0, z: 0.200000003}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 4000, y: 4000, z: 1}
IsActive: true
Renderable Component:
Mesh: 141771688
Material: 132131066
IsActive: true
UI Component:
Canvas ID: 619
Hovered: false
Clicked: false
IsActive: true
Scripts: ~
- EID: 616
Name: TweenManager
IsActive: true
NumberOfChildren: 0
Components: ~
Scripts:
- Type: TweenManager
Enabled: true

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
- NavData: 255209218 - NavData: 254149790
- EID: 20 - EID: 20
Name: ===== Light ===== Name: ===== Light =====
IsActive: true IsActive: true
@ -112,6 +112,7 @@
Enabled: true Enabled: true
Score: 50 Score: 50
currCategory: 1 currCategory: 1
currFood: 0
density: 1 density: 1
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -164,6 +165,7 @@
Enabled: true Enabled: true
Score: 50 Score: 50
currCategory: 1 currCategory: 1
currFood: 0
density: 1 density: 1
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -216,6 +218,7 @@
Enabled: true Enabled: true
Score: 500 Score: 500
currCategory: 2 currCategory: 2
currFood: 0
density: 1 density: 1
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -268,6 +271,7 @@
Enabled: true Enabled: true
Score: 500 Score: 500
currCategory: 2 currCategory: 2
currFood: 0
density: 1 density: 1
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -320,6 +324,7 @@
Enabled: true Enabled: true
Score: 10 Score: 10
currCategory: 0 currCategory: 0
currFood: 0
density: 1 density: 1
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -372,6 +377,7 @@
Enabled: true Enabled: true
Score: 10 Score: 10
currCategory: 0 currCategory: 0
currFood: 0
density: 1 density: 1
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -424,6 +430,7 @@
Enabled: true Enabled: true
Score: 10 Score: 10
currCategory: 0 currCategory: 0
currFood: 0
density: 1 density: 1
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -482,6 +489,7 @@
Enabled: true Enabled: true
Score: 10 Score: 10
currCategory: 0 currCategory: 0
currFood: 0
density: 2 density: 2
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -702,6 +710,7 @@
Enabled: true Enabled: true
Score: 50 Score: 50
currCategory: 1 currCategory: 1
currFood: 0
density: 1 density: 1
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -754,6 +763,7 @@
Enabled: true Enabled: true
Score: 10 Score: 10
currCategory: 0 currCategory: 0
currFood: 0
density: 1 density: 1
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -806,6 +816,7 @@
Enabled: true Enabled: true
Score: 10 Score: 10
currCategory: 0 currCategory: 0
currFood: 0
density: 1 density: 1
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -858,6 +869,7 @@
Enabled: true Enabled: true
Score: 10 Score: 10
currCategory: 0 currCategory: 0
currFood: 0
density: 1 density: 1
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -910,6 +922,7 @@
Enabled: true Enabled: true
Score: 500 Score: 500
currCategory: 2 currCategory: 2
currFood: 0
density: 1 density: 1
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -962,6 +975,7 @@
Enabled: true Enabled: true
Score: 50 Score: 50
currCategory: 1 currCategory: 1
currFood: 0
density: 1 density: 1
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -1014,6 +1028,7 @@
Enabled: true Enabled: true
Score: 50 Score: 50
currCategory: 1 currCategory: 1
currFood: 0
density: 1 density: 1
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -1066,6 +1081,7 @@
Enabled: true Enabled: true
Score: 50 Score: 50
currCategory: 1 currCategory: 1
currFood: 0
density: 1 density: 1
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -1118,6 +1134,7 @@
Enabled: true Enabled: true
Score: 10 Score: 10
currCategory: 0 currCategory: 0
currFood: 0
density: 1 density: 1
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -1170,6 +1187,7 @@
Enabled: true Enabled: true
Score: 10 Score: 10
currCategory: 0 currCategory: 0
currFood: 0
density: 1 density: 1
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -1222,6 +1240,7 @@
Enabled: true Enabled: true
Score: 10 Score: 10
currCategory: 0 currCategory: 0
currFood: 0
density: 1 density: 1
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -1274,6 +1293,7 @@
Enabled: true Enabled: true
Score: 10 Score: 10
currCategory: 0 currCategory: 0
currFood: 0
density: 1 density: 1
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -1326,6 +1346,7 @@
Enabled: true Enabled: true
Score: 10 Score: 10
currCategory: 0 currCategory: 0
currFood: 0
density: 1 density: 1
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -1378,6 +1399,7 @@
Enabled: true Enabled: true
Score: 10 Score: 10
currCategory: 0 currCategory: 0
currFood: 0
density: 1 density: 1
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -1430,6 +1452,7 @@
Enabled: true Enabled: true
Score: 50 Score: 50
currCategory: 1 currCategory: 1
currFood: 0
density: 1 density: 1
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -1482,6 +1505,7 @@
Enabled: true Enabled: true
Score: 500 Score: 500
currCategory: 2 currCategory: 2
currFood: 0
density: 1 density: 1
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -1534,6 +1558,7 @@
Enabled: true Enabled: true
Score: 10 Score: 10
currCategory: 0 currCategory: 0
currFood: 0
density: 1 density: 1
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -1586,6 +1611,7 @@
Enabled: true Enabled: true
Score: 10 Score: 10
currCategory: 0 currCategory: 0
currFood: 0
density: 1 density: 1
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -1638,6 +1664,7 @@
Enabled: true Enabled: true
Score: 10 Score: 10
currCategory: 0 currCategory: 0
currFood: 0
density: 1 density: 1
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -1696,6 +1723,7 @@
Enabled: true Enabled: true
Score: 500 Score: 500
currCategory: 2 currCategory: 2
currFood: 0
density: 1 density: 1
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -1748,6 +1776,7 @@
Enabled: true Enabled: true
Score: 50 Score: 50
currCategory: 1 currCategory: 1
currFood: 0
density: 3 density: 3
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -1800,6 +1829,7 @@
Enabled: true Enabled: true
Score: 50 Score: 50
currCategory: 1 currCategory: 1
currFood: 0
density: 3 density: 3
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -1852,6 +1882,7 @@
Enabled: true Enabled: true
Score: 10 Score: 10
currCategory: 0 currCategory: 0
currFood: 0
density: 3 density: 3
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -1904,6 +1935,7 @@
Enabled: true Enabled: true
Score: 10 Score: 10
currCategory: 0 currCategory: 0
currFood: 0
density: 3 density: 3
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -1956,6 +1988,7 @@
Enabled: true Enabled: true
Score: 10 Score: 10
currCategory: 0 currCategory: 0
currFood: 0
density: 3 density: 3
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -2014,6 +2047,7 @@
Enabled: true Enabled: true
Score: 500 Score: 500
currCategory: 2 currCategory: 2
currFood: 0
density: 1 density: 1
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -2066,6 +2100,7 @@
Enabled: true Enabled: true
Score: 50 Score: 50
currCategory: 1 currCategory: 1
currFood: 0
density: 3 density: 3
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -2118,6 +2153,7 @@
Enabled: true Enabled: true
Score: 50 Score: 50
currCategory: 1 currCategory: 1
currFood: 0
density: 3 density: 3
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -2170,6 +2206,7 @@
Enabled: true Enabled: true
Score: 10 Score: 10
currCategory: 0 currCategory: 0
currFood: 0
density: 3 density: 3
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -2222,6 +2259,7 @@
Enabled: true Enabled: true
Score: 10 Score: 10
currCategory: 0 currCategory: 0
currFood: 0
density: 3 density: 3
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -2274,6 +2312,7 @@
Enabled: true Enabled: true
Score: 10 Score: 10
currCategory: 0 currCategory: 0
currFood: 0
density: 3 density: 3
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -2332,6 +2371,7 @@
Enabled: true Enabled: true
Score: 10 Score: 10
currCategory: 0 currCategory: 0
currFood: 0
density: 2 density: 2
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -2558,6 +2598,7 @@
Enabled: true Enabled: true
Score: 10 Score: 10
currCategory: 0 currCategory: 0
currFood: 0
density: 2 density: 2
dontReturn: false dontReturn: false
soundDistance: 10 soundDistance: 10
@ -2778,6 +2819,7 @@
Scripts: Scripts:
- Type: ScoringZone - Type: ScoringZone
Enabled: true Enabled: true
startingParticleCount: 10
- EID: 18 - EID: 18
Name: CollisionWall Name: CollisionWall
IsActive: true IsActive: true
@ -2841,6 +2883,7 @@
Scripts: Scripts:
- Type: ScoringZone - Type: ScoringZone
Enabled: true Enabled: true
startingParticleCount: 10
- EID: 17 - EID: 17
Name: CollisionWall Name: CollisionWall
IsActive: true IsActive: true
@ -3041,8 +3084,6 @@
armLength: 2 armLength: 2
turnSpeedPitch: 0.200000003 turnSpeedPitch: 0.200000003
turnSpeedYaw: 0.400000006 turnSpeedYaw: 0.400000006
inverseXControls: true
inverseYControls: false
pitchUpperClamp: 45 pitchUpperClamp: 45
pitchLowerClamp: 5 pitchLowerClamp: 5
- EID: 9 - EID: 9
@ -5388,7 +5429,7 @@
Freeze Position Y: false Freeze Position Y: false
Freeze Position Z: false Freeze Position Z: false
Freeze Rotation X: true Freeze Rotation X: true
Freeze Rotation Y: false Freeze Rotation Y: true
Freeze Rotation Z: true Freeze Rotation Z: true
IsActive: true IsActive: true
Collider Component: Collider Component:
@ -5396,7 +5437,7 @@
- Is Trigger: false - Is Trigger: false
Collision Tag: 5 Collision Tag: 5
Type: Box Type: Box
Half Extents: {x: 0.600000024, y: 1.79999995, z: 0.400000006} Half Extents: {x: 0.400000006, y: 1.79999995, z: 0.400000006}
Friction: 0.400000006 Friction: 0.400000006
Bounciness: 0 Bounciness: 0
Density: 1 Density: 1
@ -5425,9 +5466,6 @@
Enabled: true Enabled: true
currentStateName: "" currentStateName: ""
currentAnimName: "" currentAnimName: ""
- Type: SHADE_Scripting.Gameplay.AIBehaviour.AIRework.RotateToVelocity
Enabled: true
rotationPerSecond: 5
- Type: SHADE_Scripting.Gameplay.AIBehaviour.AIRework.AILineOfSight - Type: SHADE_Scripting.Gameplay.AIBehaviour.AIRework.AILineOfSight
Enabled: true Enabled: true
player: 2 player: 2
@ -5441,6 +5479,9 @@
withinSight: false withinSight: false
lastFoundPos: [0, 0, 0] lastFoundPos: [0, 0, 0]
lastFoundTimer: 0 lastFoundTimer: 0
- Type: SHADE_Scripting.Gameplay.AIBehaviour.AIRework.RotateToVelocity
Enabled: true
rotationPerSecond: 5
- EID: 10 - EID: 10
Name: Pause Canvas Name: Pause Canvas
IsActive: false IsActive: false

File diff suppressed because it is too large Load Diff

View File

@ -38,7 +38,7 @@
Transform Component: Transform Component:
Translate: {x: 0, y: 100, z: 0.300000012} Translate: {x: 0, y: 100, z: 0.300000012}
Rotate: {x: 0, y: 0, z: 0} Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 600, y: 600, z: 1.18585491} Scale: {x: 631.577454, y: 631.577454, z: 1.24826539}
IsActive: true IsActive: true
Renderable Component: Renderable Component:
Mesh: 141771688 Mesh: 141771688
@ -55,6 +55,7 @@
minScale: 1 minScale: 1
maxScale: 1.20000005 maxScale: 1.20000005
duration: 1.5 duration: 1.5
isActive: true
- EID: 54 - EID: 54
Name: Main Menu Button Group Name: Main Menu Button Group
IsActive: true IsActive: true
@ -258,7 +259,7 @@
Transform Component: Transform Component:
Translate: {x: 450, y: 0, z: 0.400000006} Translate: {x: 450, y: 0, z: 0.400000006}
Rotate: {x: 0, y: 0, z: 0} Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 400, y: 100, z: 1} Scale: {x: 389.627228, y: 97.4068069, z: 0.974068105}
IsActive: true IsActive: true
Renderable Component: Renderable Component:
Mesh: 141771688 Mesh: 141771688
@ -548,7 +549,6 @@
sfxVolSlider: 30 sfxVolSlider: 30
bgmVolSlider: 31 bgmVolSlider: 31
fovSlider: 37 fovSlider: 37
sensitivitySlider: 38
- EID: 20 - EID: 20
Name: BackGround Name: BackGround
IsActive: true IsActive: true
@ -750,16 +750,16 @@
- EID: 29 - EID: 29
Name: Master Volume Slider Name: Master Volume Slider
IsActive: true IsActive: true
NumberOfChildren: 0 NumberOfChildren: 1
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, y: 0, z: 0}
Scale: {x: 1000, y: 75, z: 1} Scale: {x: 1004, y: 46, z: 1}
IsActive: true IsActive: true
Renderable Component: Renderable Component:
Mesh: 141771688 Mesh: 141771688
Material: 128676209 Material: 127128823
IsActive: true IsActive: true
Slider Component: Slider Component:
Slider Value: 1 Slider Value: 1
@ -771,20 +771,44 @@
Hovered: false Hovered: false
Clicked: false Clicked: false
IsActive: true IsActive: true
Scripts:
- Type: SHADE_Scripting.UI.SliderFX
Enabled: true
onClickSound: event:/UI/button_success
onReleaseSound: event:/UI/button_fail
- EID: 437
Name: Slider BG
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 0, y: 0, z: 0.100000001}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 1.01992035, y: 1.39130437, z: 1}
IsActive: true
Renderable Component:
Mesh: 141771688
Material: 117587364
IsActive: true
UI Component:
Canvas ID: 19
Hovered: false
Clicked: false
IsActive: true
Scripts: ~ Scripts: ~
- EID: 30 - EID: 30
Name: SFX Volume Slider Name: SFX Volume Slider
IsActive: true IsActive: true
NumberOfChildren: 0 NumberOfChildren: 1
Components: Components:
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: 1000, y: 75, z: 1} Scale: {x: 1004, y: 46, z: 1}
IsActive: true IsActive: true
Renderable Component: Renderable Component:
Mesh: 141771688 Mesh: 141771688
Material: 128676209 Material: 122820018
IsActive: true IsActive: true
Slider Component: Slider Component:
Slider Value: 1 Slider Value: 1
@ -796,20 +820,44 @@
Hovered: false Hovered: false
Clicked: false Clicked: false
IsActive: true IsActive: true
Scripts: ~ Scripts:
- EID: 31 - Type: SHADE_Scripting.UI.SliderFX
Name: BGM Volume Slider Enabled: true
onClickSound: event:/UI/button_success
onReleaseSound: event:/UI/button_fail
- EID: 436
Name: Slider BG
IsActive: true IsActive: true
NumberOfChildren: 0 NumberOfChildren: 0
Components: Components:
Transform Component: Transform Component:
Translate: {x: 0, y: -200, z: 0} Translate: {x: 0, y: 0, z: 0.100000001}
Rotate: {x: 0, y: 0, z: 0} Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 1000, y: 75, z: 1} Scale: {x: 1.01992035, y: 1.39130437, z: 1}
IsActive: true IsActive: true
Renderable Component: Renderable Component:
Mesh: 141771688 Mesh: 141771688
Material: 128676209 Material: 117587364
IsActive: true
UI Component:
Canvas ID: 19
Hovered: false
Clicked: false
IsActive: true
Scripts: ~
- EID: 31
Name: BGM Volume Slider
IsActive: true
NumberOfChildren: 1
Components:
Transform Component:
Translate: {x: 0, y: -200, z: 0}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 1004, y: 46, z: 1}
IsActive: true
Renderable Component:
Mesh: 141771688
Material: 129354037
IsActive: true IsActive: true
Slider Component: Slider Component:
Slider Value: 1 Slider Value: 1
@ -821,6 +869,30 @@
Hovered: false Hovered: false
Clicked: false Clicked: false
IsActive: true IsActive: true
Scripts:
- Type: SHADE_Scripting.UI.SliderFX
Enabled: true
onClickSound: event:/UI/button_success
onReleaseSound: event:/UI/button_fail
- EID: 435
Name: Slider BG
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 0, y: 0, z: 0.100000001}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 1.01992035, y: 1.39130437, z: 1}
IsActive: true
Renderable Component:
Mesh: 141771688
Material: 117587364
IsActive: true
UI Component:
Canvas ID: 19
Hovered: false
Clicked: false
IsActive: true
Scripts: ~ Scripts: ~
- EID: 32 - EID: 32
Name: Camera Title Text Name: Camera Title Text
@ -847,7 +919,7 @@
- EID: 33 - EID: 33
Name: Camera Text Group Name: Camera Text Group
IsActive: true IsActive: true
NumberOfChildren: 4 NumberOfChildren: 3
Components: Components:
Transform Component: Transform Component:
Translate: {x: -900, y: -220, z: 0} Translate: {x: -900, y: -220, z: 0}
@ -882,28 +954,6 @@
Clicked: false Clicked: false
IsActive: true IsActive: true
Scripts: ~ Scripts: ~
- EID: 35
Name: Sensitivity Text
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 0, y: -100, z: 0.100000001}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 75, y: 75, z: 1}
IsActive: true
Text Renderer Component:
Text: Sensitivity
Font: 174412429
Color: {x: 0, y: 0, z: 0, w: 1}
Text Size: {x: 1, y: 1, z: 1}
IsActive: true
UI Component:
Canvas ID: 19
Hovered: false
Clicked: false
IsActive: true
Scripts: ~
- EID: 449 - EID: 449
Name: Camera Invert X Text Name: Camera Invert X Text
IsActive: true IsActive: true
@ -951,7 +1001,7 @@
- EID: 36 - EID: 36
Name: Camera Slider Group Name: Camera Slider Group
IsActive: true IsActive: true
NumberOfChildren: 4 NumberOfChildren: 3
Components: Components:
Transform Component: Transform Component:
Translate: {x: 100, y: -200, z: 0} Translate: {x: 100, y: -200, z: 0}
@ -967,19 +1017,19 @@
- EID: 37 - EID: 37
Name: FOV Slider Name: FOV Slider
IsActive: true IsActive: true
NumberOfChildren: 0 NumberOfChildren: 1
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, y: 0, z: 0}
Scale: {x: 1000, y: 75, z: 1} Scale: {x: 1004, y: 46, z: 1}
IsActive: true IsActive: true
Renderable Component: Renderable Component:
Mesh: 141771688 Mesh: 141771688
Material: 128676209 Material: 117651669
IsActive: true IsActive: true
Slider Component: Slider Component:
Slider Value: 1 Slider Value: 0.889483869
Min Value: 30 Min Value: 30
Max Value: 120 Max Value: 120
IsActive: true IsActive: true
@ -988,25 +1038,24 @@
Hovered: false Hovered: false
Clicked: false Clicked: false
IsActive: true IsActive: true
Scripts: ~ Scripts:
- EID: 38 - Type: SHADE_Scripting.UI.SliderFX
Name: Sensitivity Slider Enabled: true
onClickSound: event:/UI/button_success
onReleaseSound: event:/UI/button_fail
- EID: 434
Name: Slider BG
IsActive: true IsActive: true
NumberOfChildren: 0 NumberOfChildren: 0
Components: Components:
Transform Component: Transform Component:
Translate: {x: 0, y: -100, z: 0} Translate: {x: 0, y: 0, z: 0.100000001}
Rotate: {x: 0, y: 0, z: 0} Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 1000, y: 75, z: 1} Scale: {x: 1.01992035, y: 1.39130437, z: 1}
IsActive: true IsActive: true
Renderable Component: Renderable Component:
Mesh: 141771688 Mesh: 141771688
Material: 128676209 Material: 117587364
IsActive: true
Slider Component:
Slider Value: 1
Min Value: 0
Max Value: 100
IsActive: true IsActive: true
UI Component: UI Component:
Canvas ID: 19 Canvas ID: 19
@ -1043,6 +1092,14 @@
Enabled: true Enabled: true
inverseX: true inverseX: true
inverseY: false inverseY: false
- Type: SHADE_Scripting.UI.ButtonFX
Enabled: true
onHoverEnterSound: event:/UI/botton_hover
onHoverExitSound: Empty
onClickSound: event:/UI/button_success
onReleaseSound: event:/UI/button_fail
hoverScale: 1.25
clickScale: 0.899999976
- EID: 445 - EID: 445
Name: Invert Y Toggle Button Name: Invert Y Toggle Button
IsActive: true IsActive: true
@ -1072,6 +1129,14 @@
Enabled: true Enabled: true
inverseX: false inverseX: false
inverseY: true inverseY: true
- Type: SHADE_Scripting.UI.ButtonFX
Enabled: true
onHoverEnterSound: event:/UI/botton_hover
onHoverExitSound: Empty
onClickSound: event:/UI/button_success
onReleaseSound: event:/UI/button_fail
hoverScale: 1.25
clickScale: 0.899999976
- EID: 39 - EID: 39
Name: Audio Slider Text Group Name: Audio Slider Text Group
IsActive: true IsActive: true
@ -1166,7 +1231,7 @@
- EID: 43 - EID: 43
Name: Camera Slider Text Group Name: Camera Slider Text Group
IsActive: true IsActive: true
NumberOfChildren: 2 NumberOfChildren: 1
Components: Components:
Transform Component: Transform Component:
Translate: {x: 700, y: -225, z: -0.5} Translate: {x: 700, y: -225, z: -0.5}
@ -1190,7 +1255,7 @@
Scale: {x: 75, y: 75, z: 1} Scale: {x: 75, y: 75, z: 1}
IsActive: true IsActive: true
Text Renderer Component: Text Renderer Component:
Text: 100 Text: 60
Font: 174412429 Font: 174412429
Color: {x: 0, y: 0, z: 0, w: 1} Color: {x: 0, y: 0, z: 0, w: 1}
Text Size: {x: 1, y: 1, z: 1} Text Size: {x: 1, y: 1, z: 1}
@ -1204,31 +1269,6 @@
- Type: SHADE_Scripting.UI.SliderText - Type: SHADE_Scripting.UI.SliderText
Enabled: true Enabled: true
sliderObj: 37 sliderObj: 37
- EID: 45
Name: Sensitivity Slider Text
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 0, y: -100, z: 1}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 75, y: 75, z: 1}
IsActive: true
Text Renderer Component:
Text: 100
Font: 174412429
Color: {x: 0, y: 0, z: 0, w: 1}
Text Size: {x: 1, y: 1, z: 1}
IsActive: true
UI Component:
Canvas ID: 19
Hovered: false
Clicked: false
IsActive: true
Scripts:
- Type: SHADE_Scripting.UI.SliderText
Enabled: true
sliderObj: 38
- EID: 443 - EID: 443
Name: SubMenuBackGround Name: SubMenuBackGround
IsActive: true IsActive: true
@ -1401,7 +1441,7 @@
NumberOfChildren: 0 NumberOfChildren: 0
Components: Components:
Transform Component: Transform Component:
Translate: {x: -800, y: 450, z: 0} Translate: {x: -800, y: 450, z: 0.300000012}
Rotate: {x: 0, y: 0, z: 0} Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 273, y: 100, z: 1} Scale: {x: 273, y: 100, z: 1}
IsActive: true IsActive: true
@ -1437,7 +1477,7 @@
NumberOfChildren: 0 NumberOfChildren: 0
Components: Components:
Transform Component: Transform Component:
Translate: {x: -150, y: 400, z: 0.100000001} Translate: {x: -250, y: 400, z: 0.300000012}
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: true
@ -1497,9 +1537,9 @@
NumberOfChildren: 0 NumberOfChildren: 0
Components: Components:
Transform Component: Transform Component:
Translate: {x: -600, y: 0, z: 0} Translate: {x: -600, y: 0, z: 0.300000012}
Rotate: {x: 0, y: 0, z: 0} Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 380, y: 879, z: 1} Scale: {x: 345, y: 800, z: 1}
IsActive: true IsActive: true
Renderable Component: Renderable Component:
Mesh: 141771688 Mesh: 141771688
@ -1507,8 +1547,8 @@
IsActive: true IsActive: true
Button Component: Button Component:
Default Texture: 55897117 Default Texture: 55897117
Hovered Texture: 55897117 Hovered Texture: 56658801
Clicked Texture: 55897117 Clicked Texture: 58281309
IsActive: true IsActive: true
UI Component: UI Component:
Canvas ID: 50 Canvas ID: 50
@ -1519,15 +1559,24 @@
- Type: ChangeSceneButton - Type: ChangeSceneButton
Enabled: true Enabled: true
sceneID: 91947920 sceneID: 91947920
levelTransistion: 433
- Type: SHADE_Scripting.UI.ButtonFX
Enabled: true
onHoverEnterSound: event:/UI/botton_hover
onHoverExitSound: Empty
onClickSound: event:/UI/button_success
onReleaseSound: event:/UI/button_fail
hoverScale: 1.10000002
clickScale: 0.899999976
- EID: 439 - EID: 439
Name: Level 2 Button Name: Level 2 Button
IsActive: true IsActive: true
NumberOfChildren: 0 NumberOfChildren: 0
Components: Components:
Transform Component: Transform Component:
Translate: {x: 0, y: 0, z: 0} Translate: {x: 0, y: 0, z: 0.300000012}
Rotate: {x: 0, y: 0, z: 0} Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 380, y: 879, z: 1} Scale: {x: 345, y: 800, z: 1}
IsActive: true IsActive: true
Renderable Component: Renderable Component:
Mesh: 141771688 Mesh: 141771688
@ -1535,8 +1584,8 @@
IsActive: true IsActive: true
Button Component: Button Component:
Default Texture: 52151774 Default Texture: 52151774
Hovered Texture: 52151774 Hovered Texture: 66730012
Clicked Texture: 52151774 Clicked Texture: 59730316
IsActive: true IsActive: true
UI Component: UI Component:
Canvas ID: 50 Canvas ID: 50
@ -1547,15 +1596,24 @@
- Type: ChangeSceneButton - Type: ChangeSceneButton
Enabled: true Enabled: true
sceneID: 86098106 sceneID: 86098106
levelTransistion: 433
- Type: SHADE_Scripting.UI.ButtonFX
Enabled: true
onHoverEnterSound: event:/UI/botton_hover
onHoverExitSound: Empty
onClickSound: event:/UI/button_success
onReleaseSound: event:/UI/button_fail
hoverScale: 1.10000002
clickScale: 0.899999976
- EID: 438 - EID: 438
Name: Level 3 Button Name: Level 3 Button
IsActive: true IsActive: true
NumberOfChildren: 0 NumberOfChildren: 0
Components: Components:
Transform Component: Transform Component:
Translate: {x: 600, y: 0, z: 0} Translate: {x: 600, y: 0, z: 0.300000012}
Rotate: {x: 0, y: 0, z: 0} Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 380, y: 879, z: 1} Scale: {x: 345, y: 800, z: 1}
IsActive: true IsActive: true
Renderable Component: Renderable Component:
Mesh: 141771688 Mesh: 141771688
@ -1563,8 +1621,8 @@
IsActive: true IsActive: true
Button Component: Button Component:
Default Texture: 51704639 Default Texture: 51704639
Hovered Texture: 51704639 Hovered Texture: 66852283
Clicked Texture: 51704639 Clicked Texture: 53081657
IsActive: true IsActive: true
UI Component: UI Component:
Canvas ID: 50 Canvas ID: 50
@ -1575,6 +1633,15 @@
- Type: ChangeSceneButton - Type: ChangeSceneButton
Enabled: true Enabled: true
sceneID: 88928066 sceneID: 88928066
levelTransistion: 433
- Type: SHADE_Scripting.UI.ButtonFX
Enabled: true
onHoverEnterSound: event:/UI/botton_hover
onHoverExitSound: Empty
onClickSound: event:/UI/button_success
onReleaseSound: event:/UI/button_fail
hoverScale: 1.10000002
clickScale: 0.899999976
- EID: 450 - EID: 450
Name: TransitionCanvas Name: TransitionCanvas
IsActive: true IsActive: true
@ -1608,6 +1675,67 @@
Scripts: Scripts:
- Type: SHADE_Scripting.UI.SceneFadeInOut - Type: SHADE_Scripting.UI.SceneFadeInOut
Enabled: true Enabled: true
alphaValue: 1 alphaValue: 0
fadeInTime: 0.5 fadeInTime: 0.5
fadeOutTime: 0.5 fadeOutTime: 0.5
- EID: 433
Name: LevelTransistionCanvas
IsActive: false
NumberOfChildren: 2
Components:
Canvas Component:
Canvas Width: 1920
Canvas Height: 1080
Scale by canvas width: false
IsActive: false
Scripts:
- Type: LevelTransistion
Enabled: true
logo: 431
bg: 432
duration: 0.800000012
bgEndPositionX: 0
logoEndPositionX: 0
rotAndScale: true
rotationAmt: 360
scaleAmt: 631
- EID: 431
Name: LevelTransistionLogo
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 0, y: 0, z: 0.100000001}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 0, y: 0, z: 1}
IsActive: true
Renderable Component:
Mesh: 141771688
Material: 126117259
IsActive: true
UI Component:
Canvas ID: 433
Hovered: false
Clicked: false
IsActive: true
Scripts: ~
- EID: 432
Name: LevelTransistionBG
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: -2500, y: 0, z: 0.200000003}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 4000, y: 4000, z: 1}
IsActive: true
Renderable Component:
Mesh: 141771688
Material: 132131066
IsActive: true
UI Component:
Canvas ID: 433
Hovered: false
Clicked: false
IsActive: true
Scripts: ~

View File

@ -1,3 +1,4 @@
- NavData: 0
- EID: 0 - EID: 0
Name: Default Name: Default
IsActive: true IsActive: true
@ -170,8 +171,13 @@
Angular Ranges And Offset: {x: 6.19999981, y: 1.10000002, z: 0, w: 0.100000001} Angular Ranges And Offset: {x: 6.19999981, y: 1.10000002, z: 0, w: 0.100000001}
Rotation Speed: 0.0309999995 Rotation Speed: 0.0309999995
Rotation Decay: 0.0199999996 Rotation Decay: 0.0199999996
Texture Asset ID: 63456868 Texture Asset ID: 0
Custom Vertex Shader Asset ID: 44202416
Custom Fragment Shader Asset ID: 42315398
Custom Update Shader Asset ID: 0 Custom Update Shader Asset ID: 0
Color Tint: {x: 1, y: 0, z: 0, w: 1} Color Tint: {x: 0.46696043, y: 1, z: 0, w: 1}
Color Tint Range: {x: 1, y: 0, z: 0, w: 0}
Color Decay: {x: -1, y: -1, z: -1, w: 0}
Acceleration: {x: 0, y: 0, z: 0}
IsActive: true IsActive: true
Scripts: ~ Scripts: ~

View File

@ -75,7 +75,7 @@ namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework
{ {
if (hit.Hit && hit.Other != player) if (hit.Hit && hit.Other != player)
{ {
Debug.Log("AI LOS: HIT OTHER"); //Debug.Log("AI LOS: HIT OTHER");
withinSight = false; withinSight = false;
break; break;
} }

View File

@ -1,105 +1,176 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Net;
using System.Reflection.PortableExecutable;
using System.Text;
using System.Threading.Tasks;
using SHADE; using SHADE;
using SHADE_Scripting.Audio;
using SHADE_Scripting.Gameplay.AIBehaviour.AIRework.States; using SHADE_Scripting.Gameplay.AIBehaviour.AIRework.States;
namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework
{ {
public class HomeOwnerAI:Script public class HomeOwnerAI : Script
{
public float idleDuration = 1.0f;
public float caughtDuration = 2.0f;
public float timeoutDuration = 2.0f;
public GameObject patrolPointParent;
public float patrolSpeed = 2.0f;
public float chaseSpeed = 3.0f;
public float alertCooldown = 0.0f;
public GameObject player;
public GameObject attackHitbox;
public AnimationClipAsset walkingAnim;
public AnimationClipAsset idleAnim;
public AnimationClipAsset alertAnim;
public AnimationClipAsset alertRunAnim;
public AnimationClipAsset alertIdleAnim;
public AnimationClipAsset timeoutAnim;
public AnimationClipAsset atkWindupAnim;
public AnimationClipAsset atkHoldAnim;
public AnimationClipAsset atkSeqAnim;
private Vector3 startPos;
public bool atk { get; set; }
[NonSerialized]
public IEnumerable<Transform> patrolPointPool;
private List<Transform> pppList;
private Transform transform;
[NonSerialized]
public HomeOwnerAttackHitbox hitboxScript;
public void Reset()
{ {
public float idleDuration = 1.0f; StateMachine machine = GetScript<StateMachine>();
public float timeoutDuration = 2.0f; if (transform && machine)
public GameObject patrolPointParent; {
transform.GlobalPosition = startPos;
public float patrolSpeed = 2.0f; machine.SetState(typeof(IdleState));
public float chaseSpeed = 3.0f; }
}
public float alertCooldown = 0.0f;
public GameObject player;
[NonSerialized] protected override void awake()
public IEnumerable<Transform> patrolPointPool; {
StateMachine machine = GetScript<StateMachine>();
if (machine)
{
Dictionary<Type, BaseState> dictionary = new Dictionary<Type, BaseState>();
dictionary.Add(typeof(IdleState), new IdleState(machine));
dictionary.Add(typeof(PatrolState), new PatrolState(machine));
dictionary.Add(typeof(TimeoutState), new TimeoutState(machine));
dictionary.Add(typeof(ChaseState), new ChaseState(machine));
dictionary.Add(typeof(AlertState), new AlertState(machine));
dictionary.Add(typeof(AttackState), new AttackState(machine));
dictionary.Add(typeof(CaughtRaccoonState), new CaughtRaccoonState(machine));
machine.InitStateMachine(dictionary);
}
protected override void awake() AudioHandler.audioClipHandlers["HO_footsteps"] = SHADE.Audio.CreateAudioClip("event:/Homeowner/homeowner_footsteps");
{ SHADE.Audio.AttachAudioClipToObject(AudioHandler.audioClipHandlers["HO_footsteps"], GameObject.EntityId);
StateMachine machine = GetScript<StateMachine>();
if(machine)
{
Dictionary<Type, BaseState> dictionary = new Dictionary<Type, BaseState>();
dictionary.Add(typeof(IdleState), new IdleState(machine));
dictionary.Add(typeof(PatrolState), new PatrolState(machine));
dictionary.Add(typeof(TimeoutState), new TimeoutState(machine));
dictionary.Add(typeof(ChaseState), new ChaseState(machine));
dictionary.Add(typeof(AlertState), new AlertState(machine));
machine.InitStateMachine(dictionary); AudioHandler.audioClipHandlers["HO_bark"] = SHADE.Audio.CreateAudioClip("event:/Homeowner/homeowner_bark");
} SHADE.Audio.AttachAudioClipToObject(AudioHandler.audioClipHandlers["HO_bark"], GameObject.EntityId);
patrolPointPool = patrolPointParent.GetComponentsInChildren<Transform>(); AudioHandler.audioClipHandlers["HO_humming"] = SHADE.Audio.CreateAudioClip("event:/Homeowner/homeowner_humming");
SHADE.Audio.AttachAudioClipToObject(AudioHandler.audioClipHandlers["HO_humming"], GameObject.EntityId);
patrolPointPool = patrolPointParent.GetComponentsInChildren<Transform>();
pppList = patrolPointPool.ToList<Transform>();
transform = GetComponent<Transform>();
} atk = false;
}
protected override void update() protected override void start()
{ {
if(alertCooldown > 0.0f) //attackHitbox.SetActive(false);
{ if (pppList != null)
alertCooldown -= Time.DeltaTimeF; startPos = pppList[0].LocalPosition;
}
else
{
alertCooldown = 0.0f;
}
RigidBody rigid = GetComponent<RigidBody>(); if (attackHitbox)
if(rigid) hitboxScript = attackHitbox.GetScript<HomeOwnerAttackHitbox>();
{
rigid.AngularVelocity = Vector3.Zero;
}
}
public bool ShouldTransitAlert()
{
AILineOfSight los = GetScript<AILineOfSight>();
if (los)
{
if (los.withinSight && alertCooldown <= 0.0f)
{
return true;
}
}
return false;
}
public void RotateToPlayer()
{
//Transform playerTransform = player.GetComponent<Transform>();
////Rotate to face player.
//Transform aiTransform = GetComponent<Transform>();
//if(playerTransform && aiTransform)
//{
// Vector3 direction = playerTransform.GlobalPosition - aiTransform.GlobalPosition;
// Quaternion currentRotation = aiTransform.LocalRotation;
// Quaternion targetRotation = Quaternion.Euler(0.0f, MathF.Atan2(direction.x, direction.z), 0.0f);
// aiTransform.LocalRotation = Quaternion.Slerp(currentRotation, targetRotation, 5.0f * (float)Time.FixedDeltaTime);
//}
}
} }
protected override void update()
{
if (alertCooldown > 0.0f)
{
alertCooldown -= Time.DeltaTimeF;
}
else
{
alertCooldown = 0.0f;
}
AICheat();
}
public bool ShouldTransitAlert()
{
AILineOfSight los = GetScript<AILineOfSight>();
if (los)
{
if (los.withinSight && alertCooldown <= 0.0f)
{
return true;
}
}
return false;
}
public void RotateToPlayer()
{
//Transform playerTransform = player.GetComponent<Transform>();
////Rotate to face player.
//Transform aiTransform = GetComponent<Transform>();
//if(playerTransform && aiTransform)
//{
// Vector3 direction = playerTransform.GlobalPosition - aiTransform.GlobalPosition;
// Quaternion currentRotation = aiTransform.LocalRotation;
// Quaternion targetRotation = Quaternion.Euler(0.0f, MathF.Atan2(direction.x, direction.z), 0.0f);
// aiTransform.LocalRotation = Quaternion.Slerp(currentRotation, targetRotation, 5.0f * (float)Time.FixedDeltaTime);
//}
}
private void AICheat()
{
StateMachine machine = GetScript<StateMachine>();
AILineOfSight los = GetScript<AILineOfSight>();
if (machine && los)
{
if (Input.GetKeyDown(Input.KeyCode.K))
{
los.range = 5.0f;
machine.SetState(typeof(AlertState));
}
if (Input.GetKeyDown(Input.KeyCode.L))
{
los.range = 0.0f;
machine.SetState(typeof(IdleState));
}
}
}
}
} }

View File

@ -0,0 +1,65 @@
using SHADE;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using static PlayerController;
namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework
{
public class HomeOwnerAttackHitbox : Script
{
public GameObject aiGO;
public bool raccoonFound = false;
Transform transform;
Transform aiTransform;
[NonSerialized]
public PlayerController pc;
private HomeOwnerAI ai;
protected override void start()
{
transform = GetComponent<Transform>();
aiTransform = aiGO.GetComponent<Transform>();
ai = aiGO.GetScript<HomeOwnerAI>();
}
protected override void update()
{
if (transform && aiTransform)
{
transform.GlobalPosition = aiTransform.GlobalPosition + aiTransform.Forward * 0.7f;
transform.GlobalEulerAngles = aiTransform.GlobalEulerAngles;
}
if (raccoonFound && pc && ai)
{
if (!ai.atk)
raccoonFound = false;
}
}
protected override void onTriggerStay(CollisionInfo info)
{
if (info.GameObject.GetScript<PlayerController>())
{
pc = info.GameObject.GetScript<PlayerController>();
if (ai && ai.atk && pc)
{
raccoonFound = true;
}
}
}
}
}

View File

@ -0,0 +1,3 @@
Name: HomeOwnerAttackHitbox
ID: 164649501
Type: 9

View File

@ -11,23 +11,73 @@ namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework
{ {
public float rotationPerSecond = 2.0f; public float rotationPerSecond = 2.0f;
public bool active = true;
public bool rotateToPlayerLastKnown = false;
public bool lookAround = false;
private bool left = true;
private float lookOffset = 0.0f;
private float lookAroundAngle = 30.0f;
protected override void start()
{
rotateToPlayerLastKnown = false;
active = true;
}
protected override void update() protected override void update()
{ {
if (!active)
return;
RigidBody rigid = GetComponent<RigidBody>(); RigidBody rigid = GetComponent<RigidBody>();
Transform transform = GetComponent<Transform>(); Transform transform = GetComponent<Transform>();
if(!lookAround)
{
lookOffset = 0.0f;
}
//else
//{
// if(left )
// {
// if (lookOffset > -lookAroundAngle)
// lookOffset -= rotationPerSecond * Time.DeltaTimeF;
// else
// left = false;
// }
// if (!left)
// {
// if (lookOffset < lookAroundAngle)
// lookOffset += rotationPerSecond * Time.DeltaTimeF;
// else
// left = false;
// }
//}
if(rigid && transform) if(rigid && transform)
{ {
Vector3 vel = rigid.LinearVelocity; Vector3 vel = rigid.LinearVelocity;
rigid.AngularVelocity = Vector3.Zero;
if(vel.GetSqrMagnitude() > 1.0f)
AILineOfSight los = GetScript<AILineOfSight>();
if(los && rotateToPlayerLastKnown)
{
Vector3 direction = los.lastFoundPos - transform.GlobalPosition;
Quaternion currentRotation = transform.LocalRotation;
Quaternion targetRotation = Quaternion.Euler(0.0f, MathF.Atan2(direction.x, direction.z) + lookOffset, 0.0f);
transform.LocalRotation = Quaternion.Slerp(currentRotation, targetRotation, rotationPerSecond * (float)Time.DeltaTimeF);
return;
}
if(vel.GetMagnitude() > 0.01f)
{ {
Quaternion currentRotation = transform.LocalRotation; Quaternion currentRotation = transform.LocalRotation;
Quaternion targetRotation = Quaternion.Euler(0.0f, MathF.Atan2(vel.x, vel.z), 0.0f); Quaternion targetRotation = Quaternion.Euler(0.0f, MathF.Atan2(vel.x, vel.z) + lookOffset, 0.0f);
transform.LocalRotation = Quaternion.Slerp(currentRotation, targetRotation, rotationPerSecond * (float)Time.FixedDeltaTime); transform.LocalRotation = Quaternion.Slerp(currentRotation, targetRotation, rotationPerSecond * (float)Time.DeltaTimeF);
} }
} }

View File

@ -1,4 +1,5 @@
using System; using SHADE;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
@ -10,11 +11,12 @@ namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework.States
{ {
protected HomeOwnerAI ai; protected HomeOwnerAI ai;
protected Animator animator;
public AIBaseState(StateMachine stateMachine): base(stateMachine, "") public AIBaseState(StateMachine stateMachine): base(stateMachine, "")
{ {
stateName = "AI Base State"; stateName = "AI Base State";
ai = stateMachine.GetScript<HomeOwnerAI>(); ai = stateMachine.GetScript<HomeOwnerAI>();
animator = stateMachine.GetComponent<Animator>();
} }

View File

@ -1,42 +1,82 @@
using SHADE; using SHADE;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using SHADE_Scripting.Audio;
namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework.States namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework.States
{ {
public class AlertState: AIBaseState public class AlertState : AIBaseState
{
const float alertDuration = 16.0f / 30.0f + 1.0f;
float alertTimer = alertDuration;
bool firstDetection;
public AlertState(StateMachine machine) : base(machine)
{ {
const float alertDuration = 2.0f; stateName = "Alert";
float alertTimer = alertDuration; AudioHandler.audioClipHandlers["raccoondetected"] = SHADE.Audio.CreateAudioClip("event:/Raccoon/raccoon_detected");
firstDetection = true;
}
public override void OnEnter()
{
alertTimer = alertDuration;
if (animator)
{
animator.PlayOneShot(ai.alertAnim);
public AlertState(StateMachine machine): base(machine) }
if(firstDetection)
{
SHADE.Audio.SetParameterWithLabel("HomeownerBark", "DetectFirst");
AudioHandler.audioClipHandlers["HO_bark"].Play();
firstDetection = false;
}
else
{
PlayerController pc = ai.player.GetScript<PlayerController>();
if (pc && pc.holdItem)
{ {
stateName = "Alert"; SHADE.Audio.SetParameterWithLabel("HomeownerBark", "DetectFood");
} AudioHandler.audioClipHandlers["HO_bark"].Play();
}
public override void OnEnter() else
{ {
alertTimer = alertDuration; SHADE.Audio.SetParameterWithLabel("HomeownerBark", "DetectAgain");
} AudioHandler.audioClipHandlers["HO_bark"].Play();
}
public override void update() }
{ SHADE.Audio.SetParameterWithLabel("PlayerDetection", "Detected");
alertTimer -= Time.DeltaTimeF;
if (alertTimer <= 0.0f)
{
machine.SetState(typeof(ChaseState));
}
}
}
public override void OnExit()
{
animator.Stop();
}
public override void fixedUpdate() public override void update()
{ {
alertTimer -= Time.DeltaTimeF;
} if (alertTimer <= 0.0f)
{
machine.SetState(typeof(ChaseState));
}
} }
public override void fixedUpdate()
{
}
}
} }

View File

@ -0,0 +1,186 @@
using SHADE;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework.States
{
public class AttackState : AIBaseState
{
float timer = 0.0f;
float windupTime = 8.0f / 30.0f;
float holdTime = 0.3f;
float seqTime = 8.0f / 30.0f;
float endTime = 0.5f;
bool windUp = false;
bool hold = false;
bool seq = false;
bool end = false;
bool raccoonCaught = true;
public AttackState(StateMachine machine) : base(machine)
{
stateName = "Attack";
}
public override void OnEnter()
{
timer = 0.0f;
animator.PlayOneShot(ai.atkWindupAnim);
windUp = true;
hold = false;
seq = false;
end = false;
timer = windupTime;
raccoonCaught = false;
RotateToVelocity rotate = machine.GetScript<RotateToVelocity>();
if (rotate)
rotate.active = false;
RigidBody rigid = machine.GetComponent<RigidBody>();
if (rigid)
{
rigid.LinearVelocity = Vector3.Zero;
}
Transform transform = machine.GetComponent<Transform>();
AILineOfSight los = machine.GetScript<AILineOfSight>();
Transform playerTransform = ai.player.GetComponent<Transform>();
if (los && transform)
{
Vector3 direction = playerTransform.GlobalPosition - transform.GlobalPosition;
Quaternion targetRotation = Quaternion.Euler(0.0f, MathF.Atan2(direction.x, direction.z), 0.0f);
transform.LocalRotation = targetRotation;
}
//ai.attackHitbox.SetActive(false);
}
public override void OnExit()
{
RotateToVelocity rotate = ai.GetScript<RotateToVelocity>();
if (rotate)
{
rotate.active = true;
rotate.lookAround = false;
}
//ai.attackHitbox.SetActive(false);
machine.GetScript<HomeOwnerAI>().atk = false;
}
public override void update()
{
if (ai.hitboxScript.raccoonFound && machine.GetScript<HomeOwnerAI>().atk)
{
raccoonCaught = true;
Transform pcTransform = ai.player.GetComponent<Transform>();
ai.player.GetScript<PlayerController>().Caught();
Transform netTransform = ai.attackHitbox.GetComponentInChildren<Transform>();
if (pcTransform && netTransform)
{
pcTransform.GlobalPosition = netTransform.GlobalPosition;
}
}
timer -= Time.DeltaTimeF;
if (windUp)
{
if (timer <= 0.0f)
{
windUp = false;
hold = true;
animator.Play(ai.atkHoldAnim);
timer = holdTime;
//ai.attackHitbox.SetActive(true);
//machine.GetScript<HomeOwnerAI>().atk = true;
}
}
else if (hold)
{
if (timer <= 0.0f)
{
hold = false;
seq = true;
animator.PlayOneShot(ai.atkSeqAnim);
timer = seqTime;
}
}
else if (seq)
{
if (timer <= seqTime * 0.5f)
{
//ai.attackHitbox.SetActive(true);
machine.GetScript<HomeOwnerAI>().atk = true;
}
if (timer <= 0.0f)
{
seq = false;
end = true;
timer = endTime;
}
}
else if (end)
{
if (timer <= 0.0f)
{
end = false;
if(raccoonCaught)
{
machine.SetState(typeof(CaughtRaccoonState));
}
else
{
AILineOfSight los = ai.GetScript<AILineOfSight>();
if (los && los.withinSight)
{
machine.SetState(typeof(ChaseState));
}
else
{
machine.SetState(typeof(TimeoutState));
}
}
}
}
}
public override void fixedUpdate()
{
}
}
}

View File

@ -0,0 +1,3 @@
Name: AttackState
ID: 156854236
Type: 9

View File

@ -0,0 +1,72 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SHADE;
using static PlayerController;
namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework.States
{
public class CaughtRaccoonState: AIBaseState
{
private float timer = 0.0f;
private PlayerController pc;
public CaughtRaccoonState(StateMachine machine):base(machine)
{
stateName = "Caught Raccoon";
}
public override void OnEnter()
{
if(ai.hitboxScript)
pc = ai.hitboxScript.pc;
timer = ai.caughtDuration;
if (pc)
pc.Caught();
}
public override void OnExit()
{
animator.Stop();
}
public override void update()
{
timer -= Time.DeltaTimeF;
if(timer <= 0.0f)
{
if (pc)
{
pc.Reset();
}
ai.Reset();
}
else
{
Transform pcTransform = pc.GetComponent<Transform>();
Transform netTransform = ai.attackHitbox.GetComponentInChildren<Transform>();
if (pcTransform && netTransform)
{
pcTransform.GlobalPosition = netTransform.GlobalPosition;
}
}
}
public override void fixedUpdate()
{
}
}
}

View File

@ -0,0 +1,3 @@
Name: CaughtRaccoonState
ID: 153010954
Type: 9

View File

@ -1,4 +1,6 @@
using SHADE; using SHADE;
using SHADE.Test;
using SHADE_Scripting.Audio;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
@ -12,23 +14,80 @@ namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework.States
float giveUpDuration = 10.0f; float giveUpDuration = 10.0f;
float giveUpTimer = 0.0f; float giveUpTimer = 0.0f;
float atkDistance = 1.0f;
bool run = true;
float footStepInterval = 12.0f / 30.0f;
float footStepTimer = 0.0f;
float barkTimer = 0.0f;
Random rand;
public ChaseState(StateMachine machine): base(machine) public ChaseState(StateMachine machine): base(machine)
{ {
stateName = "Chase"; stateName = "Chase";
rand = new Random();
} }
public override void OnEnter() public override void OnEnter()
{ {
giveUpTimer = giveUpDuration; giveUpTimer = giveUpDuration;
animator.Play(ai.alertRunAnim);
run = true;
RotateToVelocity r = machine.GetScript<RotateToVelocity>();
if (r)
{
r.rotateToPlayerLastKnown = true;
}
footStepTimer = footStepInterval * 0.5f;
barkTimer = (float)rand.Next(0, 2) + (float)rand.NextDouble();
}
public override void OnExit()
{
animator.Stop();
RotateToVelocity r = machine.GetScript<RotateToVelocity>();
if (r)
{
r.rotateToPlayerLastKnown = false;
}
RotateToVelocity rotate = ai.GetScript<RotateToVelocity>();
if (rotate)
{
rotate.lookAround = false;
}
} }
public override void update() public override void update()
{ {
Navigation nav = machine.GetComponent<Navigation>(); barkTimer -= Time.DeltaTimeF;
if(barkTimer <= 0.0f)
{
barkTimer = (float)rand.Next(4, 6) + (float)rand.NextDouble();
SHADE.Audio.SetParameterWithLabel("HomeownerBark", "Chase");
AudioHandler.audioClipHandlers["HO_bark"].Play();
}
Navigation nav = machine.GetComponent<Navigation>();
AILineOfSight los = ai.GetScript<AILineOfSight>(); AILineOfSight los = ai.GetScript<AILineOfSight>();
if(los && nav) RigidBody rigid = machine.GetComponent<RigidBody>();
if (los && nav)
{ {
Transform playerTransform = los.player.GetComponent<Transform>(); Transform playerTransform = los.player.GetComponent<Transform>();
if (los.withinSight) if (los.withinSight)
@ -45,13 +104,18 @@ namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework.States
machine.SetState(typeof(TimeoutState)); machine.SetState(typeof(TimeoutState));
} }
RigidBody rigid = machine.GetComponent<RigidBody>(); if(los.distance < atkDistance)
{
machine.SetState(typeof(AttackState));
}
if(rigid) if(rigid)
{ {
if (los.withinSight) if (los.withinSight)
rigid.LinearVelocity = nav.GetForward() * ai.chaseSpeed; rigid.LinearVelocity = nav.GetForward() * ai.chaseSpeed;
else else
rigid.LinearVelocity = nav.GetForward() * ai.patrolSpeed; rigid.LinearVelocity = nav.GetForward() * ai.chaseSpeed;
} }
if(nav.ReachedTarget()) if(nav.ReachedTarget())
@ -59,12 +123,44 @@ namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework.States
giveUpTimer -= Time.DeltaTimeF; giveUpTimer -= Time.DeltaTimeF;
ai.RotateToPlayer(); ai.RotateToPlayer();
RotateToVelocity rotate = ai.GetScript<RotateToVelocity>();
if(rotate)
{
rotate.lookAround = true;
}
} }
} }
if (animator && rigid)
{
if (rigid.LinearVelocity.GetMagnitude() < 0.001f)
{
if(run)
{
animator.Play(ai.idleAnim);
run = false;
}
}
else
{
if(!run)
{
animator.Play(ai.alertRunAnim);
run = true;
}
}
}
footStepTimer -= Time.DeltaTimeF;
if (footStepTimer <= 0.0f)
{
footStepTimer += footStepInterval;
AudioHandler.audioClipHandlers["HO_footsteps"].Play();
}
} }
public override void fixedUpdate() public override void fixedUpdate()

View File

@ -23,6 +23,23 @@ namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework.States
public override void OnEnter() public override void OnEnter()
{ {
timer = 0.0f; timer = 0.0f;
animator.Play(ai.idleAnim);
SHADE.Audio.SetParameterWithLabel("PlayerDetection", "Undetected");
RotateToVelocity rotate = ai.GetScript<RotateToVelocity>();
if (rotate)
{
rotate.lookAround = true;
}
}
public override void OnExit()
{
animator.Stop();
RotateToVelocity rotate = ai.GetScript<RotateToVelocity>();
if (rotate)
{
rotate.lookAround = false;
}
} }
public override void update() public override void update()

View File

@ -1,4 +1,5 @@
using SHADE; using SHADE;
using SHADE_Scripting.Audio;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
@ -13,8 +14,11 @@ namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework.States
Random rand; Random rand;
Vector3 lastFramePos; Vector3 lastFramePos;
float stuckTimer ; float stuckTimer;
bool run = true;
float footStepInterval = 12.0f / 30.0f;
float footStepTimer = 0.0f;
public PatrolState(StateMachine machine) : base(machine) public PatrolState(StateMachine machine) : base(machine)
{ {
@ -34,7 +38,7 @@ namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework.States
if (dest) if (dest)
{ {
nav.MoveTo(dest.GlobalPosition); nav.MoveTo(dest.GlobalPosition);
Debug.Log("Moving to" + dest.GlobalPosition.ToString());
} }
lastFramePos = transform.GlobalPosition; lastFramePos = transform.GlobalPosition;
@ -42,8 +46,28 @@ namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework.States
stuckTimer = 0.0f; stuckTimer = 0.0f;
} }
animator.Play(ai.walkingAnim);
AudioHandler.audioClipHandlers["HO_footsteps"].Play();
AudioHandler.audioClipHandlers["HO_humming"].Play();
footStepTimer = footStepInterval;
RotateToVelocity r = machine.GetScript<RotateToVelocity>();
if(r)
{
r.rotateToPlayerLastKnown = false;
}
} }
public override void OnExit()
{
animator.Stop();
AudioHandler.audioClipHandlers["HO_humming"].Stop(false);
}
public override void update() public override void update()
{ {
Navigation nav = machine.GetComponent<Navigation>(); Navigation nav = machine.GetComponent<Navigation>();
@ -55,7 +79,7 @@ namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework.States
Vector3 d = lastFramePos - transform.GlobalPosition; Vector3 d = lastFramePos - transform.GlobalPosition;
if (d.GetSqrMagnitude() < 0.001f) if (d.GetSqrMagnitude() < 0.001f)
{ {
stuckTimer += Time.DeltaTimeF; //stuckTimer += Time.DeltaTimeF;
} }
@ -75,7 +99,12 @@ namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework.States
{ {
machine.SetState(typeof(AlertState)); machine.SetState(typeof(AlertState));
} }
footStepTimer -= Time.DeltaTimeF;
if(footStepTimer <= 0.0f)
{
footStepTimer += footStepInterval;
AudioHandler.audioClipHandlers["HO_footsteps"].Play();
}
} }

View File

@ -4,13 +4,14 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using SHADE; using SHADE;
using SHADE_Scripting.Audio;
namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework.States namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework.States
{ {
public class TimeoutState : AIBaseState public class TimeoutState : AIBaseState
{ {
float timer = 0.0f; float timer = 0.0f;
float alertCooldown = 10.0f; float alertCooldown = 1.0f;
public TimeoutState(StateMachine machine) : base(machine) public TimeoutState(StateMachine machine) : base(machine)
{ {
@ -21,7 +22,12 @@ namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework.States
public override void OnEnter() public override void OnEnter()
{ {
timer = 0.0f; timer = 0.0f;
} animator.Play(ai.idleAnim);
SHADE.Audio.SetParameterWithLabel("HomeownerBark", "DetectLost");
AudioHandler.audioClipHandlers["HO_bark"].Play();
}
public override void update() public override void update()
{ {

View File

@ -14,9 +14,6 @@ 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] [SerializeField]
private string breakClipPath; private string breakClipPath;
@ -38,7 +35,8 @@ public class Breakable : Script
isBreak = false; isBreak = false;
AudioHandler.audioClipHandlers[breakClipHandlerName] = Audio.CreateAudioClip(breakClipPath); AudioHandler.audioClipHandlers["break"] = Audio.CreateAudioClip(breakClipPath);
Audio.AttachAudioClipToObject(AudioHandler.audioClipHandlers["break"], GameObject.EntityId);
} }
protected override void update() protected override void update()
@ -81,9 +79,7 @@ public class Breakable : Script
GameManager.Instance.itemShatter = false; GameManager.Instance.itemShatter = false;
isBreak = false; isBreak = false;
Audio.AttachAudioClipToObject(AudioHandler.audioClipHandlers[breakClipHandlerName], GameObject.EntityId); AudioHandler.audioClipHandlers["break"].Play();
AudioHandler.audioClipHandlers[breakClipHandlerName].Play();
//Audio.DetachAudioClipFromObject(AudioHandler.audioClipHandlers[breakClipHandlerName]);
GameObject.SetActive(false); GameObject.SetActive(false);
} }
} }

View File

@ -1,5 +1,6 @@
using SHADE; using SHADE;
using SHADE_Scripting.Audio; using SHADE_Scripting.Audio;
using SHADE_Scripting.Gameplay.AIBehaviour.AIRework;
using System; using System;
public class Item : Script public class Item : Script
{ {
@ -26,16 +27,12 @@ public class Item : Script
public bool returnBack { get; set; } public bool returnBack { get; set; }
private Transform transform; private Transform transform;
private RigidBody rb; private RigidBody rb;
private bool playSound = false;
private bool caputurePos = false; private bool caputurePos = false;
private Vector3 firstPostion; private Vector3 firstPostion;
private Vector3 firstRotation; private Vector3 firstRotation;
private Collider collider;
public float density = 1.0f;
public bool dontReturn = false; public bool dontReturn = false;
private bool once = true;
private bool checkSound = false;
private bool homeownerOnce = true; private bool homeownerOnce = true;
public float soundDistance = 10; public float soundDistance = 10;
@ -52,9 +49,6 @@ public class Item : Script
{ {
transform = GetComponent<Transform>(); transform = GetComponent<Transform>();
rb = GetComponent<RigidBody>(); rb = GetComponent<RigidBody>();
collider = GetComponent<Collider>();
if(collider)
collider.GetCollisionShape(0).Density = density;
rend = GetComponent<Renderable>(); rend = GetComponent<Renderable>();
if (!rend) if (!rend)
@ -65,6 +59,11 @@ public class Item : Script
AudioHandler.audioClipHandlers["SFXImpactElastic"] = Audio.CreateAudioClip("event:/Props/impact_elastic"); AudioHandler.audioClipHandlers["SFXImpactElastic"] = Audio.CreateAudioClip("event:/Props/impact_elastic");
AudioHandler.audioClipHandlers["SFXImpactHard"] = Audio.CreateAudioClip("event:/Props/impact_hard"); AudioHandler.audioClipHandlers["SFXImpactHard"] = Audio.CreateAudioClip("event:/Props/impact_hard");
if (currCategory == ItemCategory.LIGHT)
Audio.AttachAudioClipToObject(AudioHandler.audioClipHandlers["SFXImpactElastic"], GameObject.EntityId);
else if (currCategory == ItemCategory.MEDIUM || currCategory == ItemCategory.HEAVY)
Audio.AttachAudioClipToObject(AudioHandler.audioClipHandlers["SFXImpactHard"], GameObject.EntityId);
emitter = GetComponent<ParticleEmitter>(); emitter = GetComponent<ParticleEmitter>();
} }
@ -119,19 +118,6 @@ public class Item : Script
returnBack = false; returnBack = false;
} }
if (checkSound)
{
/* //need to wait for collisionEnter Fix
Vector3 itemPos = transform.LocalPosition;
Vector3 len = Homeowner1.aiInstance.GetComponent<Transform>().LocalPosition - itemPos;
Debug.Log($"distance: {len.GetSqrMagnitude()}");
if (len.GetSqrMagnitude() <= soundDistance)
{
//set ai to alert
}
checkSound = false;*/
}
} }
protected override void onCollisionEnter(CollisionInfo info) protected override void onCollisionEnter(CollisionInfo info)
@ -144,25 +130,21 @@ public class Item : Script
caputurePos = true; caputurePos = true;
} }
if (playSound) if (once)
{ {
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;
Audio.DetachAudioClipFromObject(AudioHandler.audioClipHandlers["SFXImpactElastic"]);
Audio.DetachAudioClipFromObject(AudioHandler.audioClipHandlers["SFXImpactHard"]);
Debug.Log("ENTER"); if (emitter)
if(emitter)
emitter.Emit(); emitter.Emit();
once = false;
} }
if (info.GameObject.GetScript<Homeowner1>() && homeownerOnce)
if (info.GameObject.GetScript<HomeOwnerAI>() && homeownerOnce)
{ {
homeownerOnce = false; homeownerOnce = false;
returnBack = true; returnBack = true;
@ -171,9 +153,8 @@ public class Item : Script
protected override void onCollisionExit(CollisionInfo info) protected override void onCollisionExit(CollisionInfo info)
{ {
playSound = true;
checkSound = true;
homeownerOnce = true; homeownerOnce = true;
once = true;
} }
} }

View File

@ -1,4 +1,4 @@
using SHADE; using SHADE;
using SHADE_Scripting; using SHADE_Scripting;
using SHADE_Scripting.Audio; using SHADE_Scripting.Audio;
using System; using System;
@ -212,6 +212,14 @@ public class PickAndThrow : Script
} }
} }
public void SetItemGravityBack()
{
if(itemRidigBody)
itemRidigBody.IsGravityEnabled = true;
if(itemCollider)
itemCollider.GetCollisionShape(0).IsTrigger = false;
}
public void ResetItemObject() public void ResetItemObject()
{ {
itemRidigBody = null; itemRidigBody = null;
@ -466,7 +474,7 @@ public class PickAndThrow : Script
} }
} }
private void TweenAimCamArm(bool aim) public void TweenAimCamArm(bool aim)
{ {
if (aim) if (aim)

View File

@ -1,4 +1,4 @@
using SHADE; using SHADE;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using SHADE_Scripting.Audio; using SHADE_Scripting.Audio;
@ -22,7 +22,10 @@ public class PlayerController : Script
public Transform tranform { get; set; } public Transform tranform { get; set; }
public Camera cam { get; set; } public Camera cam { get; set; }
public CameraArm camArm { get; set; } public CameraArm camArm { get; set; }
private PickAndThrow pat; public Collider collider { get; set; }
[NonSerialized]
public PickAndThrow pat;
public StateMachine stateMachine { get; set; } public StateMachine stateMachine { get; set; }
public ParticleEmitter Leftsmoke { get; set; } public ParticleEmitter Leftsmoke { get; set; }
public ParticleEmitter Rightsmoke { get; set; } public ParticleEmitter Rightsmoke { get; set; }
@ -122,6 +125,10 @@ public class PlayerController : Script
if(!tranform) if(!tranform)
Debug.LogError("tranform is MISSING!"); Debug.LogError("tranform is MISSING!");
collider = GetComponent<Collider>();
if (!collider)
Debug.LogError("collider is MISSING!");
stateMachine = AddScript<StateMachine>(); stateMachine = AddScript<StateMachine>();
Dictionary<Type, BaseState> dictionary = new Dictionary<Type, BaseState>(); Dictionary<Type, BaseState> dictionary = new Dictionary<Type, BaseState>();
dictionary.Add(typeof(PlayerIdleState), new PlayerIdleState(stateMachine)); dictionary.Add(typeof(PlayerIdleState), new PlayerIdleState(stateMachine));
@ -189,7 +196,7 @@ public class PlayerController : Script
float ratio = System.Math.Clamp(1 - (disSqr / (1 + disSqr)), 0, 1.0f); float ratio = System.Math.Clamp(1 - (disSqr / (1 + disSqr)), 0, 1.0f);
float temp = (1 - ratio) * 0.00075f; float temp = (1 - ratio) * 0.00075f;
if (temp <= 0.0006f) if (temp <= 0.0006f)
temp = 0.1f; temp = 0.0075f;
silhouettePlayerRend.Material.SetProperty<float>("data.offset", temp); silhouettePlayerRend.Material.SetProperty<float>("data.offset", temp);
silhouetteBagRend.Material.SetProperty<float>("data.offset", temp); silhouetteBagRend.Material.SetProperty<float>("data.offset", temp);
} }
@ -227,7 +234,7 @@ public class PlayerController : Script
} }
} }
GotCaught();
Rotation(); Rotation();
MoveKey(); MoveKey();
Sprint(); Sprint();
@ -254,6 +261,10 @@ public class PlayerController : Script
private void MoveKey() private void MoveKey()
{ {
if (currentState == RaccoonStates.CAUGHT)
return;
axisMove = Vector2.Zero; axisMove = Vector2.Zero;
if (Input.GetKey(Input.KeyCode.W)) if (Input.GetKey(Input.KeyCode.W))
{ {
@ -290,7 +301,7 @@ public class PlayerController : Script
axisMove.Normalise(); axisMove.Normalise();
isMoveKeyPress = axisMove.x != 0 || axisMove.y != 0; isMoveKeyPress = axisMove.x != 0 || axisMove.y != 0;
if (isMoveKeyPress && isGrounded && !Input.GetKey(Input.KeyCode.LeftShift)) if (isMoveKeyPress && isGrounded && !Input.GetKey(Input.KeyCode.LeftShift) && currentState != RaccoonStates.CAUGHT)
{ {
currentState = RaccoonStates.WALKING; currentState = RaccoonStates.WALKING;
@ -334,13 +345,25 @@ public class PlayerController : Script
private void Sprint() private void Sprint()
{ {
if (currentState == RaccoonStates.CAUGHT)
return;
if (Input.GetKey(Input.KeyCode.LeftShift) && isMoveKeyPress && isGrounded) if (Input.GetKey(Input.KeyCode.LeftShift) && isMoveKeyPress && isGrounded)
{ {
currentState = RaccoonStates.RUNNING; currentState = RaccoonStates.RUNNING;
if (stateMachine && !stateMachine.IsState(typeof(PlayerRunState))) if (stateMachine && !stateMachine.IsState(typeof(PlayerRunState)))
stateMachine.SetState(typeof(PlayerRunState)); stateMachine.SetState(typeof(PlayerRunState));
holdItem = false; if (pat && holdItem)
{
holdItem = false;
isAiming = false;
cam.FOV = Settings.cameraFOV;
pat.TweenAimCamArm(false);
pat.SetItemGravityBack();
pat.ResetItemObject();
}
if (!sprintIncreaseOnce) if (!sprintIncreaseOnce)
{ {
sprintIncreaseOnce = true; sprintIncreaseOnce = true;
@ -418,9 +441,12 @@ public class PlayerController : Script
if (!isGrounded && rb != null && (rb.LinearVelocity.y < 0.0f || Input.GetKeyUp(Input.KeyCode.Space))) if (!isGrounded && rb != null && (rb.LinearVelocity.y < 0.0f || Input.GetKeyUp(Input.KeyCode.Space)))
{ {
currentState = RaccoonStates.FALLING; if (currentState != RaccoonStates.CAUGHT)
if (stateMachine && !stateMachine.IsState(typeof(PlayerFallState))) {
stateMachine.SetState(typeof(PlayerFallState)); currentState = RaccoonStates.FALLING;
if (stateMachine && !stateMachine.IsState(typeof(PlayerFallState)))
stateMachine.SetState(typeof(PlayerFallState));
}
} }
} }
@ -445,6 +471,9 @@ public class PlayerController : Script
private void Gravity() private void Gravity()
{ {
if (currentState == RaccoonStates.CAUGHT)
return;
if (rb != null) if (rb != null)
{ {
//check player vel.y if its close to zero its on the ground //check player vel.y if its close to zero its on the ground
@ -496,34 +525,54 @@ public class PlayerController : Script
} }
} }
private void GotCaught()
public void Caught()
{ {
if (currentState == RaccoonStates.CAUGHT && tranform && respawnPoint) currentState = RaccoonStates.CAUGHT;
if (stateMachine && !stateMachine.IsState(typeof(PlayerCaughtState)))
stateMachine.SetState(typeof(PlayerCaughtState));
AudioHandler.audioClipHandlers["RaccoonCaught"].Play();
if (pat && pat.item)
{ {
AudioHandler.audioClipHandlers["RaccoonCaught"].Play(); if (holdItem)
{
holdItem = false;
pat.item.GetScript<Item>().returnBack = true;
pat.SetItemGravityBack();
pat.ResetItemObject();
}
if (isAiming)
{
isAiming = false;
cam.FOV = Settings.cameraFOV;
camArm.TargetOffset = pat.prevTargetOffSet;
camArm.ArmLength = pat.tpc.armLength;
}
}
landedOnJumpPad = false;
jumpPadDrop = false;
rb.ClearForces();
rb.ClearTorque();
rb.LinearVelocity = Vector3.Zero;
rb.AngularVelocity = Vector3.Zero;
collider.GetCollisionShape(0).IsTrigger = true;
}
public void Reset()
{
if (tranform && respawnPoint)
{
currentState = RaccoonStates.IDLE; currentState = RaccoonStates.IDLE;
if (stateMachine && !stateMachine.IsState(typeof(PlayerIdleState))) if (stateMachine && !stateMachine.IsState(typeof(PlayerIdleState)))
stateMachine.SetState(typeof(PlayerIdleState)); stateMachine.SetState(typeof(PlayerIdleState));
tranform.LocalPosition = respawnPoint.GetComponent<Transform>().LocalPosition;
GameManager.Instance.RacoonCaught(); collider.GetCollisionShape(0).IsTrigger = false;
tranform.GlobalPosition = respawnPoint.GetComponent<Transform>().GlobalPosition;
if (pat && pat.item) GameManager.Instance.RacoonCaught();
{
if (holdItem)
{
holdItem = false;
Debug.Log("PLAYER RETURN");
pat.item.GetScript<Item>().returnBack = true;
}
if (isAiming)
{
isAiming = false;
cam.FOV = Settings.cameraFOV;
camArm.TargetOffset = pat.prevTargetOffSet;
camArm.ArmLength = pat.tpc.armLength;
}
}
} }
} }

View File

@ -0,0 +1,47 @@
using SHADE;
using SHADE_Scripting.Audio;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
public class DecorationAudio : Script
{
public string name = "REPLACETHIS";
public string audio = "event:/UI/botton_hover";
public bool loop = true;
public float timeDruation = 0.5f;
private float timer = 0.0f;
protected override void awake()
{
if (audio != "Empty")
{
AudioHandler.audioClipHandlers[name] = Audio.CreateAudioClip(audio);
Audio.AttachAudioClipToObject(AudioHandler.audioClipHandlers[name], GameObject.EntityId);
}
}
protected override void start()
{
if (loop)
AudioHandler.audioClipHandlers[name].Play();
}
protected override void update()
{
if (!loop)
{
timer += Time.DeltaTimeF;
if (timer > timeDruation)
{
timer = 0.0f;
AudioHandler.audioClipHandlers[name].Play();
}
}
}
}

View File

@ -0,0 +1,3 @@
Name: SC_DecorationAudio
ID: 166447267
Type: 9

View File

@ -10,12 +10,10 @@ public class GameManager : Script
public enum GameState public enum GameState
{ {
START, START,
WIN, OVER
LOSE
} }
public uint winScene = 92009475; public uint winScene = 92009475;
public uint loseScene = 91685359;
[NonSerialized] [NonSerialized]
public GameState currGameState; public GameState currGameState;
@ -27,9 +25,16 @@ public class GameManager : Script
public float timer; public float timer;
public GameObject scoreText; public GameObject scoreText;
public GameObject scoreTextBG;
public GameObject timeText; public GameObject timeText;
public GameObject minusTimerText; public GameObject minusTimerText;
public GameObject Results;
public int MaxComboAccquired { get; set; }
public int finalTime { get; set; }
public int finalScore { get; set; }
//mulitpler info //mulitpler info
public GameObject multiplierText; public GameObject multiplierText;
public float maxMultiplierDuration = 5.0f; public float maxMultiplierDuration = 5.0f;
@ -48,8 +53,9 @@ public class GameManager : Script
public bool itemShatter { get; set; } public bool itemShatter { get; set; }
//For scene transitions //For scene transitions
private bool goingToWin; private bool waitForTransition;
private bool goingToLose;
private bool playSpeedUp = false;
protected override void awake() protected override void awake()
{ {
@ -62,7 +68,7 @@ public class GameManager : Script
Score = 0; Score = 0;
currGameState = GameState.START; currGameState = GameState.START;
itemScored = false; itemScored = false;
currMultiplierCombo = 1; currMultiplierCombo = 0;
currMultiplierDuration = 0; currMultiplierDuration = 0;
itemShatter = false; itemShatter = false;
GamePause = false; GamePause = false;
@ -77,8 +83,7 @@ public class GameManager : Script
loseAudio.DestroyOnSceneExit = false; loseAudio.DestroyOnSceneExit = false;
AudioHandler.audioClipHandlers["BGMLose"] = loseAudio; AudioHandler.audioClipHandlers["BGMLose"] = loseAudio;
goingToWin = false; waitForTransition = false;
goingToLose = false;
if (scoreText) if (scoreText)
scoreText.GetComponent<TextRenderable>().Text = $"{Score}"; scoreText.GetComponent<TextRenderable>().Text = $"{Score}";
@ -91,6 +96,7 @@ public class GameManager : Script
AudioHandler.audioClipHandlers["SFXItemScore"] = Audio.CreateAudioClip("event:/Music/stingers/item_scored"); AudioHandler.audioClipHandlers["SFXItemScore"] = Audio.CreateAudioClip("event:/Music/stingers/item_scored");
AudioHandler.audioClipHandlers["RaccoonScored"] = Audio.CreateAudioClip("event:/Raccoon/raccoon_scored"); AudioHandler.audioClipHandlers["RaccoonScored"] = Audio.CreateAudioClip("event:/Raccoon/raccoon_scored");
Audio.SetParameterWithLabel("PlaybackSpeed", "Normal");
} }
protected override void start() protected override void start()
@ -103,16 +109,11 @@ 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();
if (SceneFadeInOut.Instance != null)
SceneFadeInOut.Instance.CallFadeOut();
GamePause = false; GamePause = false;
} }
protected override void update() protected override void update()
{ {
if (GamePause || !stealFoodPopUpDone) if (GamePause || !stealFoodPopUpDone)
{ {
return; return;
@ -123,10 +124,17 @@ public class GameManager : Script
if (currGameState == GameState.START) if (currGameState == GameState.START)
{ {
timer -= Time.DeltaTimeF; timer -= Time.DeltaTimeF;
if(scoreText)
if (timer < 30.0f && !playSpeedUp)
{
Audio.SetParameterWithLabel("PlaybackSpeed", "ToTransition");
playSpeedUp = true;
}
if (scoreText)
scoreText.GetComponent<TextRenderable>().Text = $"{Score}"; scoreText.GetComponent<TextRenderable>().Text = $"{Score}";
if(timeText) if (timeText)
timeText.GetComponent<TextRenderable>().Text = $"{timer.ToString("0.00")}"; timeText.GetComponent<TextRenderable>().Text = $"{timer.ToString("0")}";
if (itemScored) if (itemScored)
{ {
@ -135,90 +143,59 @@ public class GameManager : Script
if (currMultiplierDuration >= maxMultiplierDuration) if (currMultiplierDuration >= maxMultiplierDuration)
{ {
itemScored = false; itemScored = false;
currMultiplierCombo = 1; currMultiplierCombo = 0;
currMultiplierDuration = 0; currMultiplierDuration = 0;
} }
} }
if (!goingToLose && ((timer > 0 && totalItemCount <= 0 && !itemShatter))) if (timer <= 0 || (totalItemCount <= 0 && !itemShatter))
{ {
currGameState = GameState.WIN;
AudioHandler.StopAllSounds(false); AudioHandler.StopAllSounds(false);
AudioHandler.audioClipHandlers["BGMWin"].Play();
goingToWin = true; if (timer <= 0)
if (SceneFadeInOut.Instance != null) AudioHandler.audioClipHandlers["BGMLose"].Play();
SceneFadeInOut.Instance.CallFadeIn(); else if (totalItemCount <= 0)
} AudioHandler.audioClipHandlers["BGMWin"].Play();
else if(!goingToWin && (timer < 0))
{ currGameState = GameState.OVER;
currGameState = GameState.LOSE; finalTime = (int)timer;
AudioHandler.StopAllSounds(false); Results.SetActive(true);
AudioHandler.audioClipHandlers["BGMLose"].Play();
goingToLose = true; Input.SetMouseCentering(false);
if (SceneFadeInOut.Instance != null) Application.IsCursorVisible = true;
SceneFadeInOut.Instance.CallFadeIn(); GamePause = true;
Application.FixDeltaTime = 0;
AnimationSystem.TimeScale = 0;
} }
} }
//Handling transitions
if (SceneFadeInOut.Instance != null) if (SceneFadeInOut.Instance && SceneFadeInOut.Instance.FadeInFinished() && waitForTransition)
{ SceneManager.ChangeScene(winScene);
if (SceneFadeInOut.Instance.FadeInFinished())
{
if (goingToWin)
{
SceneManager.ChangeScene(winScene);
}
if (goingToLose)
{
SceneManager.ChangeScene(loseScene);
}
}
}
else
{
if (goingToWin)
{
SceneManager.ChangeScene(winScene);
}
if (goingToLose)
{
SceneManager.ChangeScene(loseScene);
}
}
} }
public void RacoonCaught() public void RacoonCaught()
{
timer -= 10.0f;
if (minusTimerText != GameObject.Null)
{ {
timer -= 10.0f; MinusTimerText text = minusTimerText.GetScript<MinusTimerText>();
if(minusTimerText != GameObject.Null) if (text)
{ {
MinusTimerText text =minusTimerText.GetScript<MinusTimerText>(); text.Reset();
if(text) }
{
text.Reset();
}
}
} }
}
private void Cheat() private void Cheat()
{ {
if (Input.GetKeyUp(Input.KeyCode.F1)) if (Input.GetKeyUp(Input.KeyCode.F1))
{ {
currGameState = GameState.WIN; currGameState = GameState.OVER;
AudioHandler.audioClipHandlers["BGMWin"].Play(); AudioHandler.audioClipHandlers["BGMWin"].Play();
AudioHandler.StopAllSounds(false); AudioHandler.StopAllSounds(false);
goingToWin = true; waitForTransition = true;
if (SceneFadeInOut.Instance != null)
SceneFadeInOut.Instance.CallFadeIn();
}
else if (Input.GetKeyUp(Input.KeyCode.F2))
{
currGameState = GameState.LOSE;
AudioHandler.audioClipHandlers["BGMLose"].Play();
AudioHandler.StopAllSounds(false);
goingToLose = true;
if (SceneFadeInOut.Instance != null) if (SceneFadeInOut.Instance != null)
SceneFadeInOut.Instance.CallFadeIn(); SceneFadeInOut.Instance.CallFadeIn();
} }
@ -245,23 +222,35 @@ public class GameManager : Script
currMultiplierDuration = 0; currMultiplierDuration = 0;
if (currMultiplierCombo < maxMultiplierCombo) if (currMultiplierCombo < maxMultiplierCombo)
{
currMultiplierCombo += 1; currMultiplierCombo += 1;
if (currMultiplierCombo > MaxComboAccquired)
MaxComboAccquired = currMultiplierCombo;
}
Audio.SetParameter("Multiplier", currMultiplierCombo); Audio.SetParameter("Multiplier", currMultiplierCombo);
AudioHandler.audioClipHandlers["SFXItemScore"].Play(); AudioHandler.audioClipHandlers["SFXItemScore"].Play();
AudioHandler.audioClipHandlers["RaccoonScored"].Play(); AudioHandler.audioClipHandlers["RaccoonScored"].Play();
MultiplierTextFx fx = multiplierText.GetScript<MultiplierTextFx>(); SingleScaleBounce textBounce = scoreText.GetScript<SingleScaleBounce>();
SingleScaleBounce textBGBounce = scoreTextBG.GetScript<SingleScaleBounce>();
/*
if (textBounce)
textBounce.ScaleBounceOnce();*/
if (textBGBounce)
textBGBounce.ScaleBounceOnce();
MultiplierTextFx fx = multiplierText.GetScript<MultiplierTextFx>();
if (fx) if (fx)
{ {
fx.ShowMultiplier(currMultiplierCombo, maxMultiplierDuration); fx.ShowMultiplier(currMultiplierCombo, maxMultiplierDuration);
} }
SingleScaleBounce sb = scoreText.GetScript<SingleScaleBounce>();
if(sb)
{
sb.ScaleBounceOnce();
}
} }

View File

@ -9,6 +9,7 @@ namespace SHADE_Scripting.UI
public class PreviewLevel : Script public class PreviewLevel : Script
{ {
private List<Camera> listOfCamera; private List<Camera> listOfCamera;
public GameObject levelTransistion;
public Vector3 endPoint1; public Vector3 endPoint1;
public Vector3 endPoint2; public Vector3 endPoint2;
@ -56,7 +57,7 @@ namespace SHADE_Scripting.UI
protected override void update() protected override void update()
{ {
if (SceneFadeInOut.Instance && !SceneFadeInOut.Instance.FadeOutFinished() && !point1Done) if (SceneFadeInOut.Instance && !levelTransistion.GetScript<LevelTransistion>().complete && !point1Done)
{ {
moveToEndPoint1.Reset(); moveToEndPoint1.Reset();
return; return;

View File

@ -22,7 +22,11 @@ public class ScoringZone : Script
{ {
if (GameManager.Instance && info.GameObject.GetScript<Item>() && info.GameObject.IsActiveSelf && !info.GameObject.GetComponent<Collider>().GetCollisionShape(0).IsTrigger ) if (GameManager.Instance && info.GameObject.GetScript<Item>() && info.GameObject.IsActiveSelf && !info.GameObject.GetComponent<Collider>().GetCollisionShape(0).IsTrigger )
{ {
GameManager.Instance.Score += info.GameObject.GetScript<Item>().Score * GameManager.Instance.currMultiplierCombo; if (GameManager.Instance.currMultiplierCombo > 1)
GameManager.Instance.Score += info.GameObject.GetScript<Item>().Score * GameManager.Instance.currMultiplierCombo;
else
GameManager.Instance.Score += info.GameObject.GetScript<Item>().Score;
GameManager.Instance.ItemScored(); GameManager.Instance.ItemScored();
particle.EmissionCount = startingParticleCount * GameManager.Instance.currMultiplierCombo; particle.EmissionCount = startingParticleCount * GameManager.Instance.currMultiplierCombo;
particle.Emit(); particle.Emit();

View File

@ -1,18 +1,20 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
public enum EASING_METHOD public enum EASING_METHOD
{ {
EASE_IN_SINE, EASE_IN_SINE,
EASE_OUT_SINE, EASE_OUT_SINE,
EASE_OUT_BOUNCE, EASE_OUT_BOUNCE,
EASE_IN_BOUNCE, EASE_IN_BOUNCE,
EASE_INOUT_BOUNCE, EASE_INOUT_BOUNCE,
LINEAR EASE_OUT_CIRCLE,
} EASE_OUT_BACK,
LINEAR
}
public static class EasingHelper public static class EasingHelper
{ {
@ -47,11 +49,19 @@ public static class EasingHelper
} }
case EASING_METHOD.LINEAR: case EASING_METHOD.LINEAR:
{ {
return value; return value;
} }
case EASING_METHOD.EASE_OUT_CIRCLE:
{
return EaseOutCircle(value);
}
case EASING_METHOD.EASE_OUT_BACK:
{
return EaseOutBack(value);
}
default: default:
return 0.0f; return 0.0f;
} }
} }
@ -102,5 +112,18 @@ public static class EasingHelper
: (1.0f + EaseOutBounce(2.0f * value - 1.0f)) / 2.0f; : (1.0f + EaseOutBounce(2.0f * value - 1.0f)) / 2.0f;
} }
private static float EaseOutCircle(float value)
{
return (float)Math.Sqrt(1.0f - (float)Math.Pow(value - 1.0f, 2.0f));
}
private static float EaseOutBack(float value)
{
const float c1 = 1.70158f;
const float c3 = c1 + 1.0f;
return 1.0f + c3 * (float)Math.Pow(value - 1.0f, 3.0f) + c1 * (float)Math.Pow(value - 1.0f, 2.0f);
}
} }

View File

@ -54,7 +54,7 @@ namespace SHADE_Scripting.UI
protected override void start() protected override void start()
{ {
thread = TweenManager.CreateTweenThread(0.1f, 0.9f, 1.0f, EASING_METHOD.EASE_IN_SINE); thread = TweenManager.CreateTweenThread(0.1f, 0.9f, 1.0f, EASING_METHOD.EASE_OUT_BACK);
Transform transform = GetComponent<Transform>(); Transform transform = GetComponent<Transform>();

View File

@ -5,43 +5,43 @@ using SHADE_Scripting.UI;
public class ChangeSceneButton : Script public class ChangeSceneButton : Script
{ {
public uint sceneID = 0; public uint sceneID = 0;
//Whether the scene changing button has been clicked public GameObject levelTransistion;
private bool clickedFlag;
protected override void awake() private bool clickedFlag;
{
clickedFlag = false;
}
protected override void start() protected override void awake()
{
clickedFlag = false;
}
protected override void start()
{
UIElement ui = GetComponent<UIElement>();
if (ui != null)
{ {
UIElement ui = GetComponent<UIElement>(); ui.OnRelease.RegisterAction(() =>
if (ui != null) {
if (sceneID != 0)
{ {
ui.OnRelease.RegisterAction(() => Audio.PlaySFXOnce2D("event:/UI/success");
{ Audio.StopAllSounds();
if (sceneID != 0) clickedFlag = true;
{ levelTransistion.SetActive(true);
Audio.PlaySFXOnce2D("event:/UI/success");
Audio.StopAllSounds();
if (SceneFadeInOut.Instance != null)
SceneFadeInOut.Instance.CallFadeIn();
clickedFlag = true;
}
});
}
else
{
Debug.LogError("Failed to register button action for ChangeSceneButton.");
} }
});
} }
protected override void update() else
{ {
if (clickedFlag && sceneID != 0 && SceneFadeInOut.Instance.FadeInFinished()) Debug.LogError("Failed to register button action for ChangeSceneButton.");
{
SceneManager.ChangeScene(sceneID);
}
} }
}
protected override void update()
{
if (levelTransistion.GetScript<LevelTransistion>().complete && clickedFlag)
{
SceneManager.ChangeScene(sceneID);
}
}
} }

View File

@ -54,6 +54,9 @@ public class CutsceneEnd : Script
private bool cutscene4Done = false; private bool cutscene4Done = false;
private bool cutscene5Done = false; private bool cutscene5Done = false;
public GameObject levelTransition;
private bool waiting = false;
protected override void awake() protected override void awake()
{ {
initCutscene4(); initCutscene4();
@ -73,6 +76,9 @@ public class CutsceneEnd : Script
protected override void update() protected override void update()
{ {
if (!levelTransition.GetScript<LevelTransistion>().complete)
return;
Canvas4(); Canvas4();
Canvas5(); Canvas5();
@ -98,8 +104,12 @@ public class CutsceneEnd : Script
if (Input.GetKeyUp(Input.KeyCode.Space) && cutscene5Done && canvas5.IsActiveSelf) if (Input.GetKeyUp(Input.KeyCode.Space) && cutscene5Done && canvas5.IsActiveSelf)
{ {
SceneManager.ChangeScene(nextScene); levelTransition.GetScript<LevelTransistion>().resetToLeft();
waiting = true;
} }
if (levelTransition.GetScript<LevelTransistion>().complete && waiting)
SceneManager.ChangeScene(nextScene);
} }
private void Canvas4() private void Canvas4()

View File

@ -82,6 +82,9 @@ public class CutsceneIntro : Script
private bool cutscene2Done = false; private bool cutscene2Done = false;
private bool cutscene3Done = false; private bool cutscene3Done = false;
public GameObject levelTransition;
private bool waiting = false;
protected override void awake() protected override void awake()
{ {
initCutscene1(); initCutscene1();
@ -109,6 +112,9 @@ public class CutsceneIntro : Script
protected override void update() protected override void update()
{ {
if (!levelTransition.GetScript<LevelTransistion>().complete)
return;
Canvas1(); Canvas1();
Canvas2(); Canvas2();
Canvas3(); Canvas3();
@ -148,8 +154,12 @@ public class CutsceneIntro : Script
if (Input.GetKeyUp(Input.KeyCode.Space) && cutscene3Done && canvas3.IsActiveSelf) if (Input.GetKeyUp(Input.KeyCode.Space) && cutscene3Done && canvas3.IsActiveSelf)
{ {
SceneManager.ChangeScene(nextScene); levelTransition.GetScript<LevelTransistion>().resetToLeft();
waiting = true;
} }
if (levelTransition.GetScript<LevelTransistion>().complete && waiting)
SceneManager.ChangeScene(nextScene);
} }
private void Canvas1() private void Canvas1()

View File

@ -0,0 +1,57 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SHADE;
namespace SHADE_Scripting.UI
{
public class GameTimer: Script
{
private ScaleBounce scaleBounce;
private TextRenderable text;
public float criticalTime = 30;
public float timer;
protected override void awake()
{
text = GetComponent<TextRenderable>();
if(!text)
{
Debug.Log("GameTimer: No text renderable found");
}
scaleBounce = GetScript<ScaleBounce>();
if(!scaleBounce)
{
Debug.Log("GameTimer: No Scalebounce found in children");
}
else
{
scaleBounce.isActive = false;
}
}
protected override void update()
{
timer = GameManager.Instance.timer;
if (timer <= criticalTime)
{
scaleBounce.isActive = true;
text.TextColor = new Color(1.0f, 0.0f, 0.0f, 1.0f);
}
}
}
}

View File

@ -0,0 +1,3 @@
Name: SC_GameTimer
ID: 158823052
Type: 9

View File

@ -12,6 +12,7 @@ public class InverseCamera : Script
public bool inverseX = false; public bool inverseX = false;
public bool inverseY = false; public bool inverseY = false;
protected override void awake() protected override void awake()
{ {
UIElement ui = GetComponent<UIElement>(); UIElement ui = GetComponent<UIElement>();
@ -29,19 +30,17 @@ public class InverseCamera : Script
Debug.LogError("Failed to register Toggle action for inverse"); Debug.LogError("Failed to register Toggle action for inverse");
} }
} }
protected override void start() protected override void update()
{ {
UIElement ui = GetComponent<UIElement>(); UIElement ui = GetComponent<UIElement>();
if (ui) if (ui)
{ {
ui.OnClick.RegisterAction(() => Toggle toggle = ui.GetComponent<Toggle>();
{
Toggle toggle = ui.GetComponent<Toggle>(); if (inverseX)
if(inverseX) Settings.inverseX = toggle.GetValue();
Settings.inverseX = toggle.GetValue(); if (inverseY)
if(inverseY) Settings.inverseY = toggle.GetValue();
Settings.inverseY = toggle.GetValue();
});
} }
else else
{ {

View File

@ -0,0 +1,91 @@
using SHADE;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
public class LevelTransistion : Script
{
public GameObject logo;
public GameObject bg;
public float duration = 2.0f;
public float bgEndPositionX = 2500;
public float logoEndPositionX = 2500;
public bool rotAndScale = true;
public float rotationAmt = 360;
public float scaleAmt = 631;
public bool complete { get; set; }
private Transform logoTran;
private Transform bgTran;
private TweenThread bgTween;
private TweenThread logoTween;
private TweenThread rot;
private TweenThread scale;
protected override void awake()
{
logoTran = logo.GetComponent<Transform>();
if (!logoTran)
Debug.LogError("MISSING LOGO TRAN");
bgTran = bg.GetComponent<Transform>();
if (!bgTran)
Debug.LogError("MISSING BG TRAN");
complete = false;
}
protected override void start()
{
bgTween = TweenManager.CreateTweenThread(duration, bgTran.LocalPosition.x, bgEndPositionX, EASING_METHOD.EASE_OUT_CIRCLE);
logoTween = TweenManager.CreateTweenThread(duration , logoTran.LocalPosition.x, logoEndPositionX, EASING_METHOD.EASE_OUT_CIRCLE);
rot = TweenManager.CreateTweenThread(duration , 0, rotationAmt, EASING_METHOD.EASE_OUT_BACK);
scale = TweenManager.CreateTweenThread(duration, 0, scaleAmt, EASING_METHOD.EASE_OUT_BACK);
}
protected override void update()
{
if (bgTween != null)
bgTran.LocalPosition = new Vector3(bgTween.GetValue(), 0, bgTran.LocalPosition.z);
if (rotAndScale)
{
logoTran.LocalScale = new Vector3(scale.GetValue(), scale.GetValue(), 1);
logoTran.LocalEulerAngles = new Vector3(0, 0, SHADE.Math.DegreesToRadians(rot.GetValue()));
}
else
{
logoTran.LocalPosition = new Vector3(logoTween.GetValue(), 0, logoTran.LocalPosition.z);
}
if (bgTween.IsCompleted() && logoTween.IsCompleted())
complete = true;
}
public void resetToLeft()
{
logoTran.LocalEulerAngles = Vector3.Zero;
logoTran.LocalPosition = Vector3.Zero;
logoTran.LocalScale = Vector3.Zero;
bgTween.duration = 0.8f;
bgTween.Reset(-3000.0f,0.0f);
logoTween.duration = 0.8f;
logoTween.Reset();
rot.duration = 0.8f;
rot.Reset();
scale.duration = 0.8f;
scale.Reset();
complete = false;
rotAndScale = true;
}
}

View File

@ -0,0 +1,3 @@
Name: SC_LevelTransistion
ID: 158044875
Type: 9

View File

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

View File

@ -3,6 +3,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace SHADE_Scripting.UI namespace SHADE_Scripting.UI
@ -12,98 +13,70 @@ namespace SHADE_Scripting.UI
[NonSerialized] [NonSerialized]
private TweenThread sizeThread; private TweenThread sizeThread;
private TweenThread sizeInvertThread; private TweenThread sizeInvertThread;
private TweenThread alphaThread;
public float maxSize = 1.0f; public float maxSize = 1.0f;
public float minSize = 0.3f; public float minSize = 0.3f;
public float minAlpha = 0.3f;
private bool showMultiplier = false;
const float sizeUpDuration = 0.1f; const float sizeUpDuration = 0.1f;
[NonSerialized] [NonSerialized]
private Vector3 defaultScale; private Vector3 defaultScale;
private bool tweenUp = false;
protected override void start() protected override void start()
{ {
sizeThread = TweenManager.CreateTweenThread(0.0f, maxSize, minSize, EASING_METHOD.EASE_IN_SINE); sizeThread = TweenManager.CreateTweenThread(0.01f, maxSize, minSize, EASING_METHOD.EASE_IN_SINE);
sizeInvertThread = TweenManager.CreateTweenThread(sizeUpDuration, minSize, maxSize, 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);
Transform transform = GetComponent<Transform>(); Transform transform = GetComponent<Transform>();
if (transform != null) if (transform != null)
{ {
defaultScale = transform.LocalScale; defaultScale = transform.LocalScale;
transform.LocalScale = Vector3.Zero; transform.LocalScale = Vector3.Zero;
} }
showMultiplier = false;
} }
protected override void update() protected override void update()
{
if (sizeThread == null || sizeInvertThread == null)
return;
Transform transform = GetComponent<Transform>();
GetComponent<TextRenderable>().Text = $"X {GameManager.Instance.currMultiplierCombo}";
if (transform != null)
{
if (tweenUp == false)
{ {
Transform transform = GetComponent<Transform>(); transform.LocalScale = defaultScale * sizeThread.GetValue();
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())
{
transform.LocalScale = Vector3.Zero;
showMultiplier = false;
}
else
{
transform.LocalScale = defaultScale * sizeThread.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);
}
}
}
} }
else
{
if (sizeInvertThread.IsCompleted())
{
tweenUp = false;
sizeThread.Reset();
}
transform.LocalScale = defaultScale * sizeInvertThread.GetValue();
}
}
}
public void ShowMultiplier(int multiplier, float duration) public void ShowMultiplier(int multiplier, float duration)
{ {
GetComponent<TextRenderable>().Text = $"X {multiplier}";
sizeThread.duration = duration + sizeUpDuration; sizeThread.duration = duration + sizeUpDuration;
alphaThread.duration = duration + sizeUpDuration;
sizeInvertThread.Reset(); sizeInvertThread.Reset();
sizeThread.Reset(); sizeThread.Reset();
alphaThread.Reset(); tweenUp = true;
showMultiplier = true;
} }

View File

@ -13,7 +13,6 @@ namespace SHADE_Scripting.UI
public GameObject sfxVolSlider; public GameObject sfxVolSlider;
public GameObject bgmVolSlider; public GameObject bgmVolSlider;
public GameObject fovSlider; public GameObject fovSlider;
public GameObject sensitivitySlider;
protected override void awake() protected override void awake()
{ {
@ -21,7 +20,6 @@ namespace SHADE_Scripting.UI
Slider sfx = sfxVolSlider.GetComponent<Slider>(); Slider sfx = sfxVolSlider.GetComponent<Slider>();
Slider bgm = bgmVolSlider.GetComponent<Slider>(); Slider bgm = bgmVolSlider.GetComponent<Slider>();
Slider fov = fovSlider.GetComponent<Slider>(); Slider fov = fovSlider.GetComponent<Slider>();
Slider sens = sensitivitySlider.GetComponent<Slider>();
if (mv != null) if (mv != null)
{ {
@ -42,12 +40,6 @@ namespace SHADE_Scripting.UI
fov.ScaledValue = Settings.cameraFOV; fov.ScaledValue = Settings.cameraFOV;
} }
if (sens != null)
{
sens.ScaledValue = Settings.cameraSensitivity;
}
} }
@ -58,7 +50,6 @@ namespace SHADE_Scripting.UI
Slider sfx = sfxVolSlider.GetComponent<Slider>(); Slider sfx = sfxVolSlider.GetComponent<Slider>();
Slider bgm = bgmVolSlider.GetComponent<Slider>(); Slider bgm = bgmVolSlider.GetComponent<Slider>();
Slider fov = fovSlider.GetComponent<Slider>(); Slider fov = fovSlider.GetComponent<Slider>();
Slider sens = sensitivitySlider.GetComponent<Slider>();
if (mv != null) if (mv != null)
{ {
@ -80,11 +71,6 @@ namespace SHADE_Scripting.UI
{ {
Settings.cameraFOV = fov.ScaledValue; Settings.cameraFOV = fov.ScaledValue;
} }
if (sens != null)
{
Settings.cameraSensitivity = sens.ScaledValue;
}
} }

View File

@ -0,0 +1,111 @@
using SHADE;
using SHADE_Scripting.UI;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
public class Results : Script
{
public GameObject score;
public GameObject timeLeft;
public GameObject maxCombo;
public GameObject finalScore;
public GameObject contiuneBtn;
public GameObject levelTransition;
public uint nextScene;
public float scoreTweenDur = 2.0f;
private TextRenderable scoreText;
private TextRenderable timeLeftText;
private TextRenderable maxComboText;
private TextRenderable finalScoreText;
private int scoreCount = 0;
private bool once = true;
[NonSerialized]
private TweenThread scoreTween;
private bool waitForTransition;
protected override void awake()
{
scoreText = score.GetComponent<TextRenderable>();
if (!scoreText)
Debug.LogError("MISSING SCORE TEXT");
timeLeftText = timeLeft.GetComponent<TextRenderable>();
if (!timeLeftText)
Debug.LogError("MISSING TIME LEFT TEXT");
maxComboText = maxCombo.GetComponent<TextRenderable>();
if (!maxComboText)
Debug.LogError("MISSING MAX COMBO TEXT");
finalScoreText = finalScore.GetComponent<TextRenderable>();
if (!finalScoreText)
Debug.LogError("MISSING FINAL SCORE TEXT");
if (!contiuneBtn)
Debug.LogError("MISSING CONTIUNE BTN");
else
contiuneBtn.SetActive(false);
waitForTransition = false;
}
protected override void start()
{
scoreCount = GameManager.Instance.Score + (GameManager.Instance.finalTime * 100);
if(scoreText)
scoreText.Text = $"{GameManager.Instance.Score}";
if (timeLeftText)
timeLeftText.Text = $"{GameManager.Instance.finalTime}s";
if (maxComboText)
maxComboText.Text = $"X{GameManager.Instance.MaxComboAccquired}";
if (finalScoreText)
finalScoreText.Text = $"{scoreCount}";
UIElement contiune = contiuneBtn.GetComponent<UIElement>();
if (contiune != null)
{
contiune.OnRelease.RegisterAction(() =>
{
levelTransition.GetScript<LevelTransistion>().resetToLeft();
waitForTransition = true;
GameManager.Instance.GamePause = false;
Application.FixDeltaTime = Time.DefaultFixDeltaTime;
AnimationSystem.TimeScale = AnimationSystem.DefaultTimeScale;
});
}
else
{
Debug.LogError("Failed to register contiune button.");
}
scoreTween = TweenManager.CreateTweenThread(scoreTweenDur, 0, scoreCount, EASING_METHOD.EASE_IN_SINE);
}
protected override void update()
{
if (levelTransition.GetScript<LevelTransistion>().complete && waitForTransition)
{
Audio.StopAllSounds();
SceneManager.ChangeScene(nextScene);
}
if (finalScoreText && !scoreTween.IsCompleted())
finalScoreText.Text = $"{(int)scoreTween.GetValue()}";
else if(scoreTween.IsCompleted() && once)
{
contiuneBtn.SetActive(true);
finalScoreText.Text = $"{scoreCount}";
once = false;
}
}
}

View File

@ -0,0 +1,3 @@
Name: SC_Results
ID: 154482040
Type: 9

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;
@ -7,41 +7,55 @@ using System.Threading.Tasks;
namespace SHADE_Scripting.UI namespace SHADE_Scripting.UI
{ {
public class ScaleBounce:Script public class ScaleBounce : Script
{
[NonSerialized]
private TweenThread thread;
public float minScale = 1.0f;
public float maxScale = 1.2f;
public float duration = 1.0f;
private Vector3 defaultScale;
public bool isActive = false;
private bool lastActive = false;
protected override void start()
{ {
[NonSerialized] thread = TweenManager.CreateTweenThread(duration, minScale, maxScale, EASING_METHOD.EASE_IN_SINE);
private TweenThread thread; Transform trans = GetComponent<Transform>();
if (trans != null)
public float minScale = 1.0f; {
public float maxScale = 1.2f; defaultScale = trans.LocalScale;
public float duration = 1.0f; }
private Vector3 defaultScale;
protected override void start()
{
thread = TweenManager.CreateTweenThread(duration, minScale, maxScale, EASING_METHOD.EASE_IN_SINE);
Transform trans = GetComponent<Transform>();
if(trans != null)
{
defaultScale = trans.LocalScale;
}
}
protected override void update()
{
Transform trans = GetComponent<Transform>();
if(trans != null)
{
trans.LocalScale = defaultScale * thread.GetValue();
}
if(thread.IsCompleted())
{
thread.ResetInvert();
}
}
} }
protected override void update()
{
if (thread == null)
return;
if (isActive != lastActive && isActive == true)
{
thread.Reset();
}
lastActive = isActive;
Transform trans = GetComponent<Transform>();
if (trans != null && isActive)
{
trans.LocalScale = defaultScale * thread.GetValue();
}
if (thread.IsCompleted())
{
thread.ResetInvert();
}
}
}
} }

View File

@ -7,44 +7,43 @@ using System.Threading.Tasks;
namespace SHADE_Scripting.UI namespace SHADE_Scripting.UI
{ {
public class ScrollingCredits: Script public class ScrollingCredits : Script
{
public float endY = 4000.0f;
public float duration = 30.0f;
public GameObject levelTransition;
[NonSerialized]
TweenThread thread;
protected override void awake()
{
base.awake();
}
protected override void start()
{ {
public float endY = 4000.0f; Transform transform = GetComponent<Transform>();
public float duration = 30.0f; if (transform != null)
{
thread = TweenManager.CreateTweenThread(duration, transform.LocalPosition.y, endY, EASING_METHOD.LINEAR);
[NonSerialized] thread.SetResetOnInactive(GameObject);
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.LINEAR);
thread.SetResetOnInactive(GameObject);
}
}
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);
}
}
} }
protected override void update()
{
Transform transform = GetComponent<Transform>();
if (thread != null && transform != null)
{
transform.LocalPosition = new Vector3(transform.LocalPosition.x, thread.GetValue(), transform.LocalPosition.z);
}
}
}
} }

View File

@ -7,67 +7,73 @@ using System.Threading.Tasks;
namespace SHADE_Scripting.UI namespace SHADE_Scripting.UI
{ {
public class SingleScaleBounce: Script public class SingleScaleBounce : Script
{
[NonSerialized]
TweenThread thread;
[NonSerialized]
Vector3 defaultScale;
public float durationUp = 0.15f;
public float durationDown = 0.3f;
public float scaleSize = 1.2f;
[NonSerialized]
private bool scaleUp = false;
private Transform trans;
protected override void awake()
{ {
[NonSerialized] trans = GetComponent<Transform>();
TweenThread thread; if (trans != null)
{
[NonSerialized] defaultScale = trans.LocalScale;
Vector3 defaultScale; }
public float durationUp = 0.15f;
public float durationDown = 0.3f;
public float scaleSize = 1.2f;
[NonSerialized]
private bool scaleUp = false;
protected override void awake()
{
Transform trans = GetComponent<Transform>();
if(trans != null)
{
defaultScale = trans.LocalScale;
}
}
protected override void start()
{
thread = TweenManager.CreateTweenThread(0.0f,1.0f,1.0f,EASING_METHOD.EASE_IN_SINE);
}
protected override void update()
{
if(scaleUp)
{
if(thread.IsCompleted())
{
scaleUp = false;
thread.duration = durationDown;
thread.ResetInvert();
}
}
Transform trans = GetComponent<Transform>();
if(trans != null)
{
trans.LocalScale = defaultScale * thread.GetValue();
}
}
public void ScaleBounceOnce()
{
scaleUp = true;
thread.duration = durationUp;
thread.Reset(1.0f, scaleSize);
}
} }
protected override void start()
{
thread = TweenManager.CreateTweenThread(0.0f, 1.0f, 1.0f, EASING_METHOD.LINEAR);
}
protected override void update()
{
if (scaleUp)
{
if (thread != null && thread.IsCompleted())
{
scaleUp = false;
thread.duration = durationDown;
thread.method = EASING_METHOD.LINEAR;
thread.ResetInvert();
}
}
if (trans && thread != null)
trans.LocalScale = defaultScale * thread.GetValue();
}
public void ScaleBounceOnce()
{
scaleUp = true;
if (thread != null)
{
thread.duration = durationUp;
thread.Reset(1.0f, scaleSize);
thread.method = EASING_METHOD.EASE_OUT_BACK;
}
else
{
Debug.Log("Single Scale Bounce: thread is null");
}
}
}
} }

View File

@ -0,0 +1,70 @@
using SHADE;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SHADE_Scripting.UI
{
public class SliderFX : Script
{
public string onClickSound = "event:/UI/button_success";
public string onReleaseSound = "event:/UI/button_fail";
[NonSerialized]
private AudioClipHandler onClickACHandler;
[NonSerialized]
private AudioClipHandler onReleaseACHandler;
protected override void awake()
{
if (onClickSound != "Empty")
onClickACHandler = SHADE.Audio.CreateAudioClip(onClickSound);
if (onReleaseSound != "Empty")
onReleaseACHandler = SHADE.Audio.CreateAudioClip(onReleaseSound);
}
protected override void start()
{
Transform transform = GetComponent<Transform>();
if (transform == null)
return;
UIElement ui = GetComponent<UIElement>();
if (ui == null)
return;
ui.OnClick.RegisterAction(() =>
{
if (onClickSound != "Empty")
onClickACHandler.Play();
});
ui.OnRelease.RegisterAction(() =>
{
if (onReleaseSound != "Empty")
onReleaseACHandler.Play();
});
}
protected override void update()
{
}
}
}

View File

@ -0,0 +1,3 @@
Name: SC_SliderFX
ID: 157251414
Type: 9

View File

@ -35,9 +35,9 @@ public class StealFoodPopUp : Script
protected override void start() protected override void start()
{ {
rot = TweenManager.CreateTweenThread(popInDuration, 0, rotationAmt, EASING_METHOD.EASE_IN_SINE); rot = TweenManager.CreateTweenThread(popInDuration * 0.4f, 0, rotationAmt, EASING_METHOD.LINEAR);
scaleX = TweenManager.CreateTweenThread(popInDuration, 0, scaleAmtX, EASING_METHOD.EASE_IN_SINE); scaleX = TweenManager.CreateTweenThread(popInDuration, 0, scaleAmtX, EASING_METHOD.EASE_OUT_BACK);
scaleY = TweenManager.CreateTweenThread(popInDuration, 0, scaleAmtY, EASING_METHOD.EASE_IN_SINE); scaleY = TweenManager.CreateTweenThread(popInDuration, 0, scaleAmtY, EASING_METHOD.EASE_OUT_BACK);
tran = GetComponent<Transform>(); tran = GetComponent<Transform>();
if (!tran) if (!tran)

View File

@ -0,0 +1,44 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SHADE;
namespace SHADE_Scripting.UI
{
public class TransitToMainMenu: Script
{
public float timeToTransit = 0.0f;
public uint sceneToChange = 0;
private float timer = 0.0f;
private bool sceneChanged = false;
protected override void start()
{
timer = timeToTransit;
sceneChanged = false;
}
protected override void update()
{
timer -= Time.DeltaTimeF;
if(timer <= 0.0f && sceneChanged == false)
{
SceneManager.ChangeScene(sceneToChange);
sceneChanged = true;
}
if(Input.GetKeyDown(Input.KeyCode.Space))
{
timer = 0.0f;
}
}
}
}

View File

@ -0,0 +1,3 @@
Name: TransitToMainMenu
ID: 159865134
Type: 9

Binary file not shown.

View File

@ -14,6 +14,8 @@ struct EmitterParameters
float rotationDecay; float rotationDecay;
vec4 lifeAndSizeRange; // min life, max life, min size, max size vec4 lifeAndSizeRange; // min life, max life, min size, max size
vec4 colorTint; vec4 colorTint;
vec4 colorTintRange;
vec4 colorDecay;
float sizeDecay; float sizeDecay;
uint textureIndex; uint textureIndex;
float padding[2]; float padding[2];
@ -27,6 +29,7 @@ struct ParticleData
vec4 acceleration; vec4 acceleration;
vec4 scaleAndDecay; vec4 scaleAndDecay;
vec4 colorTint; vec4 colorTint;
vec4 colorDecay;
float life; float life;
uint textureIndex; uint textureIndex;
}; };
@ -175,9 +178,18 @@ void main()
particle.scaleAndDecay.y = particleSize; particle.scaleAndDecay.y = particleSize;
particle.scaleAndDecay.z = emitterParams.data.sizeDecay; particle.scaleAndDecay.z = emitterParams.data.sizeDecay;
particle.scaleAndDecay.w = emitterParams.data.sizeDecay; particle.scaleAndDecay.w = emitterParams.data.sizeDecay;
particle.colorDecay = emitterParams.data.colorDecay;
float randRange = rand(seed) * 2.0f - 1.0f;
// Set particle color tint // Set particle color tint
particle.colorTint = emitterParams.data.colorTint; particle.colorTint = emitterParams.data.colorTint + vec4 (randRange * emitterParams.data.colorTintRange.x,
randRange * emitterParams.data.colorTintRange.y,
randRange * emitterParams.data.colorTintRange.z,
randRange * emitterParams.data.colorTintRange.w);
// particle.colorTint = emitterParams.data.colorTint;
// Set the texture for the particle // Set the texture for the particle
particle.textureIndex = emitterParams.data.textureIndex; particle.textureIndex = emitterParams.data.textureIndex;

View File

@ -0,0 +1,27 @@
#version 460 core
#extension GL_EXT_nonuniform_qualifier : require
layout (location = 0) out vec4 fragColor;
layout (set = 0, binding = 1) uniform sampler2D textures[]; // for textures (global)
// between shader stages
layout(location = 0) in struct
{
vec2 uv; // location = 0
} In;
// material stuff
layout(location = 1) flat in struct
{
uint textureIndex;
vec4 color;
} InFlat;
void main ()
{
fragColor = vec4 (texture(textures [nonuniformEXT(InFlat.textureIndex)], In.uv)) * InFlat.color;
if (fragColor.a < 0.01f)
discard;
}

Binary file not shown.

View File

@ -0,0 +1,3 @@
Name: ParticleRounded_FS
ID: 42315398
Type: 2

View File

@ -0,0 +1,107 @@
#version 460 core
struct GenericData
{
//! Delta time
float dt;
//! Elapsed time of the application
float elapsedTime;
//! Viewport width of the scene (excluding imgui, that means smaller than window)
uint viewportWidth;
//! Ditto but for height
uint viewportHeight;
};
struct ParticleData
{
vec4 position;
vec4 orientationSpeedDecay;
vec4 velocity;
vec4 acceleration;
vec4 scaleAndDecay;
vec4 colorTint;
vec4 colorDecay;
float life;
uint textureIndex;
};
layout (set = 0, binding = 0) uniform GenericDataBuffer
{
GenericData data;
} genericDataBuffer;
layout(set = 1, binding = 0) uniform CameraData
{
vec4 position;
mat4 vpMat;
mat4 viewMat;
mat4 projMat;
} cameraData;
// output buffer not needed
layout (std430, set = 2, binding = 2) coherent restrict buffer ParticlesOutputBuffer
{
ParticleData data[];
} outputParticles;
layout (std430, set = 2, binding = 4) coherent restrict buffer IndicesData
{
uint indices[];
};
// between shader stages
layout(location = 0) out struct
{
vec2 uv; // location = 0
} Out;
// material stuff
layout(location = 1) out struct
{
uint textureIndex; // location = 1
vec4 color; // location = 2
} OutFlat;
vec2 CreateQuad (in uint vertexID)
{
uint b = 1 << vertexID;
return vec2 ((0x3 & b) != 0, (0x9 & b) != 0);
}
void main()
{
// Create a quad and its texture coordinates
Out.uv = CreateQuad (gl_VertexIndex);
vec3 vertexPos = vec3 (Out.uv - vec2(0.5f), 0.0f);
vertexPos.y *= 0.5f;
ParticleData particle = outputParticles.data[indices[gl_InstanceIndex]];
vec3 normalized = normalize (vec3 (particle.velocity.xyz));
float pitch = acos (dot (normalized.xyz, normalize (vec3 (normalized.x, 0.0f, normalized.z))));
float angle = pitch;
// float angle = atan (normalized.y, normalized.x);
vec2 particleScaleData = particle.scaleAndDecay.xy; // x and y
mat3 rotate = mat3 (1.0f);
rotate[0][0] = cos(angle);
rotate[0][1] = sin(angle);
rotate[1][0] = -sin(angle);
rotate[1][1] = cos(angle);
vec3 particlePos = rotate * vertexPos;
vec3 viewRight = normalize (vec3 (cameraData.viewMat[0][0], cameraData.viewMat[1][0], cameraData.viewMat[2][0]));
vec3 viewUp = normalize(vec3 (cameraData.viewMat[0][1], cameraData.viewMat[1][1], cameraData.viewMat[2][1]));
particlePos = particle.position.xyz + (viewRight * particlePos.x * particleScaleData.x) + (viewUp * particlePos.y * particleScaleData.y);
OutFlat.textureIndex = particle.textureIndex;
OutFlat.color = particle.colorTint;
gl_Position = cameraData.vpMat * vec4(particlePos, 1.0f);
}

Binary file not shown.

View File

@ -0,0 +1,3 @@
Name: ParticleRounded_VS
ID: 44202416
Type: 2

View File

@ -18,6 +18,7 @@ struct ParticleData
vec4 acceleration; vec4 acceleration;
vec4 scaleAndDecay; vec4 scaleAndDecay;
vec4 colorTint; vec4 colorTint;
vec4 colorDecay;
float life; float life;
uint textureIndex; uint textureIndex;
}; };

View File

@ -17,6 +17,8 @@ struct ParticleData
vec4 velocity; vec4 velocity;
vec4 acceleration; vec4 acceleration;
vec4 scaleAndDecay; vec4 scaleAndDecay;
vec4 colorTint;
vec4 colorDecay;
float life; float life;
uint textureIndex; uint textureIndex;
}; };

Some files were not shown because too many files have changed in this diff Show More