Compare commits

...

124 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
XiaoQiDigipen c28e874626
Merge pull request #440 from SHADE-DP/PlayerController
Scene changes and bug fixes
2023-03-25 02:44:16 +08:00
Glence 98d9683995 dont ask me 2023-03-25 02:38:56 +08:00
Glence 4f44435823 Merge branch 'main' into PlayerController 2023-03-25 00:17:10 +08:00
Glence 6ce807b878 added upwards force on jumpPad 2023-03-24 21:28:33 +08:00
Glence 33ba73c298 particle bug fix 2023-03-24 20:58:22 +08:00
Glence ff6a49e0a7 dont ask me 2023-03-24 20:30:01 +08:00
XiaoQiDigipen 0b5f602a0e
Merge pull request #439 from SHADE-DP/Navigation
Saved Navigation Data as Asset and load on scene load
2023-03-24 18:05:55 +08:00
maverickdgg af77bd4812 Saved Nav Data 2023-03-24 18:04:44 +08:00
maverickdgg 38d3040a04 Merge remote-tracking branch 'origin/NavData' into Navigation 2023-03-24 16:47:09 +08:00
maverickdgg 2382f11628 Merge branch 'main' into Navigation 2023-03-24 16:34:22 +08:00
maverickdgg 86593fd602 Merge branch 'Navigation' of https://github.com/SHADE-DP/SHADE_Y3 into Navigation 2023-03-24 16:34:14 +08:00
maverickdgg 4f7d1850af Added editor window for generating nav data 2023-03-24 16:33:45 +08:00
XiaoQiDigipen 346f2b2fac
Merge pull request #438 from SHADE-DP/Navigation
Added Navigation System. Added basic AI FSM
2023-03-24 16:11:13 +08:00
XiaoQiDigipen 0892322049
Merge branch 'main' into Navigation 2023-03-24 16:10:58 +08:00
XiaoQiDigipen 6d1b793831
Merge pull request #437 from SHADE-DP/PlayerController
Added particle and bug fixes
2023-03-24 16:09:43 +08:00
maverickdgg 78d30cb051 fix rotation 2023-03-24 16:06:35 +08:00
maverickdgg b32dba0694 basic FSM 2023-03-24 13:26:18 +08:00
maverickdgg 9dd180c1e6 Fix for when end point is unreachable. Find closest reachable point 2023-03-24 07:41:05 +08:00
maverickdgg a785a972e4 Navigation Fix 2023-03-24 04:22:51 +08:00
Glence 01cbba1f1f added item score multiplier 2023-03-23 18:20:42 +08:00
Glence 64bbc4d67a scenes update, setActive message removed, expose Emitcount 2023-03-23 16:49:41 +08:00
Glence 5cd0de1960 Merge branch 'main' into PlayerController 2023-03-23 00:38:31 +08:00
Glence 6ddc5c35cb did left and right foot smoke 2023-03-23 00:38:25 +08:00
maverickdgg 267793e3cc Merge branch 'main' into Navigation 2023-03-22 23:27:32 +08:00
maverickdgg 38d7e49976 WIP 2023-03-22 23:27:30 +08:00
Brandon Mak f4d361e1e9 Particle bug fix and raccoon dust particle fix 2023-03-22 22:52:43 +08:00
XiaoQiDigipen 744e66eeb6
Merge pull request #436 from SHADE-DP/SP3-2-Physics
Fixed consistency of Trajectories with different time steps
2023-03-22 22:33:23 +08:00
Glence 364da8ea85 added ceiling fan and new AI model, WIP for player particles 2023-03-22 21:31:40 +08:00
maverickdgg 2724c58efb Merge branch 'main' into Navigation 2023-03-22 19:17:03 +08:00
Glence 179740f4bf updated scene and added traj 2023-03-21 17:55:19 +08:00
Xiao Qi 6527634839 Fixed nav data load bug 2023-03-20 16:28:08 +08:00
Xiao Qi 85a92ce871 New nav data asset type recognition
Binary write/load for nav data
2023-03-20 16:03:47 +08:00
maverickdgg 07a702c972 initial 2023-03-20 12:17:24 +08:00
283 changed files with 28809 additions and 2976 deletions

View File

@ -14,13 +14,13 @@ Type: 13
Name: Walk
ID: 229189609
Type: 13
Name: Alerted by Racoon
Name: Alerted_by_Racoon
ID: 227890696
Type: 13
Name: Alerted Idle
Name: Alerted_Idle
ID: 234046577
Type: 13
Name: Alerted Run
Name: Alerted_Run
ID: 230172366
Type: 13
Name: Interact
@ -47,21 +47,21 @@ Type: 13
Name: StunEndBack
ID: 226668516
Type: 13
Name: React to Broken Stuff
Name: React_to_Broken_Stuff
ID: 228323560
Type: 13
Name: Pickup Item
Name: Pickup_Item
ID: 227002263
Type: 13
Name: Return Item
Name: Return_Item
ID: 222655168
Type: 13
Name: Attack Windup
Name: Attack_Windup
ID: 223078653
Type: 13
Name: Attack Hold
Name: Attack_Hold
ID: 228250554
Type: 13
Name: Attack Sequence
Name: Attack_Sequence
ID: 226129627
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,14 +1,14 @@
0 StaticObject 1100000000000000
1 Player 1100000000000000
0 StaticObject 1101000000000000
1 Furniture 1101000000000000
2 Food 1000000000000000
3 Breakable 1100000000000000
4 ScoringWallCollider 0110000000000000
5 Homeowner 1100000000000000
6 Camera 0010000000000000
7 StaticWithCameraCollision 1110000000000000
8 9 0000000000000000
9 10 0000000000000000
10 11 0000000000000000
7 StaticWithCameraCollision 1111000000000000
8 Floor 1100000000000000
9 Navigation 0001000000000000
10 Player 1100000000000000
11 12 0000000000000000
12 13 0000000000000000
13 14 0000000000000000

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -3,6 +3,6 @@
SubPass: UI
Properties:
data.color: {x: 1, y: 1, z: 1, w: 1}
data.textureIndex: 59379300
data.textureIndex: 55278388
data.alpha: 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
Properties:
data.color: {x: 1, y: 1, z: 1, w: 1}
data.textureIndex: 51995224
data.textureIndex: 50370514
data.alpha: 1
data.beta: {x: 1, y: 1, z: 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.

View File

@ -0,0 +1,7 @@
Name: MD_CeilingFan
ID: 73062062
Type: 4
Sub Assets:
Name: Sphere.005
ID: 135521751
Type: 8

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

Binary file not shown.

View File

@ -0,0 +1,3 @@
Name: Level2_AITest_NavData
ID: 254149790
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
Name: Canvas4
IsActive: true
@ -152,7 +153,7 @@
Scripts:
- Type: CutsceneEnd
Enabled: true
nextScene: 92009475
nextScene: 97376761
duration: 1
skipDuration: 0.100000001
cutscene4Points: 4
@ -161,6 +162,7 @@
cutscene5Pics: 15
canvas4: 1
canvas5: 14
levelTransition: 619
- EID: 4
Name: CutScene4Points
IsActive: true
@ -288,7 +290,7 @@
NumberOfChildren: 0
Components:
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}
Scale: {x: 50, y: 50, z: 50}
IsActive: true
@ -332,3 +334,72 @@
Scale: {x: 1, y: 1, z: 1}
IsActive: true
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
Name: Canvas1
IsActive: true
@ -164,6 +165,7 @@
canvas1: 1
canvas2: 13
canvas3: 24
levelTransition: 619
- EID: 4
Name: CutScene1Points
IsActive: true
@ -177,7 +179,7 @@
Components:
Transform Component:
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}
IsActive: true
Scripts: ~
@ -394,7 +396,7 @@
NumberOfChildren: 0
Components:
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}
Scale: {x: 982, y: 527, z: 1}
IsActive: true
@ -414,7 +416,7 @@
NumberOfChildren: 0
Components:
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}
Scale: {x: 625, y: 579, z: 1}
IsActive: true
@ -434,7 +436,7 @@
NumberOfChildren: 0
Components:
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}
Scale: {x: 529, y: 670, z: 1}
IsActive: true
@ -454,7 +456,7 @@
NumberOfChildren: 0
Components:
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}
Scale: {x: 1299, y: 575, z: 1}
IsActive: true
@ -474,7 +476,7 @@
NumberOfChildren: 0
Components:
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}
Scale: {x: 866, y: 483, z: 1}
IsActive: true
@ -494,7 +496,7 @@
NumberOfChildren: 0
Components:
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}
Scale: {x: 1920, y: 1080, z: 1}
IsActive: true
@ -514,7 +516,7 @@
NumberOfChildren: 0
Components:
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}
Scale: {x: 50, y: 50, z: 50}
IsActive: true
@ -542,7 +544,7 @@
NumberOfChildren: 0
Components:
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}
Scale: {x: 1, y: 1, z: 1}
IsActive: true
@ -553,7 +555,7 @@
NumberOfChildren: 0
Components:
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}
Scale: {x: 1, y: 1, z: 1}
IsActive: true
@ -564,7 +566,7 @@
NumberOfChildren: 0
Components:
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}
Scale: {x: 1, y: 1, z: 1}
IsActive: true
@ -575,7 +577,7 @@
NumberOfChildren: 0
Components:
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}
Scale: {x: 1, y: 1, z: 1}
IsActive: true
@ -586,8 +588,77 @@
NumberOfChildren: 0
Components:
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}
Scale: {x: 1, y: 1, z: 1}
IsActive: true
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

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,3 @@
Name: Level2_AITest
ID: 86300248
Type: 5

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,4 @@
- NavData: 0
- EID: 0
Name: Main Menu Canvas
IsActive: true
@ -37,7 +38,7 @@
Transform Component:
Translate: {x: 0, y: 100, z: 0.300000012}
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
Renderable Component:
Mesh: 141771688
@ -54,6 +55,7 @@
minScale: 1
maxScale: 1.20000005
duration: 1.5
isActive: true
- EID: 54
Name: Main Menu Button Group
IsActive: true
@ -257,7 +259,7 @@
Transform Component:
Translate: {x: 450, y: 0, z: 0.400000006}
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
Renderable Component:
Mesh: 141771688
@ -530,7 +532,6 @@
Scripts:
- Type: SHADE_Scripting.UI.FadeInOnActive
Enabled: true
alpha: 0
- EID: 19
Name: Options Canvas
IsActive: false
@ -541,7 +542,13 @@
Canvas Height: 1080
Scale by canvas width: false
IsActive: false
Scripts: ~
Scripts:
- Type: SHADE_Scripting.UI.Options
Enabled: true
masterVolSlider: 29
sfxVolSlider: 30
bgmVolSlider: 31
fovSlider: 37
- EID: 20
Name: BackGround
IsActive: true
@ -743,16 +750,16 @@
- EID: 29
Name: Master Volume Slider
IsActive: true
NumberOfChildren: 0
NumberOfChildren: 1
Components:
Transform Component:
Translate: {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
Renderable Component:
Mesh: 141771688
Material: 128676209
Material: 127128823
IsActive: true
Slider Component:
Slider Value: 1
@ -764,20 +771,44 @@
Hovered: false
Clicked: false
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: ~
- EID: 30
Name: SFX Volume Slider
IsActive: true
NumberOfChildren: 0
NumberOfChildren: 1
Components:
Transform Component:
Translate: {x: 0, y: -100, 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
Renderable Component:
Mesh: 141771688
Material: 128676209
Material: 122820018
IsActive: true
Slider Component:
Slider Value: 1
@ -789,20 +820,44 @@
Hovered: false
Clicked: false
IsActive: true
Scripts: ~
- EID: 31
Name: BGM Volume Slider
Scripts:
- Type: SHADE_Scripting.UI.SliderFX
Enabled: true
onClickSound: event:/UI/button_success
onReleaseSound: event:/UI/button_fail
- EID: 436
Name: Slider BG
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 0, y: -200, z: 0}
Translate: {x: 0, y: 0, z: 0.100000001}
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
Renderable Component:
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
Slider Component:
Slider Value: 1
@ -814,6 +869,30 @@
Hovered: false
Clicked: false
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: ~
- EID: 32
Name: Camera Title Text
@ -840,7 +919,7 @@
- EID: 33
Name: Camera Text Group
IsActive: true
NumberOfChildren: 4
NumberOfChildren: 3
Components:
Transform Component:
Translate: {x: -900, y: -220, z: 0}
@ -875,76 +954,54 @@
Clicked: false
IsActive: true
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
Name: Camera Invert X Text
IsActive: false
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 0, y: -200, z: 0.100000001}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 75, y: 75, z: 1}
IsActive: false
IsActive: true
Text Renderer Component:
Text: "Camera Invert X:"
Font: 174412429
Color: {x: 0, y: 0, z: 0, w: 1}
Text Size: {x: 1, y: 1, z: 1}
IsActive: false
IsActive: true
UI Component:
Canvas ID: 19
Hovered: false
Clicked: false
IsActive: false
IsActive: true
Scripts: ~
- EID: 447
Name: Camera Invert Y Text
IsActive: false
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 800, y: -200, z: 0.100000001}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 75, y: 75, z: 1}
IsActive: false
IsActive: true
Text Renderer Component:
Text: "Y:"
Font: 174412429
Color: {x: 0, y: 0, z: 0, w: 1}
Text Size: {x: 1, y: 1, z: 1}
IsActive: false
IsActive: true
UI Component:
Canvas ID: 19
Hovered: false
Clicked: false
IsActive: false
IsActive: true
Scripts: ~
- EID: 36
Name: Camera Slider Group
IsActive: true
NumberOfChildren: 4
NumberOfChildren: 3
Components:
Transform Component:
Translate: {x: 100, y: -200, z: 0}
@ -960,19 +1017,19 @@
- EID: 37
Name: FOV Slider
IsActive: true
NumberOfChildren: 0
NumberOfChildren: 1
Components:
Transform Component:
Translate: {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
Renderable Component:
Mesh: 141771688
Material: 128676209
Material: 117651669
IsActive: true
Slider Component:
Slider Value: 1
Slider Value: 0.889483869
Min Value: 30
Max Value: 120
IsActive: true
@ -981,25 +1038,24 @@
Hovered: false
Clicked: false
IsActive: true
Scripts: ~
- EID: 38
Name: Sensitivity Slider
Scripts:
- Type: SHADE_Scripting.UI.SliderFX
Enabled: true
onClickSound: event:/UI/button_success
onReleaseSound: event:/UI/button_fail
- EID: 434
Name: Slider BG
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 0, y: -100, z: 0}
Translate: {x: 0, y: 0, z: 0.100000001}
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
Renderable Component:
Mesh: 141771688
Material: 128676209
IsActive: true
Slider Component:
Slider Value: 1
Min Value: 0
Max Value: 100
Material: 117587364
IsActive: true
UI Component:
Canvas ID: 19
@ -1009,54 +1065,78 @@
Scripts: ~
- EID: 448
Name: Invert X Toggle Button
IsActive: false
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: -300, y: -200, z: 0}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 75, y: 75, z: 1}
IsActive: false
Scale: {x: 150, y: 150, z: 1}
IsActive: true
Renderable Component:
Mesh: 141771688
Material: 129340704
IsActive: false
IsActive: true
Toggle Button Component:
Non Toggled Texture: 55358401
Toggled Texture: 52333376
Non Toggled Texture: 50439604
Toggled Texture: 64389107
Value: false
IsActive: false
IsActive: true
UI Component:
Canvas ID: 19
Hovered: false
Clicked: false
IsActive: false
Scripts: ~
IsActive: true
Scripts:
- Type: InverseCamera
Enabled: true
inverseX: true
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
Name: Invert Y Toggle Button
IsActive: false
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: -50, y: -200, z: 0}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 75, y: 75, z: 1}
IsActive: false
Scale: {x: 150, y: 150, z: 1}
IsActive: true
Renderable Component:
Mesh: 141771688
Material: 129340704
IsActive: false
IsActive: true
Toggle Button Component:
Non Toggled Texture: 55358401
Toggled Texture: 52333376
Non Toggled Texture: 50439604
Toggled Texture: 64389107
Value: false
IsActive: false
IsActive: true
UI Component:
Canvas ID: 19
Hovered: false
Clicked: false
IsActive: false
Scripts: ~
IsActive: true
Scripts:
- Type: InverseCamera
Enabled: true
inverseX: false
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
Name: Audio Slider Text Group
IsActive: true
@ -1151,7 +1231,7 @@
- EID: 43
Name: Camera Slider Text Group
IsActive: true
NumberOfChildren: 2
NumberOfChildren: 1
Components:
Transform Component:
Translate: {x: 700, y: -225, z: -0.5}
@ -1175,7 +1255,7 @@
Scale: {x: 75, y: 75, z: 1}
IsActive: true
Text Renderer Component:
Text: 100
Text: 60
Font: 174412429
Color: {x: 0, y: 0, z: 0, w: 1}
Text Size: {x: 1, y: 1, z: 1}
@ -1189,31 +1269,6 @@
- Type: SHADE_Scripting.UI.SliderText
Enabled: true
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
Name: SubMenuBackGround
IsActive: true
@ -1236,7 +1291,6 @@
Scripts:
- Type: SHADE_Scripting.UI.FadeInOnActive
Enabled: true
alpha: 0
- EID: 46
Name: Credits Canvas
IsActive: false
@ -1387,7 +1441,7 @@
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: -800, y: 450, z: 0}
Translate: {x: -800, y: 450, z: 0.300000012}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 273, y: 100, z: 1}
IsActive: true
@ -1423,7 +1477,7 @@
NumberOfChildren: 0
Components:
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}
Scale: {x: 100, y: 100, z: 1}
IsActive: true
@ -1461,7 +1515,6 @@
Scripts:
- Type: SHADE_Scripting.UI.FadeInOnActive
Enabled: true
alpha: 0
- EID: 441
Name: Level Select Buttons
IsActive: true
@ -1484,18 +1537,18 @@
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: -600, y: 0, z: 0}
Translate: {x: -600, y: 0, z: 0.300000012}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 380, y: 879, z: 1}
Scale: {x: 345, y: 800, z: 1}
IsActive: true
Renderable Component:
Mesh: 141771688
Material: 129340704
IsActive: true
Button Component:
Default Texture: 52916516
Hovered Texture: 52916516
Clicked Texture: 52916516
Default Texture: 55897117
Hovered Texture: 56658801
Clicked Texture: 58281309
IsActive: true
UI Component:
Canvas ID: 50
@ -1506,24 +1559,33 @@
- Type: ChangeSceneButton
Enabled: true
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
Name: Level 2 Button
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 0, y: 0, z: 0}
Translate: {x: 0, y: 0, z: 0.300000012}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 380, y: 879, z: 1}
Scale: {x: 345, y: 800, z: 1}
IsActive: true
Renderable Component:
Mesh: 141771688
Material: 129340704
IsActive: true
Button Component:
Default Texture: 55380564
Hovered Texture: 55380564
Clicked Texture: 55380564
Default Texture: 52151774
Hovered Texture: 66730012
Clicked Texture: 59730316
IsActive: true
UI Component:
Canvas ID: 50
@ -1534,24 +1596,33 @@
- Type: ChangeSceneButton
Enabled: true
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
Name: Level 3 Button
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 600, y: 0, z: 0}
Translate: {x: 600, y: 0, z: 0.300000012}
Rotate: {x: 0, y: 0, z: 0}
Scale: {x: 380, y: 879, z: 1}
Scale: {x: 345, y: 800, z: 1}
IsActive: true
Renderable Component:
Mesh: 141771688
Material: 129340704
IsActive: true
Button Component:
Default Texture: 53392159
Hovered Texture: 53392159
Clicked Texture: 53392159
Default Texture: 51704639
Hovered Texture: 66852283
Clicked Texture: 53081657
IsActive: true
UI Component:
Canvas ID: 50
@ -1562,6 +1633,15 @@
- Type: ChangeSceneButton
Enabled: true
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
Name: TransitionCanvas
IsActive: true
@ -1595,6 +1675,67 @@
Scripts:
- Type: SHADE_Scripting.UI.SceneFadeInOut
Enabled: true
alphaValue: 1
alphaValue: 0
fadeInTime: 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

@ -0,0 +1,320 @@
- EID: 0
Name: Camera
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 0, y: 10.2736483, z: 0}
Rotate: {x: -1.48352981, y: 1.5, z: 0.5}
Scale: {x: 1, y: 1, z: 1}
IsActive: true
Scripts: ~
- EID: 1
Name: Floor
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 0, y: 0, z: 0}
Rotate: {x: -0, y: 0, z: -0}
Scale: {x: 12.8000002, y: 1, z: 12.8000002}
IsActive: true
Renderable Component:
Mesh: 142686872
Material: 126223465
IsActive: true
Scripts: ~
- EID: 2
Name: Light
IsActive: true
NumberOfChildren: 0
Components:
Light Component:
Position: {x: 0, y: 0, z: 0}
Type: Directional
Direction: {x: 0, y: -1, z: 1}
Color: {x: 1, y: 1, z: 1, w: 1}
Layer: 4294967295
Strength: 0
Casting Shadows: false
IsActive: true
Scripts: ~
- EID: 3
Name: Wall
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 11, y: 0, z: 0}
Rotate: {x: -0, y: 1.57079637, z: -0}
Scale: {x: 10.6225176, y: 1, z: 1}
IsActive: true
Renderable Component:
Mesh: 142652392
Material: 126223465
IsActive: true
Collider Component:
Colliders:
- Is Trigger: false
Collision Tag: 0
Type: Box
Half Extents: {x: 2.5, y: 1, z: 1.60000002}
Friction: 0.400000006
Bounciness: 0
Density: 1
Position Offset: {x: 0, y: 0, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0}
IsActive: true
Scripts: ~
- EID: 4
Name: Wall
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 0, y: 0, z: -11.2958097}
Rotate: {x: -0, y: 0, z: -0}
Scale: {x: 10.6225176, y: 1, z: 1}
IsActive: true
Renderable Component:
Mesh: 142652392
Material: 126223465
IsActive: true
Collider Component:
Colliders:
- Is Trigger: false
Collision Tag: 0
Type: Box
Half Extents: {x: 2.5, y: 1, z: 1.60000002}
Friction: 0.400000006
Bounciness: 0
Density: 1
Position Offset: {x: 0, y: 0, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0}
IsActive: true
Scripts: ~
- EID: 5
Name: Wall
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 0, y: 0, z: 11}
Rotate: {x: -0, y: 0, z: -0}
Scale: {x: 10.6225176, y: 1, z: 1}
IsActive: true
Renderable Component:
Mesh: 142652392
Material: 126223465
IsActive: true
Collider Component:
Colliders:
- Is Trigger: false
Collision Tag: 0
Type: Box
Half Extents: {x: 2.5, y: 1, z: 1.60000002}
Friction: 0.400000006
Bounciness: 0
Density: 1
Position Offset: {x: 0, y: 0, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0}
IsActive: true
Scripts: ~
- EID: 6
Name: Wall
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 6.06437206, y: 0, z: -5.60716629}
Rotate: {x: -0, y: 1.57079601, z: -0}
Scale: {x: 4.99989605, y: 1, z: 0.999986947}
IsActive: true
Renderable Component:
Mesh: 142652392
Material: 126223465
IsActive: true
Collider Component:
Colliders:
- Is Trigger: false
Collision Tag: 0
Type: Box
Half Extents: {x: 2.5, y: 1, z: 1.60000002}
Friction: 0.400000006
Bounciness: 0
Density: 1
Position Offset: {x: 0, y: 0, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0}
IsActive: true
Scripts: ~
- EID: 7
Name: Wall
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: -11, y: 0, z: 0}
Rotate: {x: -0, y: 1.57079637, z: -0}
Scale: {x: 10.6225176, y: 1, z: 1}
IsActive: true
Renderable Component:
Mesh: 142652392
Material: 126223465
IsActive: true
Collider Component:
Colliders:
- Is Trigger: false
Collision Tag: 0
Type: Box
Half Extents: {x: 2.5, y: 1, z: 1.60000002}
Friction: 0.400000006
Bounciness: 0
Density: 1
Position Offset: {x: 0, y: 0, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0}
IsActive: true
Scripts: ~
- EID: 8
Name: Wall
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: -4.70212746, y: 0, z: -0.00226712227}
Rotate: {x: -0, y: 1.57079601, z: -0}
Scale: {x: 4.99982977, y: 1, z: 0.999978602}
IsActive: true
Renderable Component:
Mesh: 142652392
Material: 126223465
IsActive: true
Collider Component:
Colliders:
- Is Trigger: false
Collision Tag: 0
Type: Box
Half Extents: {x: 2.5, y: 1, z: 1.60000002}
Friction: 0.400000006
Bounciness: 0
Density: 1
Position Offset: {x: 0, y: 0, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0}
IsActive: true
Scripts: ~
- EID: 9
Name: Wall
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 1.46194017, y: 0, z: 0.71579361}
Rotate: {x: -0, y: 0, z: -0}
Scale: {x: 4.99985838, y: 1, z: 0.999982238}
IsActive: true
Renderable Component:
Mesh: 142652392
Material: 126223465
IsActive: true
Collider Component:
Colliders:
- Is Trigger: false
Collision Tag: 0
Type: Box
Half Extents: {x: 2.5, y: 1, z: 1.60000002}
Friction: 0.400000006
Bounciness: 0
Density: 1
Position Offset: {x: 0, y: 0, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0}
IsActive: true
Scripts: ~
- EID: 10
Name: Wall
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: -2.30867815, y: 0, z: -6.02849674}
Rotate: {x: -0, y: 0, z: -0}
Scale: {x: 4, y: 1, z: 0.999974966}
IsActive: true
Renderable Component:
Mesh: 142652392
Material: 126223465
IsActive: true
Collider Component:
Colliders:
- Is Trigger: false
Collision Tag: 0
Type: Box
Half Extents: {x: 2.5, y: 1, z: 1.60000002}
Friction: 0.400000006
Bounciness: 0
Density: 1
Position Offset: {x: 0, y: 0, z: 0}
Rotation Offset: {x: 0, y: 0, z: 0}
IsActive: true
Scripts: ~
- EID: 11
Name: TestAI
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 8.5, y: -1, z: -6.41661787}
Rotate: {x: -0, y: 0, z: -0}
Scale: {x: 5, y: 5, z: 5}
IsActive: true
Renderable Component:
Mesh: 140639624
Material: 131956078
IsActive: true
Navigation Component:
Target: {x: 0, y: 0, z: 0}
Forward: {x: 0, y: 0, z: 0}
Recalculate Path: true
Unreachable Target: false
Acceptance threshold: 1
IsActive: true
Scripts:
- Type: SHADE_Scripting.Gameplay.AIBehaviour.AIRework.NavigationTestScript
Enabled: true
endPoint: 12
speed: 3
- EID: 12
Name: EndPoint
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: -0.853474855, y: -1, z: 0.354041398}
Rotate: {x: -0, y: 0, z: -0}
Scale: {x: 5, y: 5, z: 5}
IsActive: true
Renderable Component:
Mesh: 140639624
Material: 131956078
IsActive: true
Scripts: ~
- EID: 13
Name: Camera
IsActive: true
NumberOfChildren: 0
Components:
Transform Component:
Translate: {x: 0, y: 10.2736483, z: 0}
Rotate: {x: -1.48352981, y: 0, z: 0}
Scale: {x: 1, y: 1, z: 1}
IsActive: true
Camera Component:
Position: {x: 0, y: 0, z: 0}
Pitch: -85
Yaw: 0
Roll: 0
Width: 1920
Near: 0.00999999978
Far: 10000
Perspective: true
FOV: 90
IsActive: true
Scripts: ~

View File

@ -0,0 +1,3 @@
Name: NavigationTest
ID: 100246336
Type: 5

View File

@ -1,3 +1,4 @@
- NavData: 0
- EID: 0
Name: Default
IsActive: true
@ -170,8 +171,13 @@
Angular Ranges And Offset: {x: 6.19999981, y: 1.10000002, z: 0, w: 0.100000001}
Rotation Speed: 0.0309999995
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
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
Scripts: ~

View File

@ -0,0 +1,107 @@
using SHADE;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework
{
public class AILineOfSight:Script
{
public GameObject player;
public float range = 2.0f;
[Tooltip("Angle between player and forward to be within sight")]
public float angle = 30.0f;
[Tooltip("For debug")]
public float angleBetween = 0.0f;
[Tooltip("For debug")]
public float distance = 0.0f;
public float heightLimit = 1.0f;
public Vector3 rayOffset;
public bool withinRange;
public bool withinSight;
public Vector3 lastFoundPos;
public float lastFoundTimer = 0.0f;
protected override void update()
{
if (player == GameObject.Null)
return;
Transform transform = GetComponent<Transform>();
Transform playerTransform = player.GetComponent<Transform>();
Collider playerCollider = player.GetComponent<Collider>();
withinRange = false;
withinSight = false;
if(transform && playerTransform && playerCollider)
{
Vector3 pos = transform.GlobalPosition + rayOffset;
Vector3 playerPos = playerTransform.GlobalPosition ;
Vector3 d = playerPos - pos;
distance = d.GetMagnitude();
if(distance < range)
{
Vector3 fwdHorizontal = transform.Forward;
fwdHorizontal.y = 0;
fwdHorizontal.Normalise();
Vector3 dHorizontal = d;
dHorizontal.y = 0;
float dot = Vector3.Dot(fwdHorizontal, dHorizontal);
angleBetween = SHADE.Math.Rad2Deg * MathF.Acos(dot / (dHorizontal.GetMagnitude()));
if (angleBetween < angle && playerPos.y < pos.y + heightLimit)
{
withinRange = true;
withinSight = true;
Ray sightRay = new Ray(pos, d.GetNormalised());
List<RaycastHit> hitResults = Physics.Raycast(sightRay, distance,false, (ushort)65535);
foreach(RaycastHit hit in hitResults)
{
if (hit.Hit && hit.Other != player)
{
//Debug.Log("AI LOS: HIT OTHER");
withinSight = false;
break;
}
}
}
}
if (withinSight == true)
{
lastFoundPos = playerTransform.GlobalPosition;
lastFoundTimer = 0.0f;
}
else
{
lastFoundTimer += Time.DeltaTimeF;
}
}
}
}
}

View File

@ -0,0 +1,3 @@
Name: AILineOfSight
ID: 152074687
Type: 9

View File

@ -0,0 +1,3 @@
Name: BaseState
ID: 167091082
Type: 9

View File

@ -0,0 +1,176 @@
using System;
using System.Collections.Generic;
using System.Linq;
using SHADE;
using SHADE_Scripting.Audio;
using SHADE_Scripting.Gameplay.AIBehaviour.AIRework.States;
namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework
{
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()
{
StateMachine machine = GetScript<StateMachine>();
if (transform && machine)
{
transform.GlobalPosition = startPos;
machine.SetState(typeof(IdleState));
}
}
protected override void awake()
{
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);
}
AudioHandler.audioClipHandlers["HO_footsteps"] = SHADE.Audio.CreateAudioClip("event:/Homeowner/homeowner_footsteps");
SHADE.Audio.AttachAudioClipToObject(AudioHandler.audioClipHandlers["HO_footsteps"], GameObject.EntityId);
AudioHandler.audioClipHandlers["HO_bark"] = SHADE.Audio.CreateAudioClip("event:/Homeowner/homeowner_bark");
SHADE.Audio.AttachAudioClipToObject(AudioHandler.audioClipHandlers["HO_bark"], GameObject.EntityId);
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 start()
{
//attackHitbox.SetActive(false);
if (pppList != null)
startPos = pppList[0].LocalPosition;
if (attackHitbox)
hitboxScript = attackHitbox.GetScript<HomeOwnerAttackHitbox>();
}
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,3 @@
Name: HomeOwnerAI
ID: 162553450
Type: 9

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

@ -0,0 +1,52 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SHADE;
namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework
{
public class NavigationTestScript :Script
{
public GameObject endPoint;
public float speed = 1.0f;
float timer = 0.0f;
protected override void start()
{
Navigation nav = GetComponent<Navigation>();
Transform endTransform = endPoint.GetComponent<Transform>();
if (endTransform)
nav.MoveTo(endTransform.GlobalPosition);
}
protected override void update()
{
timer += Time.DeltaTimeF;
Navigation nav = GetComponent<Navigation>();
Transform transform = GetComponent<Transform>();
if (timer >= 1.0f)
{
timer = 0.0f;
Transform endTransform = endPoint.GetComponent<Transform>();
if (endTransform)
nav.MoveTo(endTransform.GlobalPosition);
}
if (nav && transform)
{
transform.LocalPosition = transform.LocalPosition + ( nav.GetForward() * Time.DeltaTimeF * speed);
}
}
}
}

View File

@ -0,0 +1,3 @@
Name: NavigationTestScript
ID: 162476480
Type: 9

View File

@ -0,0 +1,90 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SHADE;
namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework
{
public class RotateToVelocity : Script
{
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()
{
if (!active)
return;
RigidBody rigid = GetComponent<RigidBody>();
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)
{
Vector3 vel = rigid.LinearVelocity;
rigid.AngularVelocity = Vector3.Zero;
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 targetRotation = Quaternion.Euler(0.0f, MathF.Atan2(vel.x, vel.z) + lookOffset, 0.0f);
transform.LocalRotation = Quaternion.Slerp(currentRotation, targetRotation, rotationPerSecond * (float)Time.DeltaTimeF);
}
}
}
}
}

View File

@ -0,0 +1,3 @@
Name: RotateToVelocity
ID: 163814533
Type: 9

View File

@ -0,0 +1,3 @@
Name: StateMachine
ID: 165140157
Type: 9

View File

@ -0,0 +1,24 @@
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 abstract class AIBaseState: BaseState
{
protected HomeOwnerAI ai;
protected Animator animator;
public AIBaseState(StateMachine stateMachine): base(stateMachine, "")
{
stateName = "AI Base State";
ai = stateMachine.GetScript<HomeOwnerAI>();
animator = stateMachine.GetComponent<Animator>();
}
}
}

View File

@ -0,0 +1,3 @@
Name: AIBaseState
ID: 160233845
Type: 9

View File

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

View File

@ -0,0 +1,3 @@
Name: AlertState
ID: 159828775
Type: 9

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

@ -0,0 +1,173 @@
using SHADE;
using SHADE.Test;
using SHADE_Scripting.Audio;
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 ChaseState :AIBaseState
{
float giveUpDuration = 10.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)
{
stateName = "Chase";
rand = new Random();
}
public override void OnEnter()
{
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()
{
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>();
RigidBody rigid = machine.GetComponent<RigidBody>();
if (los && nav)
{
Transform playerTransform = los.player.GetComponent<Transform>();
if (los.withinSight)
{
nav.MoveTo(playerTransform.GlobalPosition);
}
else
{
nav.MoveTo(los.lastFoundPos);
giveUpTimer -= Time.DeltaTimeF;
}
if(los.lastFoundTimer>= 10.0f || giveUpTimer <= 0.0f)
{
machine.SetState(typeof(TimeoutState));
}
if(los.distance < atkDistance)
{
machine.SetState(typeof(AttackState));
}
if(rigid)
{
if (los.withinSight)
rigid.LinearVelocity = nav.GetForward() * ai.chaseSpeed;
else
rigid.LinearVelocity = nav.GetForward() * ai.chaseSpeed;
}
if(nav.ReachedTarget())
{
giveUpTimer -= Time.DeltaTimeF;
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()
{
}
}
}

View File

@ -0,0 +1,3 @@
Name: ChaseState
ID: 166357249
Type: 9

View File

@ -0,0 +1,64 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SHADE;
namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework.States
{
public class IdleState: AIBaseState
{
float timer = 0.0f;
public IdleState(StateMachine machine): base(machine)
{
stateName = "Idle";
}
public override void OnEnter()
{
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()
{
timer += Time.DeltaTimeF;
if(timer >= ai.idleDuration)
{
machine.SetState(typeof(PatrolState));
}
if(ai.ShouldTransitAlert())
{
machine.SetState(typeof(AlertState));
}
}
public override void fixedUpdate()
{
}
}
}

View File

@ -0,0 +1,3 @@
Name: IdleState
ID: 164902316
Type: 9

View File

@ -0,0 +1,117 @@
using SHADE;
using SHADE_Scripting.Audio;
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 PatrolState: AIBaseState
{
Random rand;
Vector3 lastFramePos;
float stuckTimer;
bool run = true;
float footStepInterval = 12.0f / 30.0f;
float footStepTimer = 0.0f;
public PatrolState(StateMachine machine) : base(machine)
{
stateName = "Patrol";
rand = new Random();
}
public override void OnEnter()
{
Navigation nav = machine.GetComponent<Navigation>();
Transform transform = machine.GetComponent<Transform>();
if (nav && transform)
{
int index = rand.Next(0, ai.patrolPointPool.Count() - 1);
Transform dest = ai.patrolPointPool.ElementAt(index);
if (dest)
{
nav.MoveTo(dest.GlobalPosition);
}
lastFramePos = transform.GlobalPosition;
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()
{
Navigation nav = machine.GetComponent<Navigation>();
Transform transform = machine.GetComponent<Transform>();
RigidBody rigid = machine.GetComponent<RigidBody>();
if(nav && transform && rigid)
{
rigid.LinearVelocity = nav.GetForward() * ai.patrolSpeed;
Vector3 d = lastFramePos - transform.GlobalPosition;
if (d.GetSqrMagnitude() < 0.001f)
{
//stuckTimer += Time.DeltaTimeF;
}
if (nav.ReachedTarget())
{
machine.SetState(typeof(IdleState));
}
lastFramePos = transform.GlobalPosition;
}
if(stuckTimer >= 0.5f)
{
machine.SetState(typeof(IdleState));
}
if (ai.ShouldTransitAlert())
{
machine.SetState(typeof(AlertState));
}
footStepTimer -= Time.DeltaTimeF;
if(footStepTimer <= 0.0f)
{
footStepTimer += footStepInterval;
AudioHandler.audioClipHandlers["HO_footsteps"].Play();
}
}
public override void fixedUpdate()
{
}
}
}

View File

@ -0,0 +1,3 @@
Name: PatrolState
ID: 155844701
Type: 9

View File

@ -0,0 +1,53 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SHADE;
using SHADE_Scripting.Audio;
namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework.States
{
public class TimeoutState : AIBaseState
{
float timer = 0.0f;
float alertCooldown = 1.0f;
public TimeoutState(StateMachine machine) : base(machine)
{
stateName = "Timeout";
}
public override void OnEnter()
{
timer = 0.0f;
animator.Play(ai.idleAnim);
SHADE.Audio.SetParameterWithLabel("HomeownerBark", "DetectLost");
AudioHandler.audioClipHandlers["HO_bark"].Play();
}
public override void update()
{
timer += Time.DeltaTimeF;
if (timer >= ai.timeoutDuration)
{
machine.SetState(typeof(PatrolState));
}
}
public override void fixedUpdate()
{
}
public override void OnExit()
{
ai.alertCooldown = alertCooldown;
}
}
}

View File

@ -0,0 +1,3 @@
Name: TimeoutState
ID: 167077719
Type: 9

View File

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

View File

@ -1,5 +1,6 @@
using SHADE;
using SHADE_Scripting.Audio;
using SHADE_Scripting.Gameplay.AIBehaviour.AIRework;
using System;
public class Item : Script
{
@ -10,21 +11,29 @@ public class Item : Script
HEAVY
}
public enum Food
{
EGG,
APPLE,
MEAT,
WATERMELON,
CHEESE
}
public int Score = 10;
public ItemCategory currCategory;
public Food currFood;
public bool returnBack { get; set; }
private Transform transform;
private RigidBody rb;
private bool playSound = false;
private bool caputurePos = false;
private Vector3 firstPostion;
private Collider collider;
public float density = 1.0f;
private Vector3 firstRotation;
public bool dontReturn = false;
private bool once = true;
private bool checkSound = false;
private bool homeownerOnce = true;
public float soundDistance = 10;
private float highlightPos = 0.0f;
@ -40,9 +49,6 @@ public class Item : Script
{
transform = GetComponent<Transform>();
rb = GetComponent<RigidBody>();
collider = GetComponent<Collider>();
if(collider)
collider.GetCollisionShape(0).Density = density;
rend = GetComponent<Renderable>();
if (!rend)
@ -53,6 +59,11 @@ public class Item : Script
AudioHandler.audioClipHandlers["SFXImpactElastic"] = Audio.CreateAudioClip("event:/Props/impact_elastic");
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>();
}
@ -98,25 +109,15 @@ public class Item : Script
rb.ClearTorque();
}
if(transform)
if (transform)
{
transform.LocalEulerAngles = firstRotation;
transform.LocalPosition = firstPostion;
}
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)
@ -125,37 +126,35 @@ public class Item : Script
if (!caputurePos)
{
firstPostion = transform.LocalPosition;
firstRotation = transform.LocalEulerAngles;
caputurePos = true;
}
if (playSound)
if (once)
{
Audio.AttachAudioClipToObject(AudioHandler.audioClipHandlers["SFXImpactElastic"], GameObject.EntityId);
Audio.AttachAudioClipToObject(AudioHandler.audioClipHandlers["SFXImpactHard"], GameObject.EntityId);
if (currCategory == ItemCategory.LIGHT)
AudioHandler.audioClipHandlers["SFXImpactElastic"].Play();
else if (currCategory == ItemCategory.MEDIUM || currCategory == ItemCategory.HEAVY)
AudioHandler.audioClipHandlers["SFXImpactHard"].Play();
playSound = false;
Audio.DetachAudioClipFromObject(AudioHandler.audioClipHandlers["SFXImpactElastic"]);
Audio.DetachAudioClipFromObject(AudioHandler.audioClipHandlers["SFXImpactHard"]);
if(emitter)
if (emitter)
emitter.Emit();
Debug.Log("EMIT");
once = false;
}
if (info.GameObject.GetScript<Homeowner1>() && !returnBack)
if (info.GameObject.GetScript<HomeOwnerAI>() && homeownerOnce)
{
homeownerOnce = false;
returnBack = true;
}
}
protected override void onCollisionExit(CollisionInfo info)
{
playSound = true;
checkSound = true;
homeownerOnce = true;
once = true;
}
}

View File

@ -1,4 +1,5 @@
using SHADE;
using SHADE_Scripting.Audio;
using System;
public class PlayerLandState : BaseState

View File

@ -6,6 +6,7 @@ public class PlayerRunState : BaseState
{
private float timer;
private float delay = 0.25f;
private bool left = true;
public PlayerRunState(StateMachine stateMachine) : base(stateMachine)
{
@ -14,6 +15,11 @@ public class PlayerRunState : BaseState
public override void OnEnter()
{
//Debug.Log("WALK ENTER");
timer = delay;
machine.GetScript<PlayerController>().playLandedAnimation = false;
machine.GetScript<PlayerController>().Leftsmoke.EmissionCount = machine.GetScript<PlayerController>().smokeCount * 4;
machine.GetScript<PlayerController>().Rightsmoke.EmissionCount = machine.GetScript<PlayerController>().smokeCount * 4;
if (PlayerAnimations.Instance)
{
PlayerAnimations.Instance.playerAnimator.Play(PlayerAnimations.Instance.playerRunClip);
@ -29,6 +35,27 @@ public class PlayerRunState : BaseState
if (timer > delay)
{
if (left)
{
if (machine.GetScript<PlayerController>().tranform.LocalEulerAngles.y > 0.0f)
machine.GetScript<PlayerController>().Leftsmoke.AngularOffsets = new Vector2(machine.GetScript<PlayerController>().tranform.LocalEulerAngles.y - (MathF.PI * 1.5f), machine.GetScript<PlayerController>().Leftsmoke.AngularOffsets.y);
else
machine.GetScript<PlayerController>().Leftsmoke.AngularOffsets = new Vector2(machine.GetScript<PlayerController>().tranform.LocalEulerAngles.y + (MathF.PI * 0.5f), machine.GetScript<PlayerController>().Leftsmoke.AngularOffsets.y);
machine.GetScript<PlayerController>().Leftsmoke.Emit();
left = false;
}
else
{
if (machine.GetScript<PlayerController>().tranform.LocalEulerAngles.y > 0.0f)
machine.GetScript<PlayerController>().Rightsmoke.AngularOffsets = new Vector2(machine.GetScript<PlayerController>().tranform.LocalEulerAngles.y - (MathF.PI * 1.5f), machine.GetScript<PlayerController>().Rightsmoke.AngularOffsets.y);
else
machine.GetScript<PlayerController>().Rightsmoke.AngularOffsets = new Vector2(machine.GetScript<PlayerController>().tranform.LocalEulerAngles.y + (MathF.PI * 0.5f), machine.GetScript<PlayerController>().Rightsmoke.AngularOffsets.y);
machine.GetScript<PlayerController>().Rightsmoke.Emit();
left = true;
}
AudioHandler.audioClipHandlers["footsteps"].Play();
timer = 0;
}

View File

@ -1,11 +1,12 @@
using SHADE;
using SHADE;
using SHADE_Scripting.Audio;
using System;
public class PlayerWalkState : BaseState
{
private float timer;
private float delay = 0.5f;
private float delay = 0.4f;
private bool left = true;
public PlayerWalkState(StateMachine stateMachine) : base(stateMachine)
{
stateName = "Walk State";
@ -14,6 +15,8 @@ public class PlayerWalkState : BaseState
{
//Debug.Log("WALK ENTER");
timer = delay;
machine.GetScript<PlayerController>().Leftsmoke.EmissionCount = machine.GetScript<PlayerController>().smokeCount;
machine.GetScript<PlayerController>().Rightsmoke.EmissionCount = machine.GetScript<PlayerController>().smokeCount;
machine.GetScript<PlayerController>().playLandedAnimation = false;
@ -47,6 +50,27 @@ public class PlayerWalkState : BaseState
if (timer > delay)
{
if (left)
{
if (machine.GetScript<PlayerController>().tranform.LocalEulerAngles.y > 0.0f)
machine.GetScript<PlayerController>().Leftsmoke.AngularOffsets = new Vector2(machine.GetScript<PlayerController>().tranform.LocalEulerAngles.y - (MathF.PI * 1.5f), machine.GetScript<PlayerController>().Leftsmoke.AngularOffsets.y);
else
machine.GetScript<PlayerController>().Leftsmoke.AngularOffsets = new Vector2(machine.GetScript<PlayerController>().tranform.LocalEulerAngles.y + (MathF.PI * 0.5f), machine.GetScript<PlayerController>().Leftsmoke.AngularOffsets.y);
machine.GetScript<PlayerController>().Leftsmoke.Emit();
left = false;
}
else
{
if (machine.GetScript<PlayerController>().tranform.LocalEulerAngles.y > 0.0f)
machine.GetScript<PlayerController>().Rightsmoke.AngularOffsets = new Vector2(machine.GetScript<PlayerController>().tranform.LocalEulerAngles.y - (MathF.PI * 1.5f), machine.GetScript<PlayerController>().Rightsmoke.AngularOffsets.y);
else
machine.GetScript<PlayerController>().Rightsmoke.AngularOffsets = new Vector2(machine.GetScript<PlayerController>().tranform.LocalEulerAngles.y + (MathF.PI * 0.5f), machine.GetScript<PlayerController>().Rightsmoke.AngularOffsets.y);
machine.GetScript<PlayerController>().Rightsmoke.Emit();
left = true;
}
AudioHandler.audioClipHandlers["footsteps"].Play();
timer = 0;
}

View File

@ -1,4 +1,4 @@
using SHADE;
using SHADE;
using SHADE_Scripting;
using SHADE_Scripting.Audio;
using System;
@ -50,10 +50,18 @@ public class PickAndThrow : Script
public float aimingFOV = 15.0f;
private TrajectoryRenderable trajComp;
private Vector3 currThrowForce;
private float currentItemMass;
public uint trajMaxSteps = 50;
public float trajTimeSteps = 0.03f;
protected override void awake()
{
pc = GetScript<PlayerController>();
if(!pc)
if (!pc)
Debug.LogError("PLAYER CONTROLLER EMPTY");
raccoonHoldLocation = GetComponentInChildren<Transform>();
@ -61,12 +69,18 @@ public class PickAndThrow : Script
Debug.LogError("CHILD EMPTY");
tpc = GetScriptInChildren<ThirdPersonCamera>();
if(!tpc)
if (!tpc)
Debug.LogError("TPC EMPTY");
AudioHandler.audioClipHandlers["SFXThrow"] = Audio.CreateAudioClip("event:/Raccoon/raccoon_throw");
AudioHandler.audioClipHandlers["SFXThrowLarge"] = Audio.CreateAudioClip("event:/Raccoon/raccoon_throw_large");
AudioHandler.audioClipHandlers["SFXThrowMedium"] = Audio.CreateAudioClip("event:/Raccoon/raccoon_throw_medium");
AudioHandler.audioClipHandlers["SFXThrowSmall"] = Audio.CreateAudioClip("event:/Raccoon/raccoon_throw_small");
timer = delayTimer;
trajComp = GetComponentInChildren<TrajectoryRenderable>();
if (!trajComp)
Debug.LogError("TrajectoryRenderable MISSING");
}
protected override void start()
@ -114,7 +128,13 @@ public class PickAndThrow : Script
if (Input.GetMouseButtonUp(Input.MouseCode.LeftButton) && pc.isAiming)
{
AudioHandler.audioClipHandlers["SFXThrow"].Play();
if (itemScript.currCategory == ItemCategory.LIGHT)
AudioHandler.audioClipHandlers["SFXThrowSmall"].Play();
else if (itemScript.currCategory == ItemCategory.MEDIUM)
AudioHandler.audioClipHandlers["SFXThrowMedium"].Play();
else
AudioHandler.audioClipHandlers["SFXThrowLarge"].Play();
itemRidigBody.IsGravityEnabled = true;
itemCollider.GetCollisionShape(0).IsTrigger = false;
pc.isAiming = false;
@ -161,6 +181,19 @@ public class PickAndThrow : Script
PlayPickUpAnimation();
}
}
if (pc.isAiming && itemScript)
{
if (itemScript.currCategory == ItemCategory.LIGHT)
currThrowForce = new Vector3(throwForce.x * lastXDir, throwForce.y + (throwForce.y * GetPitchRatioRange()), throwForce.z * lastZDir) * 0.2f;
else if (itemScript.currCategory == ItemCategory.MEDIUM)
currThrowForce = new Vector3(throwForce.x * lastXDir, throwForce.y + (throwForce.y * GetPitchRatioRange()), throwForce.z * lastZDir) * 0.75f;
else
currThrowForce = new Vector3(throwForce.x * lastXDir, throwForce.y + (throwForce.y * GetPitchRatioRange()), throwForce.z * lastZDir);
if (pc.holdItem && trajComp)
trajComp.SimulateTrajectory(item.EntityId, currentItemMass, currThrowForce, trajTimeSteps, trajMaxSteps);
}
}
protected override void fixedUpdate()
@ -172,22 +205,21 @@ public class PickAndThrow : Script
if (throwItem && itemRidigBody && pc)
{
if (itemScript)
{
Vector3 vec = new Vector3(throwForce.x * lastXDir, throwForce.y + (throwForce.y * GetPitchRatioRange()), throwForce.z * lastZDir);
if (itemScript.currCategory == ItemCategory.LIGHT)
itemRidigBody.AddForce(vec * 0.2f);
if (itemScript.currCategory == ItemCategory.MEDIUM)
itemRidigBody.AddForce(vec * 0.75f);
if (itemScript.currCategory == ItemCategory.HEAVY)
itemRidigBody.AddForce(vec);
}
itemRidigBody.AddForce(currThrowForce);
itemRidigBody.LinearVelocity += pc.rb.LinearVelocity;
throwItem = false;
ResetItemObject();
}
}
public void SetItemGravityBack()
{
if(itemRidigBody)
itemRidigBody.IsGravityEnabled = true;
if(itemCollider)
itemCollider.GetCollisionShape(0).IsTrigger = false;
}
public void ResetItemObject()
{
itemRidigBody = null;
@ -207,6 +239,7 @@ public class PickAndThrow : Script
Debug.Log("Item rb EMPTY");
else
{
currentItemMass = itemRidigBody.Mass;
itemRidigBody.IsGravityEnabled = false;
}
@ -441,7 +474,7 @@ public class PickAndThrow : Script
}
}
private void TweenAimCamArm(bool aim)
public void TweenAimCamArm(bool aim)
{
if (aim)

View File

@ -1,4 +1,4 @@
using SHADE;
using SHADE;
using System;
using System.Collections.Generic;
using SHADE_Scripting.Audio;
@ -22,8 +22,14 @@ public class PlayerController : Script
public Transform tranform { get; set; }
public Camera cam { 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 ParticleEmitter Leftsmoke { get; set; }
public ParticleEmitter Rightsmoke { get; set; }
public int smokeCount = 4;
public bool holdItem { get; set; }
public bool isAiming { get; set; }
@ -92,6 +98,10 @@ public class PlayerController : Script
public bool playLandedAnimation { get; set; }
public GameObject leftParticle;
public GameObject rightParticle;
protected override void awake()
{
//default setup
@ -115,6 +125,10 @@ public class PlayerController : Script
if(!tranform)
Debug.LogError("tranform is MISSING!");
collider = GetComponent<Collider>();
if (!collider)
Debug.LogError("collider is MISSING!");
stateMachine = AddScript<StateMachine>();
Dictionary<Type, BaseState> dictionary = new Dictionary<Type, BaseState>();
dictionary.Add(typeof(PlayerIdleState), new PlayerIdleState(stateMachine));
@ -143,8 +157,19 @@ public class PlayerController : Script
}
AudioHandler.audioClipHandlers["footsteps"] = Audio.CreateAudioClip("event:/Raccoon/raccoon_footsteps");
AudioHandler.audioClipHandlers["Jump"] = Audio.CreateAudioClip("event:/Raccoon/raccoon_jump");
AudioHandler.audioClipHandlers["JumpPad"] = Audio.CreateAudioClip("event:/Raccoon/raccoon_jumpPad");
AudioHandler.audioClipHandlers["Land"] = Audio.CreateAudioClip("event:/Raccoon/raccoon_land");
AudioHandler.audioClipHandlers["RaccoonCaught"] = Audio.CreateAudioClip("event:/Raccoon/raccoon_caught");
playLandedAnimation = false;
Leftsmoke = leftParticle.GetComponent<ParticleEmitter>();
if (!Leftsmoke)
Debug.LogError("left ParticleEmitter MISSING");
Rightsmoke = rightParticle.GetComponent<ParticleEmitter>();
if (!Leftsmoke)
Debug.LogError("right ParticleEmitter MISSING");
}
protected override void start()
@ -171,7 +196,7 @@ public class PlayerController : Script
float ratio = System.Math.Clamp(1 - (disSqr / (1 + disSqr)), 0, 1.0f);
float temp = (1 - ratio) * 0.00075f;
if (temp <= 0.0006f)
temp = 0.1f;
temp = 0.0075f;
silhouettePlayerRend.Material.SetProperty<float>("data.offset", temp);
silhouetteBagRend.Material.SetProperty<float>("data.offset", temp);
}
@ -210,7 +235,6 @@ public class PlayerController : Script
}
GotCaught();
Rotation();
MoveKey();
Sprint();
@ -237,6 +261,10 @@ public class PlayerController : Script
private void MoveKey()
{
if (currentState == RaccoonStates.CAUGHT)
return;
axisMove = Vector2.Zero;
if (Input.GetKey(Input.KeyCode.W))
{
@ -273,7 +301,7 @@ public class PlayerController : Script
axisMove.Normalise();
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;
@ -292,11 +320,11 @@ public class PlayerController : Script
private void Move()
{
if (rb != null && currentState != RaccoonStates.CAUGHT)
if (rb && currentState != RaccoonStates.CAUGHT)
{
rb.LinearVelocity += new Vector3(axisMove.x * moveForce, 0.0f, axisMove.y * moveForce) * Time.DeltaTimeF;
if (isMoveKeyPress && rb)
if (isMoveKeyPress)
{
Vector3 velNor = rb.LinearVelocity;
velNor.y = 0.0f;
@ -317,13 +345,25 @@ public class PlayerController : Script
private void Sprint()
{
if (currentState == RaccoonStates.CAUGHT)
return;
if (Input.GetKey(Input.KeyCode.LeftShift) && isMoveKeyPress && isGrounded)
{
currentState = RaccoonStates.RUNNING;
if (stateMachine && !stateMachine.IsState(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)
{
sprintIncreaseOnce = true;
@ -335,6 +375,13 @@ public class PlayerController : Script
}
}
if (Input.GetKey(Input.KeyCode.LeftShift) && !isMoveKeyPress && isGrounded)
{
currentState = RaccoonStates.IDLE;
if (stateMachine && !stateMachine.IsState(typeof(PlayerIdleState)))
stateMachine.SetState(typeof(PlayerIdleState));
}
if (Input.GetKeyUp(Input.KeyCode.LeftShift))
{
if (isMoveKeyPress && isGrounded)
@ -343,7 +390,7 @@ public class PlayerController : Script
if (stateMachine && !stateMachine.IsState(typeof(PlayerWalkState)))
stateMachine.SetState(typeof(PlayerWalkState));
}
else if(!isMoveKeyPress && isGrounded)
else if (!isMoveKeyPress && isGrounded)
{
currentState = RaccoonStates.IDLE;
if (stateMachine && !stateMachine.IsState(typeof(PlayerIdleState)))
@ -383,16 +430,23 @@ public class PlayerController : Script
v.y *= jumpPadMultiplayer;
landedOnJumpPad = false;
jumpPadDrop = true;
AudioHandler.audioClipHandlers["JumpPad"].Play();
}
else
AudioHandler.audioClipHandlers["Jump"].Play();
rb.LinearVelocity = v;
}
}
if (!isGrounded && rb != null && (rb.LinearVelocity.y < 0.0f || Input.GetKeyUp(Input.KeyCode.Space)))
{
currentState = RaccoonStates.FALLING;
if (stateMachine && !stateMachine.IsState(typeof(PlayerFallState)))
stateMachine.SetState(typeof(PlayerFallState));
if (currentState != RaccoonStates.CAUGHT)
{
currentState = RaccoonStates.FALLING;
if (stateMachine && !stateMachine.IsState(typeof(PlayerFallState)))
stateMachine.SetState(typeof(PlayerFallState));
}
}
}
@ -417,6 +471,9 @@ public class PlayerController : Script
private void Gravity()
{
if (currentState == RaccoonStates.CAUGHT)
return;
if (rb != null)
{
//check player vel.y if its close to zero its on the ground
@ -425,6 +482,7 @@ public class PlayerController : Script
isGrounded = true;
if (currentState == RaccoonStates.FALLING)
{
AudioHandler.audioClipHandlers["Land"].Play();
currentState = RaccoonStates.LANDED;
jumpPadDrop = false;
dropTimer = 0.0f;
@ -467,32 +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)
{
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;
if (stateMachine && !stateMachine.IsState(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)
{
if (holdItem)
{
holdItem = false;
pat.item.GetScript<Item>().returnBack = true;
}
if (isAiming)
{
isAiming = false;
cam.FOV = Settings.cameraFOV;
camArm.TargetOffset = pat.prevTargetOffSet;
camArm.ArmLength = pat.tpc.armLength;
}
}
GameManager.Instance.RacoonCaught();
}
}

View File

@ -14,8 +14,6 @@ namespace SHADE_Scripting
public float armLength = 2.0f;
public float turnSpeedPitch = 0.3f;
public float turnSpeedYaw = 0.5f;
public bool inverseXControls = false;
public bool inverseYControls = false;
public float pitchUpperClamp = 45.0f;
public float pitchLowerClamp = 5.0f;
@ -51,15 +49,15 @@ namespace SHADE_Scripting
if (arm)
{
Vector2 vel = Input.GetMouseVelocity();
if(inverseYControls)
if(Settings.inverseY)
arm.Pitch -= vel.y * turnSpeedPitch * Time.DeltaTimeF;
else
arm.Pitch += vel.y * turnSpeedPitch * Time.DeltaTimeF;
if (inverseXControls)
arm.Yaw -= vel.x * turnSpeedYaw * Time.DeltaTimeF;
else
if (Settings.inverseX)
arm.Yaw += vel.x * turnSpeedYaw * Time.DeltaTimeF;
else
arm.Yaw -= vel.x * turnSpeedYaw * Time.DeltaTimeF;
if (arm.Pitch > pitchUpperClamp)
{

View File

@ -0,0 +1,79 @@
using SHADE;
using SHADE_Scripting.Audio;
using System;
public class CeilingFan : Script
{
private Transform tran;
private Collider collider;
private float rotate = 0.0f;
public float rotateSpeed = 10.0f;
private float rotateCollider1 = 0.0f;
private float rotateCollider2 = 0.0f;
private float rotateCollider3 = 0.0f;
private float rotateCollider4 = 0.0f;
private float rotateCollider5 = 0.0f;
private float defaultCollider1 = 0.0f;
private float defaultCollider2 = 0.0f;
private float defaultCollider3 = 0.0f;
private float defaultCollider4 = 0.0f;
private float defaultCollider5 = 0.0f;
protected override void awake()
{
tran = GetComponent<Transform>();
if (!tran)
Debug.Log("FAN TRAN MISSING");
collider = GetComponent<Collider>();
if (!collider)
Debug.Log("FAN COLLIDER MISSING");
else
{
rotateCollider1 = collider.GetCollisionShape(0).RotationOffset.y;
defaultCollider1 = collider.GetCollisionShape(0).RotationOffset.y;
rotateCollider2 = collider.GetCollisionShape(1).RotationOffset.y;
defaultCollider2 = collider.GetCollisionShape(1).RotationOffset.y;
rotateCollider3 = collider.GetCollisionShape(2).RotationOffset.y;
defaultCollider3 = collider.GetCollisionShape(2).RotationOffset.y;
rotateCollider4 = collider.GetCollisionShape(3).RotationOffset.y;
defaultCollider4 = collider.GetCollisionShape(3).RotationOffset.y;
rotateCollider5 = collider.GetCollisionShape(4).RotationOffset.y;
defaultCollider5 = collider.GetCollisionShape(4).RotationOffset.y;
}
}
protected override void fixedUpdate()
{
rotate += rotateSpeed * (float)Time.FixedDeltaTime;
rotateCollider1 += rotateSpeed * (float)Time.FixedDeltaTime;
rotateCollider2 += rotateSpeed * (float)Time.FixedDeltaTime;
rotateCollider3 += rotateSpeed * (float)Time.FixedDeltaTime;
rotateCollider4 += rotateSpeed * (float)Time.FixedDeltaTime;
rotateCollider5 += rotateSpeed * (float)Time.FixedDeltaTime;
if (rotate >= MathF.PI * 2)
{
rotate = 0;
rotateCollider1 = defaultCollider1;
rotateCollider2 = defaultCollider2;
rotateCollider3 = defaultCollider3;
rotateCollider4 = defaultCollider4;
rotateCollider5 = defaultCollider5;
}
tran.LocalEulerAngles = new Vector3(0.0f, rotate, 0.0f);
collider.GetCollisionShape(0).RotationOffset = new Vector3(0.0f, rotateCollider1, 0.0f);
collider.GetCollisionShape(1).RotationOffset = new Vector3(0.0f, rotateCollider2, 0.0f);
collider.GetCollisionShape(2).RotationOffset = new Vector3(0.0f, rotateCollider3, 0.0f);
collider.GetCollisionShape(3).RotationOffset = new Vector3(0.0f, rotateCollider4, 0.0f);
collider.GetCollisionShape(4).RotationOffset = new Vector3(0.0f, rotateCollider5, 0.0f);
}
}

View File

@ -0,0 +1,3 @@
Name: SC_CeilingFan
ID: 157170734
Type: 9

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

View File

@ -12,6 +12,7 @@ public class JumpPad : Script
public float scaleDuration = 0.25f;
private bool landed = false;
private bool scaleUpDone = false;
public float itemUpwardForce = 6.0f;
[NonSerialized]
private TweenThread scaleYUp;
@ -73,6 +74,15 @@ public class JumpPad : Script
scaleYUp.Reset();
scaleXZUp.Reset();
}
else if (info.GameObject.GetComponent<RigidBody>())
{
Audio.AttachAudioClipToObject(AudioHandler.audioClipHandlers["SFXJumpPad"], GameObject.EntityId);
AudioHandler.audioClipHandlers["SFXJumpPad"].Play();
info.GameObject.GetComponent<RigidBody>().AddForce(new Vector3(0, itemUpwardForce, 0));
landed = true;
scaleYUp.Reset();
scaleXZUp.Reset();
}
}
}

View File

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

View File

@ -4,18 +4,32 @@ using System;
public class ScoringZone : Script
{
private ParticleEmitter particle;
public int startingParticleCount = 10;
protected override void awake()
{
AudioHandler.audioClipHandlers["SFXItemScore"] = Audio.CreateAudioClip("event:/Music/stingers/item_scored");
particle = GetComponentInChildren<ParticleEmitter>();
if (!particle)
Debug.LogError("PARTICLE MISSING");
}
protected override void update()
{
}
protected override void onTriggerEnter(CollisionInfo info)
{
if (GameManager.Instance && info.GameObject.GetScript<Item>() && info.GameObject.IsActiveSelf && !info.GameObject.GetComponent<Collider>().GetCollisionShape(0).IsTrigger )
{
AudioHandler.audioClipHandlers["SFXItemScore"].Play();
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();
particle.EmissionCount = startingParticleCount * GameManager.Instance.currMultiplierCombo;
particle.Emit();
info.GameObject.SetActive(false);
}
}

View File

@ -1,18 +1,20 @@
using System;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
public enum EASING_METHOD
{
EASE_IN_SINE,
EASE_OUT_SINE,
EASE_OUT_BOUNCE,
EASE_IN_BOUNCE,
EASE_INOUT_BOUNCE,
LINEAR
}
public enum EASING_METHOD
{
EASE_IN_SINE,
EASE_OUT_SINE,
EASE_OUT_BOUNCE,
EASE_IN_BOUNCE,
EASE_INOUT_BOUNCE,
EASE_OUT_CIRCLE,
EASE_OUT_BACK,
LINEAR
}
public static class EasingHelper
{
@ -47,11 +49,19 @@ public static class EasingHelper
}
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;
}
}
@ -102,5 +112,18 @@ public static class EasingHelper
: (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()
{
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>();

View File

@ -5,43 +5,43 @@ using SHADE_Scripting.UI;
public class ChangeSceneButton : Script
{
public uint sceneID = 0;
public uint sceneID = 0;
//Whether the scene changing button has been clicked
private bool clickedFlag;
public GameObject levelTransistion;
protected override void awake()
{
clickedFlag = false;
}
private bool clickedFlag;
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>();
if (ui != null)
ui.OnRelease.RegisterAction(() =>
{
if (sceneID != 0)
{
ui.OnRelease.RegisterAction(() =>
{
if (sceneID != 0)
{
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.");
Audio.PlaySFXOnce2D("event:/UI/success");
Audio.StopAllSounds();
clickedFlag = true;
levelTransistion.SetActive(true);
}
});
}
protected override void update()
else
{
if (clickedFlag && sceneID != 0 && SceneFadeInOut.Instance.FadeInFinished())
{
SceneManager.ChangeScene(sceneID);
}
Debug.LogError("Failed to register button action for ChangeSceneButton.");
}
}
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 cutscene5Done = false;
public GameObject levelTransition;
private bool waiting = false;
protected override void awake()
{
initCutscene4();
@ -73,6 +76,9 @@ public class CutsceneEnd : Script
protected override void update()
{
if (!levelTransition.GetScript<LevelTransistion>().complete)
return;
Canvas4();
Canvas5();
@ -98,8 +104,12 @@ public class CutsceneEnd : Script
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()

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