Compare commits
91 Commits
SP3-22-Ani
...
main
Author | SHA1 | Date |
---|---|---|
Sri Sham Haran | 0f7d86543f | |
Glence | 8ffca03f16 | |
XiaoQiDigipen | 724f8ae2cf | |
maverickdgg | f495dfe4fd | |
Glence | e5c8f4c380 | |
Glence | f114a7f59a | |
XiaoQiDigipen | 273bdfcdcc | |
Glence | 9b55d69f9a | |
Glence | 716087d15c | |
Xiao Qi | 5c79bb7f9f | |
XiaoQiDigipen | f54448b5eb | |
Glence | 51f426868e | |
Glence | 51867f0c5e | |
Glence | 96fd8295aa | |
XiaoQiDigipen | a3c1993576 | |
maverickdgg | 483d8c7066 | |
maverickdgg | c643bd64f3 | |
maverickdgg | d5240b420d | |
Glence | cc9b7c20c4 | |
Glence | ce6288880a | |
Glence | b2e38df969 | |
XiaoQiDigipen | 0dad2e9e9f | |
XiaoQiDigipen | e9d0b01972 | |
Glence | f70a41a9dc | |
maverickdgg | 43c6a62186 | |
maverickdgg | 2e20b295b5 | |
Glence | 3e4794cebc | |
Glence | 191ed7de43 | |
XiaoQiDigipen | fada41174d | |
Glence | a76f2eca87 | |
Glence | 5ed0219a0b | |
XiaoQiDigipen | 1c6def8e70 | |
maverickdgg | 9d8b94a5ab | |
XiaoQiDigipen | 1838209ec2 | |
maverickdgg | c335f58702 | |
maverickdgg | af9e523da9 | |
maverickdgg | 6ee619d26e | |
maverickdgg | b123cd83f8 | |
maverickdgg | fdc261749e | |
XiaoQiDigipen | 125f88bcac | |
Brandon Mak | 83955e4618 | |
Brandon Mak | 4d145bbc43 | |
maverickdgg | c2a8c86483 | |
maverickdgg | 12bbce33e8 | |
XiaoQiDigipen | 3fc69890e4 | |
maverickdgg | 3fef57f88a | |
maverickdgg | 3f7522d76f | |
maverickdgg | c6faeeb282 | |
Brandon Mak | 9c19d178db | |
maverickdgg | 8c5bf82aa5 | |
XiaoQiDigipen | 5ab7cbe5f3 | |
Brandon Mak | 8aa5c681e3 | |
Kah Wei | 6cf20d414e | |
Glence | ffc638e14b | |
Glence | 2abb1ce697 | |
Sri Sham Haran | 0f9afc2a18 | |
Sri Sham Haran | 0890bd8d3f | |
Brandon Mak | fed76708bd | |
Glence | 2fd4e51cd0 | |
Glence | 2da73f12d0 | |
Sri Sham Haran | 44bbdf5f82 | |
Sri Sham Haran | c6172be3ad | |
Brandon Mak | e685f8ebaf | |
Glence | 92de505af4 | |
maverickdgg | cf41fe245e | |
XiaoQiDigipen | bc1167267c | |
maverickdgg | e7ec24c15a | |
maverickdgg | 89bfbf3100 | |
maverickdgg | 72bbc72531 | |
maverickdgg | 6c1f0162e9 | |
Glence | 270cab64e2 | |
maverickdgg | 2d9b7f3a5d | |
maverickdgg | 4a149508c9 | |
Glence | ce24a1efb0 | |
XiaoQiDigipen | 4f84736599 | |
maverickdgg | 75f38f4e36 | |
maverickdgg | 485d8cc38b | |
XiaoQiDigipen | 3affd446f3 | |
Xiao Qi | 47a78de609 | |
maverickdgg | 749cedfae2 | |
maverickdgg | c1544b0b51 | |
XiaoQiDigipen | cd04a93df9 | |
Glence | 429674c16e | |
Glence | 9b6a0d112e | |
maverickdgg | 291c9d044e | |
Xiao Qi | f21f235980 | |
XiaoQiDigipen | a40c59872c | |
Glence | 82fd4e2149 | |
Kah Wei | 52d27ae6bd | |
maverickdgg | 47f195e998 | |
maverickdgg | ab4493822a |
|
@ -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.
|
@ -1,5 +1,5 @@
|
|||
0 StaticObject 1101000000000000
|
||||
1 Player 1101000000000000
|
||||
1 Furniture 1101000000000000
|
||||
2 Food 1000000000000000
|
||||
3 Breakable 1100000000000000
|
||||
4 ScoringWallCollider 0110000000000000
|
||||
|
@ -8,7 +8,7 @@
|
|||
7 StaticWithCameraCollision 1111000000000000
|
||||
8 Floor 1100000000000000
|
||||
9 Navigation 0001000000000000
|
||||
10 11 0000000000000000
|
||||
10 Player 1100000000000000
|
||||
11 12 0000000000000000
|
||||
12 13 0000000000000000
|
||||
13 14 0000000000000000
|
||||
|
|
|
@ -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}
|
|
@ -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}
|
|
@ -0,0 +1,3 @@
|
|||
Name: UIMat_SliderBG
|
||||
ID: 117587364
|
||||
Type: 7
|
|
@ -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}
|
|
@ -0,0 +1,3 @@
|
|||
Name: UIMat_Slider_BGM
|
||||
ID: 129354037
|
||||
Type: 7
|
|
@ -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}
|
|
@ -0,0 +1,3 @@
|
|||
Name: UIMat_Slider_FOV
|
||||
ID: 117651669
|
||||
Type: 7
|
|
@ -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}
|
|
@ -0,0 +1,3 @@
|
|||
Name: UIMat_Slider_SFX
|
||||
ID: 122820018
|
||||
Type: 7
|
|
@ -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}
|
|
@ -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}
|
|
@ -0,0 +1,3 @@
|
|||
Name: UIMat_Transistion
|
||||
ID: 132131066
|
||||
Type: 7
|
|
@ -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}
|
|
@ -0,0 +1,3 @@
|
|||
Name: UI_Result
|
||||
ID: 130179375
|
||||
Type: 7
|
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
Name: Level1_NavData
|
||||
ID: 257298636
|
||||
Type: 15
|
|
@ -1,3 +1,3 @@
|
|||
Name: Level2_AITest_NavData
|
||||
ID: 255209218
|
||||
ID: 254149790
|
||||
Type: 15
|
||||
|
|
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
Name: Level2_NavData
|
||||
ID: 260674210
|
||||
Type: 15
|
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
Name: Level3_NavData
|
||||
ID: 252819653
|
||||
Type: 15
|
|
@ -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: ~
|
|
@ -0,0 +1,3 @@
|
|||
Name: CreditsScene
|
||||
ID: 97376761
|
||||
Type: 5
|
|
@ -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
|
|
@ -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
|
@ -1,4 +1,4 @@
|
|||
- NavData: 255209218
|
||||
- NavData: 254149790
|
||||
- EID: 20
|
||||
Name: ===== Light =====
|
||||
IsActive: true
|
||||
|
@ -112,6 +112,7 @@
|
|||
Enabled: true
|
||||
Score: 50
|
||||
currCategory: 1
|
||||
currFood: 0
|
||||
density: 1
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -164,6 +165,7 @@
|
|||
Enabled: true
|
||||
Score: 50
|
||||
currCategory: 1
|
||||
currFood: 0
|
||||
density: 1
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -216,6 +218,7 @@
|
|||
Enabled: true
|
||||
Score: 500
|
||||
currCategory: 2
|
||||
currFood: 0
|
||||
density: 1
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -268,6 +271,7 @@
|
|||
Enabled: true
|
||||
Score: 500
|
||||
currCategory: 2
|
||||
currFood: 0
|
||||
density: 1
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -320,6 +324,7 @@
|
|||
Enabled: true
|
||||
Score: 10
|
||||
currCategory: 0
|
||||
currFood: 0
|
||||
density: 1
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -372,6 +377,7 @@
|
|||
Enabled: true
|
||||
Score: 10
|
||||
currCategory: 0
|
||||
currFood: 0
|
||||
density: 1
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -424,6 +430,7 @@
|
|||
Enabled: true
|
||||
Score: 10
|
||||
currCategory: 0
|
||||
currFood: 0
|
||||
density: 1
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -482,6 +489,7 @@
|
|||
Enabled: true
|
||||
Score: 10
|
||||
currCategory: 0
|
||||
currFood: 0
|
||||
density: 2
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -702,6 +710,7 @@
|
|||
Enabled: true
|
||||
Score: 50
|
||||
currCategory: 1
|
||||
currFood: 0
|
||||
density: 1
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -754,6 +763,7 @@
|
|||
Enabled: true
|
||||
Score: 10
|
||||
currCategory: 0
|
||||
currFood: 0
|
||||
density: 1
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -806,6 +816,7 @@
|
|||
Enabled: true
|
||||
Score: 10
|
||||
currCategory: 0
|
||||
currFood: 0
|
||||
density: 1
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -858,6 +869,7 @@
|
|||
Enabled: true
|
||||
Score: 10
|
||||
currCategory: 0
|
||||
currFood: 0
|
||||
density: 1
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -910,6 +922,7 @@
|
|||
Enabled: true
|
||||
Score: 500
|
||||
currCategory: 2
|
||||
currFood: 0
|
||||
density: 1
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -962,6 +975,7 @@
|
|||
Enabled: true
|
||||
Score: 50
|
||||
currCategory: 1
|
||||
currFood: 0
|
||||
density: 1
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -1014,6 +1028,7 @@
|
|||
Enabled: true
|
||||
Score: 50
|
||||
currCategory: 1
|
||||
currFood: 0
|
||||
density: 1
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -1066,6 +1081,7 @@
|
|||
Enabled: true
|
||||
Score: 50
|
||||
currCategory: 1
|
||||
currFood: 0
|
||||
density: 1
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -1118,6 +1134,7 @@
|
|||
Enabled: true
|
||||
Score: 10
|
||||
currCategory: 0
|
||||
currFood: 0
|
||||
density: 1
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -1170,6 +1187,7 @@
|
|||
Enabled: true
|
||||
Score: 10
|
||||
currCategory: 0
|
||||
currFood: 0
|
||||
density: 1
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -1222,6 +1240,7 @@
|
|||
Enabled: true
|
||||
Score: 10
|
||||
currCategory: 0
|
||||
currFood: 0
|
||||
density: 1
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -1274,6 +1293,7 @@
|
|||
Enabled: true
|
||||
Score: 10
|
||||
currCategory: 0
|
||||
currFood: 0
|
||||
density: 1
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -1326,6 +1346,7 @@
|
|||
Enabled: true
|
||||
Score: 10
|
||||
currCategory: 0
|
||||
currFood: 0
|
||||
density: 1
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -1378,6 +1399,7 @@
|
|||
Enabled: true
|
||||
Score: 10
|
||||
currCategory: 0
|
||||
currFood: 0
|
||||
density: 1
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -1430,6 +1452,7 @@
|
|||
Enabled: true
|
||||
Score: 50
|
||||
currCategory: 1
|
||||
currFood: 0
|
||||
density: 1
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -1482,6 +1505,7 @@
|
|||
Enabled: true
|
||||
Score: 500
|
||||
currCategory: 2
|
||||
currFood: 0
|
||||
density: 1
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -1534,6 +1558,7 @@
|
|||
Enabled: true
|
||||
Score: 10
|
||||
currCategory: 0
|
||||
currFood: 0
|
||||
density: 1
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -1586,6 +1611,7 @@
|
|||
Enabled: true
|
||||
Score: 10
|
||||
currCategory: 0
|
||||
currFood: 0
|
||||
density: 1
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -1638,6 +1664,7 @@
|
|||
Enabled: true
|
||||
Score: 10
|
||||
currCategory: 0
|
||||
currFood: 0
|
||||
density: 1
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -1696,6 +1723,7 @@
|
|||
Enabled: true
|
||||
Score: 500
|
||||
currCategory: 2
|
||||
currFood: 0
|
||||
density: 1
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -1748,6 +1776,7 @@
|
|||
Enabled: true
|
||||
Score: 50
|
||||
currCategory: 1
|
||||
currFood: 0
|
||||
density: 3
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -1800,6 +1829,7 @@
|
|||
Enabled: true
|
||||
Score: 50
|
||||
currCategory: 1
|
||||
currFood: 0
|
||||
density: 3
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -1852,6 +1882,7 @@
|
|||
Enabled: true
|
||||
Score: 10
|
||||
currCategory: 0
|
||||
currFood: 0
|
||||
density: 3
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -1904,6 +1935,7 @@
|
|||
Enabled: true
|
||||
Score: 10
|
||||
currCategory: 0
|
||||
currFood: 0
|
||||
density: 3
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -1956,6 +1988,7 @@
|
|||
Enabled: true
|
||||
Score: 10
|
||||
currCategory: 0
|
||||
currFood: 0
|
||||
density: 3
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -2014,6 +2047,7 @@
|
|||
Enabled: true
|
||||
Score: 500
|
||||
currCategory: 2
|
||||
currFood: 0
|
||||
density: 1
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -2066,6 +2100,7 @@
|
|||
Enabled: true
|
||||
Score: 50
|
||||
currCategory: 1
|
||||
currFood: 0
|
||||
density: 3
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -2118,6 +2153,7 @@
|
|||
Enabled: true
|
||||
Score: 50
|
||||
currCategory: 1
|
||||
currFood: 0
|
||||
density: 3
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -2170,6 +2206,7 @@
|
|||
Enabled: true
|
||||
Score: 10
|
||||
currCategory: 0
|
||||
currFood: 0
|
||||
density: 3
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -2222,6 +2259,7 @@
|
|||
Enabled: true
|
||||
Score: 10
|
||||
currCategory: 0
|
||||
currFood: 0
|
||||
density: 3
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -2274,6 +2312,7 @@
|
|||
Enabled: true
|
||||
Score: 10
|
||||
currCategory: 0
|
||||
currFood: 0
|
||||
density: 3
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -2332,6 +2371,7 @@
|
|||
Enabled: true
|
||||
Score: 10
|
||||
currCategory: 0
|
||||
currFood: 0
|
||||
density: 2
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -2558,6 +2598,7 @@
|
|||
Enabled: true
|
||||
Score: 10
|
||||
currCategory: 0
|
||||
currFood: 0
|
||||
density: 2
|
||||
dontReturn: false
|
||||
soundDistance: 10
|
||||
|
@ -2778,6 +2819,7 @@
|
|||
Scripts:
|
||||
- Type: ScoringZone
|
||||
Enabled: true
|
||||
startingParticleCount: 10
|
||||
- EID: 18
|
||||
Name: CollisionWall
|
||||
IsActive: true
|
||||
|
@ -2841,6 +2883,7 @@
|
|||
Scripts:
|
||||
- Type: ScoringZone
|
||||
Enabled: true
|
||||
startingParticleCount: 10
|
||||
- EID: 17
|
||||
Name: CollisionWall
|
||||
IsActive: true
|
||||
|
@ -3041,8 +3084,6 @@
|
|||
armLength: 2
|
||||
turnSpeedPitch: 0.200000003
|
||||
turnSpeedYaw: 0.400000006
|
||||
inverseXControls: true
|
||||
inverseYControls: false
|
||||
pitchUpperClamp: 45
|
||||
pitchLowerClamp: 5
|
||||
- EID: 9
|
||||
|
@ -5388,7 +5429,7 @@
|
|||
Freeze Position Y: false
|
||||
Freeze Position Z: false
|
||||
Freeze Rotation X: true
|
||||
Freeze Rotation Y: false
|
||||
Freeze Rotation Y: true
|
||||
Freeze Rotation Z: true
|
||||
IsActive: true
|
||||
Collider Component:
|
||||
|
@ -5396,7 +5437,7 @@
|
|||
- Is Trigger: false
|
||||
Collision Tag: 5
|
||||
Type: Box
|
||||
Half Extents: {x: 0.600000024, y: 1.79999995, z: 0.400000006}
|
||||
Half Extents: {x: 0.400000006, y: 1.79999995, z: 0.400000006}
|
||||
Friction: 0.400000006
|
||||
Bounciness: 0
|
||||
Density: 1
|
||||
|
@ -5425,9 +5466,6 @@
|
|||
Enabled: true
|
||||
currentStateName: ""
|
||||
currentAnimName: ""
|
||||
- Type: SHADE_Scripting.Gameplay.AIBehaviour.AIRework.RotateToVelocity
|
||||
Enabled: true
|
||||
rotationPerSecond: 5
|
||||
- Type: SHADE_Scripting.Gameplay.AIBehaviour.AIRework.AILineOfSight
|
||||
Enabled: true
|
||||
player: 2
|
||||
|
@ -5441,6 +5479,9 @@
|
|||
withinSight: false
|
||||
lastFoundPos: [0, 0, 0]
|
||||
lastFoundTimer: 0
|
||||
- Type: SHADE_Scripting.Gameplay.AIBehaviour.AIRework.RotateToVelocity
|
||||
Enabled: true
|
||||
rotationPerSecond: 5
|
||||
- EID: 10
|
||||
Name: Pause Canvas
|
||||
IsActive: false
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -38,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
|
||||
|
@ -55,6 +55,7 @@
|
|||
minScale: 1
|
||||
maxScale: 1.20000005
|
||||
duration: 1.5
|
||||
isActive: true
|
||||
- EID: 54
|
||||
Name: Main Menu Button Group
|
||||
IsActive: true
|
||||
|
@ -258,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
|
||||
|
@ -548,7 +549,6 @@
|
|||
sfxVolSlider: 30
|
||||
bgmVolSlider: 31
|
||||
fovSlider: 37
|
||||
sensitivitySlider: 38
|
||||
- EID: 20
|
||||
Name: BackGround
|
||||
IsActive: true
|
||||
|
@ -750,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
|
||||
|
@ -771,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
|
||||
|
@ -796,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
|
||||
|
@ -821,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
|
||||
|
@ -847,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}
|
||||
|
@ -882,28 +954,6 @@
|
|||
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: true
|
||||
|
@ -951,7 +1001,7 @@
|
|||
- EID: 36
|
||||
Name: Camera Slider Group
|
||||
IsActive: true
|
||||
NumberOfChildren: 4
|
||||
NumberOfChildren: 3
|
||||
Components:
|
||||
Transform Component:
|
||||
Translate: {x: 100, y: -200, z: 0}
|
||||
|
@ -967,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
|
||||
|
@ -988,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
|
||||
|
@ -1043,6 +1092,14 @@
|
|||
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: true
|
||||
|
@ -1072,6 +1129,14 @@
|
|||
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
|
||||
|
@ -1166,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}
|
||||
|
@ -1190,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}
|
||||
|
@ -1204,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
|
||||
|
@ -1401,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
|
||||
|
@ -1437,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
|
||||
|
@ -1497,9 +1537,9 @@
|
|||
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
|
||||
|
@ -1507,8 +1547,8 @@
|
|||
IsActive: true
|
||||
Button Component:
|
||||
Default Texture: 55897117
|
||||
Hovered Texture: 55897117
|
||||
Clicked Texture: 55897117
|
||||
Hovered Texture: 56658801
|
||||
Clicked Texture: 58281309
|
||||
IsActive: true
|
||||
UI Component:
|
||||
Canvas ID: 50
|
||||
|
@ -1519,15 +1559,24 @@
|
|||
- 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
|
||||
|
@ -1535,8 +1584,8 @@
|
|||
IsActive: true
|
||||
Button Component:
|
||||
Default Texture: 52151774
|
||||
Hovered Texture: 52151774
|
||||
Clicked Texture: 52151774
|
||||
Hovered Texture: 66730012
|
||||
Clicked Texture: 59730316
|
||||
IsActive: true
|
||||
UI Component:
|
||||
Canvas ID: 50
|
||||
|
@ -1547,15 +1596,24 @@
|
|||
- 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
|
||||
|
@ -1563,8 +1621,8 @@
|
|||
IsActive: true
|
||||
Button Component:
|
||||
Default Texture: 51704639
|
||||
Hovered Texture: 51704639
|
||||
Clicked Texture: 51704639
|
||||
Hovered Texture: 66852283
|
||||
Clicked Texture: 53081657
|
||||
IsActive: true
|
||||
UI Component:
|
||||
Canvas ID: 50
|
||||
|
@ -1575,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
|
||||
|
@ -1608,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: ~
|
|
@ -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: ~
|
|
@ -75,7 +75,7 @@ namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework
|
|||
{
|
||||
if (hit.Hit && hit.Other != player)
|
||||
{
|
||||
Debug.Log("AI LOS: HIT OTHER");
|
||||
//Debug.Log("AI LOS: HIT OTHER");
|
||||
withinSight = false;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -1,18 +1,16 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Reflection.PortableExecutable;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using SHADE;
|
||||
using SHADE_Scripting.Audio;
|
||||
using SHADE_Scripting.Gameplay.AIBehaviour.AIRework.States;
|
||||
|
||||
namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework
|
||||
{
|
||||
public class HomeOwnerAI:Script
|
||||
public class HomeOwnerAI : Script
|
||||
{
|
||||
public float idleDuration = 1.0f;
|
||||
public float caughtDuration = 2.0f;
|
||||
public float timeoutDuration = 2.0f;
|
||||
public GameObject patrolPointParent;
|
||||
|
||||
|
@ -22,17 +20,50 @@ namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework
|
|||
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)
|
||||
if (machine)
|
||||
{
|
||||
Dictionary<Type, BaseState> dictionary = new Dictionary<Type, BaseState>();
|
||||
dictionary.Add(typeof(IdleState), new IdleState(machine));
|
||||
|
@ -40,11 +71,37 @@ namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework
|
|||
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>();
|
||||
|
||||
|
||||
}
|
||||
|
@ -52,7 +109,7 @@ namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework
|
|||
|
||||
protected override void update()
|
||||
{
|
||||
if(alertCooldown > 0.0f)
|
||||
if (alertCooldown > 0.0f)
|
||||
{
|
||||
alertCooldown -= Time.DeltaTimeF;
|
||||
}
|
||||
|
@ -60,14 +117,7 @@ namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework
|
|||
{
|
||||
alertCooldown = 0.0f;
|
||||
}
|
||||
|
||||
RigidBody rigid = GetComponent<RigidBody>();
|
||||
if(rigid)
|
||||
{
|
||||
rigid.AngularVelocity = Vector3.Zero;
|
||||
}
|
||||
|
||||
|
||||
AICheat();
|
||||
}
|
||||
|
||||
public bool ShouldTransitAlert()
|
||||
|
@ -100,6 +150,27 @@ namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework
|
|||
|
||||
}
|
||||
|
||||
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));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
Name: HomeOwnerAttackHitbox
|
||||
ID: 164649501
|
||||
Type: 9
|
|
@ -11,23 +11,73 @@ namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework
|
|||
{
|
||||
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;
|
||||
|
||||
if(vel.GetSqrMagnitude() > 1.0f)
|
||||
|
||||
AILineOfSight los = GetScript<AILineOfSight>();
|
||||
if(los && rotateToPlayerLastKnown)
|
||||
{
|
||||
Vector3 direction = los.lastFoundPos - transform.GlobalPosition;
|
||||
Quaternion currentRotation = transform.LocalRotation;
|
||||
Quaternion targetRotation = Quaternion.Euler(0.0f, MathF.Atan2(direction.x, direction.z) + lookOffset, 0.0f);
|
||||
transform.LocalRotation = Quaternion.Slerp(currentRotation, targetRotation, rotationPerSecond * (float)Time.DeltaTimeF);
|
||||
return;
|
||||
}
|
||||
if(vel.GetMagnitude() > 0.01f)
|
||||
{
|
||||
Quaternion currentRotation = transform.LocalRotation;
|
||||
Quaternion targetRotation = Quaternion.Euler(0.0f, MathF.Atan2(vel.x, vel.z), 0.0f);
|
||||
transform.LocalRotation = Quaternion.Slerp(currentRotation, targetRotation, rotationPerSecond * (float)Time.FixedDeltaTime);
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
using System;
|
||||
using SHADE;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
@ -10,11 +11,12 @@ namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework.States
|
|||
{
|
||||
|
||||
protected HomeOwnerAI ai;
|
||||
|
||||
protected Animator animator;
|
||||
public AIBaseState(StateMachine stateMachine): base(stateMachine, "")
|
||||
{
|
||||
stateName = "AI Base State";
|
||||
ai = stateMachine.GetScript<HomeOwnerAI>();
|
||||
animator = stateMachine.GetComponent<Animator>();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,26 +1,63 @@
|
|||
using SHADE;
|
||||
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
|
||||
public class AlertState : AIBaseState
|
||||
{
|
||||
const float alertDuration = 2.0f;
|
||||
const float alertDuration = 16.0f / 30.0f + 1.0f;
|
||||
float alertTimer = alertDuration;
|
||||
|
||||
|
||||
public AlertState(StateMachine machine): base(machine)
|
||||
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()
|
||||
|
@ -30,9 +67,12 @@ namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework.States
|
|||
{
|
||||
machine.SetState(typeof(ChaseState));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public override void fixedUpdate()
|
||||
{
|
||||
|
||||
|
|
|
@ -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()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
Name: AttackState
|
||||
ID: 156854236
|
||||
Type: 9
|
|
@ -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()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
Name: CaughtRaccoonState
|
||||
ID: 153010954
|
||||
Type: 9
|
|
@ -1,4 +1,6 @@
|
|||
using SHADE;
|
||||
using SHADE.Test;
|
||||
using SHADE_Scripting.Audio;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
@ -12,23 +14,80 @@ namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework.States
|
|||
|
||||
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>();
|
||||
if(los && nav)
|
||||
RigidBody rigid = machine.GetComponent<RigidBody>();
|
||||
if (los && nav)
|
||||
{
|
||||
Transform playerTransform = los.player.GetComponent<Transform>();
|
||||
if (los.withinSight)
|
||||
|
@ -45,13 +104,18 @@ namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework.States
|
|||
machine.SetState(typeof(TimeoutState));
|
||||
}
|
||||
|
||||
RigidBody rigid = machine.GetComponent<RigidBody>();
|
||||
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.patrolSpeed;
|
||||
rigid.LinearVelocity = nav.GetForward() * ai.chaseSpeed;
|
||||
}
|
||||
|
||||
if(nav.ReachedTarget())
|
||||
|
@ -59,12 +123,44 @@ namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework.States
|
|||
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()
|
||||
|
|
|
@ -23,6 +23,23 @@ namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework.States
|
|||
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()
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
using SHADE;
|
||||
using SHADE_Scripting.Audio;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
@ -13,8 +14,11 @@ namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework.States
|
|||
Random rand;
|
||||
Vector3 lastFramePos;
|
||||
|
||||
float stuckTimer ;
|
||||
float stuckTimer;
|
||||
bool run = true;
|
||||
|
||||
float footStepInterval = 12.0f / 30.0f;
|
||||
float footStepTimer = 0.0f;
|
||||
|
||||
public PatrolState(StateMachine machine) : base(machine)
|
||||
{
|
||||
|
@ -34,7 +38,7 @@ namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework.States
|
|||
if (dest)
|
||||
{
|
||||
nav.MoveTo(dest.GlobalPosition);
|
||||
Debug.Log("Moving to" + dest.GlobalPosition.ToString());
|
||||
|
||||
}
|
||||
|
||||
lastFramePos = transform.GlobalPosition;
|
||||
|
@ -42,6 +46,26 @@ namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework.States
|
|||
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()
|
||||
|
@ -55,7 +79,7 @@ namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework.States
|
|||
Vector3 d = lastFramePos - transform.GlobalPosition;
|
||||
if (d.GetSqrMagnitude() < 0.001f)
|
||||
{
|
||||
stuckTimer += Time.DeltaTimeF;
|
||||
//stuckTimer += Time.DeltaTimeF;
|
||||
}
|
||||
|
||||
|
||||
|
@ -75,7 +99,12 @@ namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework.States
|
|||
{
|
||||
machine.SetState(typeof(AlertState));
|
||||
}
|
||||
|
||||
footStepTimer -= Time.DeltaTimeF;
|
||||
if(footStepTimer <= 0.0f)
|
||||
{
|
||||
footStepTimer += footStepInterval;
|
||||
AudioHandler.audioClipHandlers["HO_footsteps"].Play();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -4,13 +4,14 @@ 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 = 10.0f;
|
||||
float alertCooldown = 1.0f;
|
||||
|
||||
public TimeoutState(StateMachine machine) : base(machine)
|
||||
{
|
||||
|
@ -21,6 +22,11 @@ namespace SHADE_Scripting.Gameplay.AIBehaviour.AIRework.States
|
|||
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()
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
|
@ -1,5 +1,6 @@
|
|||
using SHADE;
|
||||
using SHADE_Scripting.Audio;
|
||||
using SHADE_Scripting.Gameplay.AIBehaviour.AIRework;
|
||||
using System;
|
||||
public class Item : Script
|
||||
{
|
||||
|
@ -26,16 +27,12 @@ public class Item : Script
|
|||
public bool returnBack { get; set; }
|
||||
private Transform transform;
|
||||
private RigidBody rb;
|
||||
private bool playSound = false;
|
||||
private bool caputurePos = false;
|
||||
private Vector3 firstPostion;
|
||||
private Vector3 firstRotation;
|
||||
private Collider collider;
|
||||
public float density = 1.0f;
|
||||
public bool dontReturn = false;
|
||||
private bool once = true;
|
||||
|
||||
|
||||
private bool checkSound = false;
|
||||
private bool homeownerOnce = true;
|
||||
public float soundDistance = 10;
|
||||
|
||||
|
@ -52,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)
|
||||
|
@ -65,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>();
|
||||
}
|
||||
|
||||
|
@ -119,19 +118,6 @@ public class Item : Script
|
|||
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)
|
||||
|
@ -144,25 +130,21 @@ public class Item : Script
|
|||
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"]);
|
||||
|
||||
Debug.Log("ENTER");
|
||||
if(emitter)
|
||||
if (emitter)
|
||||
emitter.Emit();
|
||||
|
||||
once = false;
|
||||
}
|
||||
|
||||
if (info.GameObject.GetScript<Homeowner1>() && homeownerOnce)
|
||||
|
||||
if (info.GameObject.GetScript<HomeOwnerAI>() && homeownerOnce)
|
||||
{
|
||||
homeownerOnce = false;
|
||||
returnBack = true;
|
||||
|
@ -171,9 +153,8 @@ public class Item : Script
|
|||
|
||||
protected override void onCollisionExit(CollisionInfo info)
|
||||
{
|
||||
playSound = true;
|
||||
checkSound = true;
|
||||
homeownerOnce = true;
|
||||
once = true;
|
||||
}
|
||||
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
using SHADE;
|
||||
using SHADE;
|
||||
using SHADE_Scripting;
|
||||
using SHADE_Scripting.Audio;
|
||||
using System;
|
||||
|
@ -212,6 +212,14 @@ public class PickAndThrow : Script
|
|||
}
|
||||
}
|
||||
|
||||
public void SetItemGravityBack()
|
||||
{
|
||||
if(itemRidigBody)
|
||||
itemRidigBody.IsGravityEnabled = true;
|
||||
if(itemCollider)
|
||||
itemCollider.GetCollisionShape(0).IsTrigger = false;
|
||||
}
|
||||
|
||||
public void ResetItemObject()
|
||||
{
|
||||
itemRidigBody = null;
|
||||
|
@ -466,7 +474,7 @@ public class PickAndThrow : Script
|
|||
}
|
||||
}
|
||||
|
||||
private void TweenAimCamArm(bool aim)
|
||||
public void TweenAimCamArm(bool aim)
|
||||
{
|
||||
|
||||
if (aim)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
using SHADE;
|
||||
using SHADE;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using SHADE_Scripting.Audio;
|
||||
|
@ -22,7 +22,10 @@ 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; }
|
||||
|
@ -122,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));
|
||||
|
@ -189,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);
|
||||
}
|
||||
|
@ -227,7 +234,7 @@ public class PlayerController : Script
|
|||
}
|
||||
}
|
||||
|
||||
GotCaught();
|
||||
|
||||
Rotation();
|
||||
MoveKey();
|
||||
Sprint();
|
||||
|
@ -254,6 +261,10 @@ public class PlayerController : Script
|
|||
|
||||
private void MoveKey()
|
||||
{
|
||||
|
||||
if (currentState == RaccoonStates.CAUGHT)
|
||||
return;
|
||||
|
||||
axisMove = Vector2.Zero;
|
||||
if (Input.GetKey(Input.KeyCode.W))
|
||||
{
|
||||
|
@ -290,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;
|
||||
|
||||
|
@ -334,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));
|
||||
|
||||
if (pat && holdItem)
|
||||
{
|
||||
holdItem = false;
|
||||
isAiming = false;
|
||||
cam.FOV = Settings.cameraFOV;
|
||||
pat.TweenAimCamArm(false);
|
||||
pat.SetItemGravityBack();
|
||||
pat.ResetItemObject();
|
||||
}
|
||||
|
||||
if (!sprintIncreaseOnce)
|
||||
{
|
||||
sprintIncreaseOnce = true;
|
||||
|
@ -417,11 +440,14 @@ public class PlayerController : Script
|
|||
}
|
||||
|
||||
if (!isGrounded && rb != null && (rb.LinearVelocity.y < 0.0f || Input.GetKeyUp(Input.KeyCode.Space)))
|
||||
{
|
||||
if (currentState != RaccoonStates.CAUGHT)
|
||||
{
|
||||
currentState = RaccoonStates.FALLING;
|
||||
if (stateMachine && !stateMachine.IsState(typeof(PlayerFallState)))
|
||||
stateMachine.SetState(typeof(PlayerFallState));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -445,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
|
||||
|
@ -496,25 +525,22 @@ public class PlayerController : Script
|
|||
}
|
||||
}
|
||||
|
||||
private void GotCaught()
|
||||
{
|
||||
if (currentState == RaccoonStates.CAUGHT && tranform && respawnPoint)
|
||||
|
||||
public void Caught()
|
||||
{
|
||||
currentState = RaccoonStates.CAUGHT;
|
||||
if (stateMachine && !stateMachine.IsState(typeof(PlayerCaughtState)))
|
||||
stateMachine.SetState(typeof(PlayerCaughtState));
|
||||
|
||||
AudioHandler.audioClipHandlers["RaccoonCaught"].Play();
|
||||
currentState = RaccoonStates.IDLE;
|
||||
if (stateMachine && !stateMachine.IsState(typeof(PlayerIdleState)))
|
||||
stateMachine.SetState(typeof(PlayerIdleState));
|
||||
tranform.LocalPosition = respawnPoint.GetComponent<Transform>().LocalPosition;
|
||||
|
||||
GameManager.Instance.RacoonCaught();
|
||||
|
||||
if (pat && pat.item)
|
||||
{
|
||||
if (holdItem)
|
||||
{
|
||||
holdItem = false;
|
||||
Debug.Log("PLAYER RETURN");
|
||||
pat.item.GetScript<Item>().returnBack = true;
|
||||
pat.SetItemGravityBack();
|
||||
pat.ResetItemObject();
|
||||
}
|
||||
if (isAiming)
|
||||
{
|
||||
|
@ -524,6 +550,29 @@ public class PlayerController : Script
|
|||
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));
|
||||
|
||||
collider.GetCollisionShape(0).IsTrigger = false;
|
||||
tranform.GlobalPosition = respawnPoint.GetComponent<Transform>().GlobalPosition;
|
||||
|
||||
GameManager.Instance.RacoonCaught();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
Name: SC_DecorationAudio
|
||||
ID: 166447267
|
||||
Type: 9
|
|
@ -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}";
|
||||
|
@ -91,6 +96,7 @@ public class GameManager : Script
|
|||
|
||||
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()
|
||||
|
@ -103,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;
|
||||
|
@ -123,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)
|
||||
{
|
||||
|
@ -135,67 +143,45 @@ 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);
|
||||
|
||||
if (timer <= 0)
|
||||
AudioHandler.audioClipHandlers["BGMLose"].Play();
|
||||
goingToLose = true;
|
||||
if (SceneFadeInOut.Instance != null)
|
||||
SceneFadeInOut.Instance.CallFadeIn();
|
||||
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)
|
||||
{
|
||||
|
||||
if (SceneFadeInOut.Instance && SceneFadeInOut.Instance.FadeInFinished() && waitForTransition)
|
||||
SceneManager.ChangeScene(winScene);
|
||||
}
|
||||
if (goingToLose)
|
||||
{
|
||||
SceneManager.ChangeScene(loseScene);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (goingToWin)
|
||||
{
|
||||
SceneManager.ChangeScene(winScene);
|
||||
}
|
||||
if (goingToLose)
|
||||
{
|
||||
SceneManager.ChangeScene(loseScene);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void RacoonCaught()
|
||||
{
|
||||
timer -= 10.0f;
|
||||
if(minusTimerText != GameObject.Null)
|
||||
if (minusTimerText != GameObject.Null)
|
||||
{
|
||||
MinusTimerText text =minusTimerText.GetScript<MinusTimerText>();
|
||||
if(text)
|
||||
MinusTimerText text = minusTimerText.GetScript<MinusTimerText>();
|
||||
if (text)
|
||||
{
|
||||
text.Reset();
|
||||
}
|
||||
|
@ -206,19 +192,10 @@ public class GameManager : Script
|
|||
{
|
||||
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();
|
||||
}
|
||||
|
@ -245,23 +222,35 @@ public class GameManager : Script
|
|||
currMultiplierDuration = 0;
|
||||
|
||||
if (currMultiplierCombo < maxMultiplierCombo)
|
||||
{
|
||||
currMultiplierCombo += 1;
|
||||
if (currMultiplierCombo > MaxComboAccquired)
|
||||
MaxComboAccquired = currMultiplierCombo;
|
||||
}
|
||||
|
||||
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();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -22,7 +22,11 @@ public class ScoringZone : Script
|
|||
{
|
||||
if (GameManager.Instance && info.GameObject.GetScript<Item>() && info.GameObject.IsActiveSelf && !info.GameObject.GetComponent<Collider>().GetCollisionShape(0).IsTrigger )
|
||||
{
|
||||
if (GameManager.Instance.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();
|
||||
|
|
|
@ -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
|
||||
{
|
||||
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
|
||||
{
|
||||
|
@ -50,6 +52,14 @@ public static class EasingHelper
|
|||
{
|
||||
return value;
|
||||
}
|
||||
case EASING_METHOD.EASE_OUT_CIRCLE:
|
||||
{
|
||||
return EaseOutCircle(value);
|
||||
}
|
||||
case EASING_METHOD.EASE_OUT_BACK:
|
||||
{
|
||||
return EaseOutBack(value);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -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>();
|
||||
|
|
|
@ -7,7 +7,8 @@ public class ChangeSceneButton : Script
|
|||
{
|
||||
public uint sceneID = 0;
|
||||
|
||||
//Whether the scene changing button has been clicked
|
||||
public GameObject levelTransistion;
|
||||
|
||||
private bool clickedFlag;
|
||||
|
||||
protected override void awake()
|
||||
|
@ -26,9 +27,8 @@ public class ChangeSceneButton : Script
|
|||
{
|
||||
Audio.PlaySFXOnce2D("event:/UI/success");
|
||||
Audio.StopAllSounds();
|
||||
if (SceneFadeInOut.Instance != null)
|
||||
SceneFadeInOut.Instance.CallFadeIn();
|
||||
clickedFlag = true;
|
||||
levelTransistion.SetActive(true);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -39,7 +39,7 @@ public class ChangeSceneButton : Script
|
|||
}
|
||||
protected override void update()
|
||||
{
|
||||
if (clickedFlag && sceneID != 0 && SceneFadeInOut.Instance.FadeInFinished())
|
||||
if (levelTransistion.GetScript<LevelTransistion>().complete && clickedFlag)
|
||||
{
|
||||
SceneManager.ChangeScene(sceneID);
|
||||
}
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -82,6 +82,9 @@ public class CutsceneIntro : Script
|
|||
private bool cutscene2Done = false;
|
||||
private bool cutscene3Done = false;
|
||||
|
||||
public GameObject levelTransition;
|
||||
private bool waiting = false;
|
||||
|
||||
protected override void awake()
|
||||
{
|
||||
initCutscene1();
|
||||
|
@ -109,6 +112,9 @@ public class CutsceneIntro : Script
|
|||
|
||||
protected override void update()
|
||||
{
|
||||
if (!levelTransition.GetScript<LevelTransistion>().complete)
|
||||
return;
|
||||
|
||||
Canvas1();
|
||||
Canvas2();
|
||||
Canvas3();
|
||||
|
@ -148,8 +154,12 @@ public class CutsceneIntro : Script
|
|||
|
||||
if (Input.GetKeyUp(Input.KeyCode.Space) && cutscene3Done && canvas3.IsActiveSelf)
|
||||
{
|
||||
SceneManager.ChangeScene(nextScene);
|
||||
levelTransition.GetScript<LevelTransistion>().resetToLeft();
|
||||
waiting = true;
|
||||
}
|
||||
|
||||
if (levelTransition.GetScript<LevelTransistion>().complete && waiting)
|
||||
SceneManager.ChangeScene(nextScene);
|
||||
}
|
||||
|
||||
private void Canvas1()
|
||||
|
|
|
@ -0,0 +1,57 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using SHADE;
|
||||
|
||||
namespace SHADE_Scripting.UI
|
||||
{
|
||||
public class GameTimer: Script
|
||||
{
|
||||
private ScaleBounce scaleBounce;
|
||||
private TextRenderable text;
|
||||
public float criticalTime = 30;
|
||||
|
||||
public float timer;
|
||||
|
||||
|
||||
protected override void awake()
|
||||
{
|
||||
text = GetComponent<TextRenderable>();
|
||||
if(!text)
|
||||
{
|
||||
Debug.Log("GameTimer: No text renderable found");
|
||||
}
|
||||
|
||||
scaleBounce = GetScript<ScaleBounce>();
|
||||
if(!scaleBounce)
|
||||
{
|
||||
Debug.Log("GameTimer: No Scalebounce found in children");
|
||||
}
|
||||
else
|
||||
{
|
||||
scaleBounce.isActive = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
protected override void update()
|
||||
{
|
||||
timer = GameManager.Instance.timer;
|
||||
|
||||
if (timer <= criticalTime)
|
||||
{
|
||||
scaleBounce.isActive = true;
|
||||
text.TextColor = new Color(1.0f, 0.0f, 0.0f, 1.0f);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
Name: SC_GameTimer
|
||||
ID: 158823052
|
||||
Type: 9
|
|
@ -12,6 +12,7 @@ public class InverseCamera : Script
|
|||
public bool inverseX = false;
|
||||
public bool inverseY = false;
|
||||
|
||||
|
||||
protected override void awake()
|
||||
{
|
||||
UIElement ui = GetComponent<UIElement>();
|
||||
|
@ -29,19 +30,17 @@ public class InverseCamera : Script
|
|||
Debug.LogError("Failed to register Toggle action for inverse");
|
||||
}
|
||||
}
|
||||
protected override void start()
|
||||
protected override void update()
|
||||
{
|
||||
UIElement ui = GetComponent<UIElement>();
|
||||
if (ui)
|
||||
{
|
||||
ui.OnClick.RegisterAction(() =>
|
||||
{
|
||||
Toggle toggle = ui.GetComponent<Toggle>();
|
||||
if(inverseX)
|
||||
|
||||
if (inverseX)
|
||||
Settings.inverseX = toggle.GetValue();
|
||||
if(inverseY)
|
||||
if (inverseY)
|
||||
Settings.inverseY = toggle.GetValue();
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -0,0 +1,91 @@
|
|||
using SHADE;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
public class LevelTransistion : Script
|
||||
{
|
||||
|
||||
public GameObject logo;
|
||||
public GameObject bg;
|
||||
public float duration = 2.0f;
|
||||
public float bgEndPositionX = 2500;
|
||||
public float logoEndPositionX = 2500;
|
||||
|
||||
public bool rotAndScale = true;
|
||||
public float rotationAmt = 360;
|
||||
public float scaleAmt = 631;
|
||||
|
||||
public bool complete { get; set; }
|
||||
|
||||
private Transform logoTran;
|
||||
private Transform bgTran;
|
||||
|
||||
private TweenThread bgTween;
|
||||
private TweenThread logoTween;
|
||||
private TweenThread rot;
|
||||
private TweenThread scale;
|
||||
|
||||
protected override void awake()
|
||||
{
|
||||
logoTran = logo.GetComponent<Transform>();
|
||||
if (!logoTran)
|
||||
Debug.LogError("MISSING LOGO TRAN");
|
||||
|
||||
bgTran = bg.GetComponent<Transform>();
|
||||
if (!bgTran)
|
||||
Debug.LogError("MISSING BG TRAN");
|
||||
|
||||
complete = false;
|
||||
}
|
||||
|
||||
protected override void start()
|
||||
{
|
||||
bgTween = TweenManager.CreateTweenThread(duration, bgTran.LocalPosition.x, bgEndPositionX, EASING_METHOD.EASE_OUT_CIRCLE);
|
||||
logoTween = TweenManager.CreateTweenThread(duration , logoTran.LocalPosition.x, logoEndPositionX, EASING_METHOD.EASE_OUT_CIRCLE);
|
||||
rot = TweenManager.CreateTweenThread(duration , 0, rotationAmt, EASING_METHOD.EASE_OUT_BACK);
|
||||
scale = TweenManager.CreateTweenThread(duration, 0, scaleAmt, EASING_METHOD.EASE_OUT_BACK);
|
||||
}
|
||||
|
||||
protected override void update()
|
||||
{
|
||||
if (bgTween != null)
|
||||
bgTran.LocalPosition = new Vector3(bgTween.GetValue(), 0, bgTran.LocalPosition.z);
|
||||
|
||||
if (rotAndScale)
|
||||
{
|
||||
logoTran.LocalScale = new Vector3(scale.GetValue(), scale.GetValue(), 1);
|
||||
logoTran.LocalEulerAngles = new Vector3(0, 0, SHADE.Math.DegreesToRadians(rot.GetValue()));
|
||||
}
|
||||
else
|
||||
{
|
||||
logoTran.LocalPosition = new Vector3(logoTween.GetValue(), 0, logoTran.LocalPosition.z);
|
||||
}
|
||||
|
||||
if (bgTween.IsCompleted() && logoTween.IsCompleted())
|
||||
complete = true;
|
||||
}
|
||||
|
||||
public void resetToLeft()
|
||||
{
|
||||
logoTran.LocalEulerAngles = Vector3.Zero;
|
||||
logoTran.LocalPosition = Vector3.Zero;
|
||||
logoTran.LocalScale = Vector3.Zero;
|
||||
bgTween.duration = 0.8f;
|
||||
bgTween.Reset(-3000.0f,0.0f);
|
||||
logoTween.duration = 0.8f;
|
||||
logoTween.Reset();
|
||||
rot.duration = 0.8f;
|
||||
rot.Reset();
|
||||
scale.duration = 0.8f;
|
||||
scale.Reset();
|
||||
complete = false;
|
||||
rotAndScale = true;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
Name: SC_LevelTransistion
|
||||
ID: 158044875
|
||||
Type: 9
|
|
@ -26,6 +26,7 @@ public class MainMenu : Script
|
|||
{
|
||||
Input.SetMouseCentering(false);
|
||||
Application.IsCursorVisible = true;
|
||||
if(SceneFadeInOut.Instance)
|
||||
SceneFadeInOut.Instance.CallFadeOut();
|
||||
}
|
||||
protected override void update()
|
||||
|
|
|
@ -3,6 +3,7 @@ using System;
|
|||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SHADE_Scripting.UI
|
||||
|
@ -12,83 +13,58 @@ namespace SHADE_Scripting.UI
|
|||
[NonSerialized]
|
||||
private TweenThread sizeThread;
|
||||
private TweenThread sizeInvertThread;
|
||||
private TweenThread alphaThread;
|
||||
|
||||
|
||||
|
||||
public float maxSize = 1.0f;
|
||||
public float minSize = 0.3f;
|
||||
public float minAlpha = 0.3f;
|
||||
|
||||
|
||||
private bool showMultiplier = false;
|
||||
const float sizeUpDuration = 0.1f;
|
||||
|
||||
[NonSerialized]
|
||||
private Vector3 defaultScale;
|
||||
|
||||
private bool tweenUp = false;
|
||||
|
||||
protected override void start()
|
||||
{
|
||||
sizeThread = TweenManager.CreateTweenThread(0.0f, maxSize, minSize, EASING_METHOD.EASE_IN_SINE);
|
||||
sizeThread = TweenManager.CreateTweenThread(0.01f, maxSize, minSize, EASING_METHOD.EASE_IN_SINE);
|
||||
sizeInvertThread = TweenManager.CreateTweenThread(sizeUpDuration, minSize, maxSize, EASING_METHOD.EASE_IN_SINE);
|
||||
alphaThread = TweenManager.CreateTweenThread(0.0f, 1.0f, minAlpha, EASING_METHOD.EASE_OUT_SINE);
|
||||
|
||||
Transform transform = GetComponent<Transform>();
|
||||
if (transform != null)
|
||||
{
|
||||
defaultScale = transform.LocalScale;
|
||||
transform.LocalScale = Vector3.Zero;
|
||||
}
|
||||
|
||||
|
||||
showMultiplier = false;
|
||||
|
||||
}
|
||||
|
||||
protected override void update()
|
||||
{
|
||||
|
||||
if (sizeThread == null || sizeInvertThread == null)
|
||||
return;
|
||||
|
||||
Transform transform = GetComponent<Transform>();
|
||||
|
||||
GetComponent<TextRenderable>().Text = $"X {GameManager.Instance.currMultiplierCombo}";
|
||||
|
||||
if (transform != null && showMultiplier == true)
|
||||
if (transform != null)
|
||||
{
|
||||
if(!sizeInvertThread.IsCompleted())
|
||||
if (tweenUp == false)
|
||||
{
|
||||
transform.LocalScale = defaultScale * sizeInvertThread.GetValue();
|
||||
|
||||
Renderable rend = GetComponentInChildren<Renderable>();
|
||||
if(rend)
|
||||
{
|
||||
rend.Material.SetProperty<float>("data.alpha", 1.0f);
|
||||
}
|
||||
|
||||
TextRenderable text = GetComponent<TextRenderable>();
|
||||
if (text)
|
||||
{
|
||||
Color clr = text.TextColor;
|
||||
text.TextColor = new Color(clr.r, clr.g, clr.b, 1.0f);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if(sizeThread.IsCompleted())
|
||||
{
|
||||
transform.LocalScale = Vector3.Zero;
|
||||
showMultiplier = false;
|
||||
transform.LocalScale = defaultScale * sizeThread.GetValue();
|
||||
}
|
||||
else
|
||||
{
|
||||
transform.LocalScale = defaultScale * sizeThread.GetValue();
|
||||
if (sizeInvertThread.IsCompleted())
|
||||
{
|
||||
tweenUp = false;
|
||||
sizeThread.Reset();
|
||||
}
|
||||
|
||||
transform.LocalScale = defaultScale * sizeInvertThread.GetValue();
|
||||
|
||||
Renderable rend = GetComponentInChildren<Renderable>();
|
||||
if (rend)
|
||||
{
|
||||
rend.Material.SetProperty<float>("data.alpha", alphaThread.GetValue());
|
||||
}
|
||||
TextRenderable text = GetComponent<TextRenderable>();
|
||||
if(text)
|
||||
{
|
||||
Color clr = text.TextColor;
|
||||
text.TextColor = new Color(clr.r,clr.g,clr.b,alphaThread.GetValue() * 1.3f);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -96,14 +72,11 @@ namespace SHADE_Scripting.UI
|
|||
|
||||
public void ShowMultiplier(int multiplier, float duration)
|
||||
{
|
||||
GetComponent<TextRenderable>().Text = $"X {multiplier}";
|
||||
sizeThread.duration = duration + sizeUpDuration;
|
||||
alphaThread.duration = duration + sizeUpDuration;
|
||||
|
||||
sizeInvertThread.Reset();
|
||||
sizeThread.Reset();
|
||||
alphaThread.Reset();
|
||||
showMultiplier = true;
|
||||
tweenUp = true;
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -13,7 +13,6 @@ namespace SHADE_Scripting.UI
|
|||
public GameObject sfxVolSlider;
|
||||
public GameObject bgmVolSlider;
|
||||
public GameObject fovSlider;
|
||||
public GameObject sensitivitySlider;
|
||||
|
||||
protected override void awake()
|
||||
{
|
||||
|
@ -21,7 +20,6 @@ namespace SHADE_Scripting.UI
|
|||
Slider sfx = sfxVolSlider.GetComponent<Slider>();
|
||||
Slider bgm = bgmVolSlider.GetComponent<Slider>();
|
||||
Slider fov = fovSlider.GetComponent<Slider>();
|
||||
Slider sens = sensitivitySlider.GetComponent<Slider>();
|
||||
|
||||
if (mv != null)
|
||||
{
|
||||
|
@ -42,12 +40,6 @@ namespace SHADE_Scripting.UI
|
|||
fov.ScaledValue = Settings.cameraFOV;
|
||||
|
||||
}
|
||||
if (sens != null)
|
||||
{
|
||||
sens.ScaledValue = Settings.cameraSensitivity;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
@ -58,7 +50,6 @@ namespace SHADE_Scripting.UI
|
|||
Slider sfx = sfxVolSlider.GetComponent<Slider>();
|
||||
Slider bgm = bgmVolSlider.GetComponent<Slider>();
|
||||
Slider fov = fovSlider.GetComponent<Slider>();
|
||||
Slider sens = sensitivitySlider.GetComponent<Slider>();
|
||||
|
||||
if (mv != null)
|
||||
{
|
||||
|
@ -80,11 +71,6 @@ namespace SHADE_Scripting.UI
|
|||
{
|
||||
Settings.cameraFOV = fov.ScaledValue;
|
||||
}
|
||||
if (sens != null)
|
||||
{
|
||||
Settings.cameraSensitivity = sens.ScaledValue;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,111 @@
|
|||
using SHADE;
|
||||
using SHADE_Scripting.UI;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
public class Results : Script
|
||||
{
|
||||
public GameObject score;
|
||||
public GameObject timeLeft;
|
||||
public GameObject maxCombo;
|
||||
public GameObject finalScore;
|
||||
public GameObject contiuneBtn;
|
||||
public GameObject levelTransition;
|
||||
public uint nextScene;
|
||||
public float scoreTweenDur = 2.0f;
|
||||
|
||||
private TextRenderable scoreText;
|
||||
private TextRenderable timeLeftText;
|
||||
private TextRenderable maxComboText;
|
||||
private TextRenderable finalScoreText;
|
||||
|
||||
private int scoreCount = 0;
|
||||
private bool once = true;
|
||||
|
||||
[NonSerialized]
|
||||
private TweenThread scoreTween;
|
||||
|
||||
private bool waitForTransition;
|
||||
protected override void awake()
|
||||
{
|
||||
scoreText = score.GetComponent<TextRenderable>();
|
||||
if (!scoreText)
|
||||
Debug.LogError("MISSING SCORE TEXT");
|
||||
|
||||
timeLeftText = timeLeft.GetComponent<TextRenderable>();
|
||||
if (!timeLeftText)
|
||||
Debug.LogError("MISSING TIME LEFT TEXT");
|
||||
|
||||
maxComboText = maxCombo.GetComponent<TextRenderable>();
|
||||
if (!maxComboText)
|
||||
Debug.LogError("MISSING MAX COMBO TEXT");
|
||||
|
||||
finalScoreText = finalScore.GetComponent<TextRenderable>();
|
||||
if (!finalScoreText)
|
||||
Debug.LogError("MISSING FINAL SCORE TEXT");
|
||||
|
||||
if (!contiuneBtn)
|
||||
Debug.LogError("MISSING CONTIUNE BTN");
|
||||
else
|
||||
contiuneBtn.SetActive(false);
|
||||
|
||||
waitForTransition = false;
|
||||
}
|
||||
|
||||
protected override void start()
|
||||
{
|
||||
scoreCount = GameManager.Instance.Score + (GameManager.Instance.finalTime * 100);
|
||||
|
||||
if(scoreText)
|
||||
scoreText.Text = $"{GameManager.Instance.Score}";
|
||||
if (timeLeftText)
|
||||
timeLeftText.Text = $"{GameManager.Instance.finalTime}s";
|
||||
if (maxComboText)
|
||||
maxComboText.Text = $"X{GameManager.Instance.MaxComboAccquired}";
|
||||
if (finalScoreText)
|
||||
finalScoreText.Text = $"{scoreCount}";
|
||||
|
||||
UIElement contiune = contiuneBtn.GetComponent<UIElement>();
|
||||
if (contiune != null)
|
||||
{
|
||||
contiune.OnRelease.RegisterAction(() =>
|
||||
{
|
||||
levelTransition.GetScript<LevelTransistion>().resetToLeft();
|
||||
waitForTransition = true;
|
||||
|
||||
GameManager.Instance.GamePause = false;
|
||||
Application.FixDeltaTime = Time.DefaultFixDeltaTime;
|
||||
AnimationSystem.TimeScale = AnimationSystem.DefaultTimeScale;
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogError("Failed to register contiune button.");
|
||||
}
|
||||
|
||||
scoreTween = TweenManager.CreateTweenThread(scoreTweenDur, 0, scoreCount, EASING_METHOD.EASE_IN_SINE);
|
||||
}
|
||||
|
||||
protected override void update()
|
||||
{
|
||||
if (levelTransition.GetScript<LevelTransistion>().complete && waitForTransition)
|
||||
{
|
||||
Audio.StopAllSounds();
|
||||
SceneManager.ChangeScene(nextScene);
|
||||
}
|
||||
|
||||
if (finalScoreText && !scoreTween.IsCompleted())
|
||||
finalScoreText.Text = $"{(int)scoreTween.GetValue()}";
|
||||
else if(scoreTween.IsCompleted() && once)
|
||||
{
|
||||
contiuneBtn.SetActive(true);
|
||||
finalScoreText.Text = $"{scoreCount}";
|
||||
once = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
Name: SC_Results
|
||||
ID: 154482040
|
||||
Type: 9
|
|
@ -1,4 +1,4 @@
|
|||
using SHADE;
|
||||
using SHADE;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
@ -7,7 +7,7 @@ using System.Threading.Tasks;
|
|||
|
||||
namespace SHADE_Scripting.UI
|
||||
{
|
||||
public class ScaleBounce:Script
|
||||
public class ScaleBounce : Script
|
||||
{
|
||||
[NonSerialized]
|
||||
private TweenThread thread;
|
||||
|
@ -19,11 +19,15 @@ namespace SHADE_Scripting.UI
|
|||
private Vector3 defaultScale;
|
||||
|
||||
|
||||
public bool isActive = false;
|
||||
|
||||
private bool lastActive = false;
|
||||
|
||||
protected override void start()
|
||||
{
|
||||
thread = TweenManager.CreateTweenThread(duration, minScale, maxScale, EASING_METHOD.EASE_IN_SINE);
|
||||
Transform trans = GetComponent<Transform>();
|
||||
if(trans != null)
|
||||
if (trans != null)
|
||||
{
|
||||
defaultScale = trans.LocalScale;
|
||||
}
|
||||
|
@ -31,12 +35,22 @@ namespace SHADE_Scripting.UI
|
|||
|
||||
protected override void update()
|
||||
{
|
||||
|
||||
if (thread == null)
|
||||
return;
|
||||
|
||||
if (isActive != lastActive && isActive == true)
|
||||
{
|
||||
thread.Reset();
|
||||
}
|
||||
lastActive = isActive;
|
||||
|
||||
Transform trans = GetComponent<Transform>();
|
||||
if(trans != null)
|
||||
if (trans != null && isActive)
|
||||
{
|
||||
trans.LocalScale = defaultScale * thread.GetValue();
|
||||
}
|
||||
if(thread.IsCompleted())
|
||||
if (thread.IsCompleted())
|
||||
{
|
||||
thread.ResetInvert();
|
||||
}
|
||||
|
|
|
@ -7,11 +7,12 @@ using System.Threading.Tasks;
|
|||
|
||||
namespace SHADE_Scripting.UI
|
||||
{
|
||||
public class ScrollingCredits: Script
|
||||
public class ScrollingCredits : Script
|
||||
{
|
||||
|
||||
public float endY = 4000.0f;
|
||||
public float duration = 30.0f;
|
||||
public GameObject levelTransition;
|
||||
|
||||
|
||||
[NonSerialized]
|
||||
|
@ -25,10 +26,9 @@ namespace SHADE_Scripting.UI
|
|||
|
||||
protected override void start()
|
||||
{
|
||||
base.start();
|
||||
|
||||
Transform transform = GetComponent<Transform>();
|
||||
if(transform != null)
|
||||
if (transform != null)
|
||||
{
|
||||
thread = TweenManager.CreateTweenThread(duration, transform.LocalPosition.y, endY, EASING_METHOD.LINEAR);
|
||||
thread.SetResetOnInactive(GameObject);
|
||||
|
@ -37,13 +37,12 @@ namespace SHADE_Scripting.UI
|
|||
|
||||
protected override void update()
|
||||
{
|
||||
base.update();
|
||||
|
||||
Transform transform = GetComponent<Transform>();
|
||||
|
||||
if(thread != null && transform != null)
|
||||
if (thread != null && transform != null)
|
||||
{
|
||||
transform.LocalPosition = new Vector3( transform.LocalPosition.x ,thread.GetValue() , transform.LocalPosition.z);
|
||||
transform.LocalPosition = new Vector3(transform.LocalPosition.x, thread.GetValue(), transform.LocalPosition.z);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@ using System.Threading.Tasks;
|
|||
|
||||
namespace SHADE_Scripting.UI
|
||||
{
|
||||
public class SingleScaleBounce: Script
|
||||
public class SingleScaleBounce : Script
|
||||
{
|
||||
[NonSerialized]
|
||||
TweenThread thread;
|
||||
|
@ -23,10 +23,12 @@ namespace SHADE_Scripting.UI
|
|||
[NonSerialized]
|
||||
private bool scaleUp = false;
|
||||
|
||||
private Transform trans;
|
||||
|
||||
protected override void awake()
|
||||
{
|
||||
Transform trans = GetComponent<Transform>();
|
||||
if(trans != null)
|
||||
trans = GetComponent<Transform>();
|
||||
if (trans != null)
|
||||
{
|
||||
defaultScale = trans.LocalScale;
|
||||
}
|
||||
|
@ -35,37 +37,41 @@ namespace SHADE_Scripting.UI
|
|||
|
||||
protected override void start()
|
||||
{
|
||||
thread = TweenManager.CreateTweenThread(0.0f,1.0f,1.0f,EASING_METHOD.EASE_IN_SINE);
|
||||
|
||||
thread = TweenManager.CreateTweenThread(0.0f, 1.0f, 1.0f, EASING_METHOD.LINEAR);
|
||||
}
|
||||
|
||||
|
||||
protected override void update()
|
||||
{
|
||||
if(scaleUp)
|
||||
if (scaleUp)
|
||||
{
|
||||
if(thread.IsCompleted())
|
||||
if (thread != null && thread.IsCompleted())
|
||||
{
|
||||
scaleUp = false;
|
||||
thread.duration = durationDown;
|
||||
thread.method = EASING_METHOD.LINEAR;
|
||||
thread.ResetInvert();
|
||||
}
|
||||
}
|
||||
|
||||
Transform trans = GetComponent<Transform>();
|
||||
if(trans != null)
|
||||
{
|
||||
if (trans && thread != null)
|
||||
trans.LocalScale = defaultScale * thread.GetValue();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void ScaleBounceOnce()
|
||||
{
|
||||
scaleUp = true;
|
||||
if (thread != null)
|
||||
{
|
||||
thread.duration = durationUp;
|
||||
thread.Reset(1.0f, scaleSize);
|
||||
thread.method = EASING_METHOD.EASE_OUT_BACK;
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.Log("Single Scale Bounce: thread is null");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,70 @@
|
|||
using SHADE;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SHADE_Scripting.UI
|
||||
{
|
||||
public class SliderFX : Script
|
||||
{
|
||||
|
||||
public string onClickSound = "event:/UI/button_success";
|
||||
public string onReleaseSound = "event:/UI/button_fail";
|
||||
|
||||
|
||||
[NonSerialized]
|
||||
private AudioClipHandler onClickACHandler;
|
||||
[NonSerialized]
|
||||
private AudioClipHandler onReleaseACHandler;
|
||||
|
||||
|
||||
|
||||
protected override void awake()
|
||||
{
|
||||
|
||||
|
||||
if (onClickSound != "Empty")
|
||||
onClickACHandler = SHADE.Audio.CreateAudioClip(onClickSound);
|
||||
if (onReleaseSound != "Empty")
|
||||
onReleaseACHandler = SHADE.Audio.CreateAudioClip(onReleaseSound);
|
||||
}
|
||||
|
||||
protected override void start()
|
||||
{
|
||||
|
||||
|
||||
Transform transform = GetComponent<Transform>();
|
||||
if (transform == null)
|
||||
return;
|
||||
|
||||
UIElement ui = GetComponent<UIElement>();
|
||||
if (ui == null)
|
||||
return;
|
||||
|
||||
|
||||
ui.OnClick.RegisterAction(() =>
|
||||
{
|
||||
if (onClickSound != "Empty")
|
||||
onClickACHandler.Play();
|
||||
|
||||
});
|
||||
|
||||
ui.OnRelease.RegisterAction(() =>
|
||||
{
|
||||
if (onReleaseSound != "Empty")
|
||||
onReleaseACHandler.Play();
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
protected override void update()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
Name: SC_SliderFX
|
||||
ID: 157251414
|
||||
Type: 9
|
|
@ -35,9 +35,9 @@ public class StealFoodPopUp : Script
|
|||
|
||||
protected override void start()
|
||||
{
|
||||
rot = TweenManager.CreateTweenThread(popInDuration, 0, rotationAmt, EASING_METHOD.EASE_IN_SINE);
|
||||
scaleX = TweenManager.CreateTweenThread(popInDuration, 0, scaleAmtX, EASING_METHOD.EASE_IN_SINE);
|
||||
scaleY = TweenManager.CreateTweenThread(popInDuration, 0, scaleAmtY, EASING_METHOD.EASE_IN_SINE);
|
||||
rot = TweenManager.CreateTweenThread(popInDuration * 0.4f, 0, rotationAmt, EASING_METHOD.LINEAR);
|
||||
scaleX = TweenManager.CreateTweenThread(popInDuration, 0, scaleAmtX, EASING_METHOD.EASE_OUT_BACK);
|
||||
scaleY = TweenManager.CreateTweenThread(popInDuration, 0, scaleAmtY, EASING_METHOD.EASE_OUT_BACK);
|
||||
|
||||
tran = GetComponent<Transform>();
|
||||
if (!tran)
|
||||
|
|
|
@ -0,0 +1,44 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using SHADE;
|
||||
|
||||
namespace SHADE_Scripting.UI
|
||||
{
|
||||
public class TransitToMainMenu: Script
|
||||
{
|
||||
public float timeToTransit = 0.0f;
|
||||
public uint sceneToChange = 0;
|
||||
private float timer = 0.0f;
|
||||
private bool sceneChanged = false;
|
||||
|
||||
protected override void start()
|
||||
{
|
||||
timer = timeToTransit;
|
||||
sceneChanged = false;
|
||||
}
|
||||
|
||||
|
||||
protected override void update()
|
||||
{
|
||||
timer -= Time.DeltaTimeF;
|
||||
if(timer <= 0.0f && sceneChanged == false)
|
||||
{
|
||||
SceneManager.ChangeScene(sceneToChange);
|
||||
sceneChanged = true;
|
||||
}
|
||||
if(Input.GetKeyDown(Input.KeyCode.Space))
|
||||
{
|
||||
timer = 0.0f;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
Name: TransitToMainMenu
|
||||
ID: 159865134
|
||||
Type: 9
|
Binary file not shown.
|
@ -14,6 +14,8 @@ struct EmitterParameters
|
|||
float rotationDecay;
|
||||
vec4 lifeAndSizeRange; // min life, max life, min size, max size
|
||||
vec4 colorTint;
|
||||
vec4 colorTintRange;
|
||||
vec4 colorDecay;
|
||||
float sizeDecay;
|
||||
uint textureIndex;
|
||||
float padding[2];
|
||||
|
@ -27,6 +29,7 @@ struct ParticleData
|
|||
vec4 acceleration;
|
||||
vec4 scaleAndDecay;
|
||||
vec4 colorTint;
|
||||
vec4 colorDecay;
|
||||
float life;
|
||||
uint textureIndex;
|
||||
};
|
||||
|
@ -175,9 +178,18 @@ void main()
|
|||
particle.scaleAndDecay.y = particleSize;
|
||||
particle.scaleAndDecay.z = emitterParams.data.sizeDecay;
|
||||
particle.scaleAndDecay.w = emitterParams.data.sizeDecay;
|
||||
particle.colorDecay = emitterParams.data.colorDecay;
|
||||
|
||||
float randRange = rand(seed) * 2.0f - 1.0f;
|
||||
|
||||
// Set particle color tint
|
||||
particle.colorTint = emitterParams.data.colorTint;
|
||||
particle.colorTint = emitterParams.data.colorTint + vec4 (randRange * emitterParams.data.colorTintRange.x,
|
||||
randRange * emitterParams.data.colorTintRange.y,
|
||||
randRange * emitterParams.data.colorTintRange.z,
|
||||
randRange * emitterParams.data.colorTintRange.w);
|
||||
|
||||
// particle.colorTint = emitterParams.data.colorTint;
|
||||
|
||||
|
||||
// Set the texture for the particle
|
||||
particle.textureIndex = emitterParams.data.textureIndex;
|
||||
|
|
Binary file not shown.
|
@ -0,0 +1,27 @@
|
|||
#version 460 core
|
||||
#extension GL_EXT_nonuniform_qualifier : require
|
||||
|
||||
layout (location = 0) out vec4 fragColor;
|
||||
|
||||
layout (set = 0, binding = 1) uniform sampler2D textures[]; // for textures (global)
|
||||
|
||||
// between shader stages
|
||||
layout(location = 0) in struct
|
||||
{
|
||||
vec2 uv; // location = 0
|
||||
} In;
|
||||
|
||||
// material stuff
|
||||
layout(location = 1) flat in struct
|
||||
{
|
||||
uint textureIndex;
|
||||
vec4 color;
|
||||
} InFlat;
|
||||
|
||||
void main ()
|
||||
{
|
||||
fragColor = vec4 (texture(textures [nonuniformEXT(InFlat.textureIndex)], In.uv)) * InFlat.color;
|
||||
|
||||
if (fragColor.a < 0.01f)
|
||||
discard;
|
||||
}
|
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
Name: ParticleRounded_FS
|
||||
ID: 42315398
|
||||
Type: 2
|
|
@ -0,0 +1,107 @@
|
|||
#version 460 core
|
||||
|
||||
struct GenericData
|
||||
{
|
||||
//! Delta time
|
||||
float dt;
|
||||
|
||||
//! Elapsed time of the application
|
||||
float elapsedTime;
|
||||
|
||||
//! Viewport width of the scene (excluding imgui, that means smaller than window)
|
||||
uint viewportWidth;
|
||||
|
||||
//! Ditto but for height
|
||||
uint viewportHeight;
|
||||
};
|
||||
|
||||
struct ParticleData
|
||||
{
|
||||
vec4 position;
|
||||
vec4 orientationSpeedDecay;
|
||||
vec4 velocity;
|
||||
vec4 acceleration;
|
||||
vec4 scaleAndDecay;
|
||||
vec4 colorTint;
|
||||
vec4 colorDecay;
|
||||
float life;
|
||||
uint textureIndex;
|
||||
};
|
||||
|
||||
layout (set = 0, binding = 0) uniform GenericDataBuffer
|
||||
{
|
||||
GenericData data;
|
||||
} genericDataBuffer;
|
||||
|
||||
|
||||
layout(set = 1, binding = 0) uniform CameraData
|
||||
{
|
||||
vec4 position;
|
||||
mat4 vpMat;
|
||||
mat4 viewMat;
|
||||
mat4 projMat;
|
||||
} cameraData;
|
||||
|
||||
// output buffer not needed
|
||||
layout (std430, set = 2, binding = 2) coherent restrict buffer ParticlesOutputBuffer
|
||||
{
|
||||
ParticleData data[];
|
||||
} outputParticles;
|
||||
|
||||
layout (std430, set = 2, binding = 4) coherent restrict buffer IndicesData
|
||||
{
|
||||
uint indices[];
|
||||
};
|
||||
|
||||
// between shader stages
|
||||
layout(location = 0) out struct
|
||||
{
|
||||
vec2 uv; // location = 0
|
||||
} Out;
|
||||
|
||||
// material stuff
|
||||
layout(location = 1) out struct
|
||||
{
|
||||
uint textureIndex; // location = 1
|
||||
vec4 color; // location = 2
|
||||
} OutFlat;
|
||||
|
||||
vec2 CreateQuad (in uint vertexID)
|
||||
{
|
||||
uint b = 1 << vertexID;
|
||||
return vec2 ((0x3 & b) != 0, (0x9 & b) != 0);
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
// Create a quad and its texture coordinates
|
||||
Out.uv = CreateQuad (gl_VertexIndex);
|
||||
vec3 vertexPos = vec3 (Out.uv - vec2(0.5f), 0.0f);
|
||||
vertexPos.y *= 0.5f;
|
||||
|
||||
ParticleData particle = outputParticles.data[indices[gl_InstanceIndex]];
|
||||
|
||||
vec3 normalized = normalize (vec3 (particle.velocity.xyz));
|
||||
float pitch = acos (dot (normalized.xyz, normalize (vec3 (normalized.x, 0.0f, normalized.z))));
|
||||
|
||||
float angle = pitch;
|
||||
// float angle = atan (normalized.y, normalized.x);
|
||||
vec2 particleScaleData = particle.scaleAndDecay.xy; // x and y
|
||||
|
||||
mat3 rotate = mat3 (1.0f);
|
||||
rotate[0][0] = cos(angle);
|
||||
rotate[0][1] = sin(angle);
|
||||
rotate[1][0] = -sin(angle);
|
||||
rotate[1][1] = cos(angle);
|
||||
|
||||
vec3 particlePos = rotate * vertexPos;
|
||||
|
||||
vec3 viewRight = normalize (vec3 (cameraData.viewMat[0][0], cameraData.viewMat[1][0], cameraData.viewMat[2][0]));
|
||||
vec3 viewUp = normalize(vec3 (cameraData.viewMat[0][1], cameraData.viewMat[1][1], cameraData.viewMat[2][1]));
|
||||
|
||||
particlePos = particle.position.xyz + (viewRight * particlePos.x * particleScaleData.x) + (viewUp * particlePos.y * particleScaleData.y);
|
||||
OutFlat.textureIndex = particle.textureIndex;
|
||||
OutFlat.color = particle.colorTint;
|
||||
|
||||
gl_Position = cameraData.vpMat * vec4(particlePos, 1.0f);
|
||||
}
|
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
Name: ParticleRounded_VS
|
||||
ID: 44202416
|
||||
Type: 2
|
|
@ -18,6 +18,7 @@ struct ParticleData
|
|||
vec4 acceleration;
|
||||
vec4 scaleAndDecay;
|
||||
vec4 colorTint;
|
||||
vec4 colorDecay;
|
||||
float life;
|
||||
uint textureIndex;
|
||||
};
|
||||
|
|
Binary file not shown.
|
@ -17,6 +17,8 @@ struct ParticleData
|
|||
vec4 velocity;
|
||||
vec4 acceleration;
|
||||
vec4 scaleAndDecay;
|
||||
vec4 colorTint;
|
||||
vec4 colorDecay;
|
||||
float life;
|
||||
uint textureIndex;
|
||||
};
|
||||
|
|
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue