Creating Ult and Energy

This commit is contained in:
Anonymous Raccoon
2018-03-21 18:45:00 +01:00
parent a35df76bbc
commit 6cecf38290
15 changed files with 583 additions and 92 deletions

View File

@@ -118,30 +118,43 @@ MonoBehaviour:
HookKey: 0
DashKey: 0
UltKey: 0
topLeftDeath: {x: 0, y: 0, z: 0}
bottomRightDeath: {x: 0, y: 0, z: 0}
ChannelKey: 0
ChannelKey2: 0
speed: 10
airSpeed: 7
jumpForce: 8
smallJump: 4
gravity: -10
wallJump: 8
wallJumpPush: 15
wallJumpPush: 12
smallJumpPush: 5
pushSpeed: 0.2
hookRange: 15
playerMask:
serializedVersion: 2
m_Bits: 1024
velocity: 0
hookRange: 10
hookObject: {fileID: 1574484083535614, guid: 798642a34216b3c4e84e665614a0979a, type: 2}
playerHookSpeed: 2
playerHookSpeed: 10
springForce: Infinity
damperForce: Infinity
ropeSwing: 5
dashSpeed: 15
smallProjectile: {fileID: 1556668439340832, guid: be1300b1777602f448d537a75a9093c3,
type: 2}
sProjSpeed: 2
playerMask:
serializedVersion: 2
m_Bits: 1024
energy: 0
channeling: 0
largeProjectile: {fileID: 1725627401684318, guid: 3bdc9aa7fe5b6c44dbb49a2ea88300f9,
type: 2}
lProjSpeed: 0.75
swapProjectile: {fileID: 1815375947999032, guid: 7bf1981eaa398fe4cb42878b4cd942cc,
type: 2}
SwapProjSpeed: 2.5
setuped: 0
gameIsRunning: 1
velocity: 0
topLeftDeath: {x: 0, y: 0, z: 0}
bottomRightDeath: {x: 0, y: 0, z: 0}
--- !u!114 &114186454880906932
MonoBehaviour:
m_ObjectHideFlags: 1

View File

@@ -0,0 +1,129 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1001 &100100000
Prefab:
m_ObjectHideFlags: 1
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications: []
m_RemovedComponents: []
m_ParentPrefab: {fileID: 0}
m_RootGameObject: {fileID: 1725627401684318}
m_IsPrefabParent: 1
--- !u!1 &1725627401684318
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4269374570917972}
- component: {fileID: 33808281628002466}
- component: {fileID: 135226103936762874}
- component: {fileID: 23676612741559870}
- component: {fileID: 114935634334871114}
- component: {fileID: 54337341636934470}
m_Layer: 0
m_Name: LargeProjectile
m_TagString: LargeProjectile
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &4269374570917972
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1725627401684318}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!23 &23676612741559870
MeshRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1725627401684318}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_Materials:
- {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!33 &33808281628002466
MeshFilter:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1725627401684318}
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
--- !u!54 &54337341636934470
Rigidbody:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1725627401684318}
serializedVersion: 2
m_Mass: 1
m_Drag: 0
m_AngularDrag: 0.05
m_UseGravity: 0
m_IsKinematic: 0
m_Interpolate: 0
m_Constraints: 120
m_CollisionDetection: 0
--- !u!114 &114935634334871114
MonoBehaviour:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1725627401684318}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d455af6e3ed71b546b353798c6dcd1b6, type: 3}
m_Name:
m_EditorClassIdentifier:
sender: {fileID: 0}
pushForce: 2
defaultForce: 15
swapLocation: 0
--- !u!135 &135226103936762874
SphereCollider:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1725627401684318}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Radius: 0.5
m_Center: {x: 0, y: 0, z: 0}

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 3bdc9aa7fe5b6c44dbb49a2ea88300f9
timeCreated: 1521650967
licenseType: Free
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 100100000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -120,8 +120,8 @@ MonoBehaviour:
HookKey: 0
DashKey: 0
UltKey: 0
topLeftDeath: {x: 0, y: 0, z: 0}
bottomRightDeath: {x: 0, y: 0, z: 0}
ChannelKey: 0
ChannelKey2: 0
speed: 10
airSpeed: 7
jumpForce: 8
@@ -131,23 +131,32 @@ MonoBehaviour:
wallJumpPush: 12
smallJumpPush: 5
pushSpeed: 0.2
playerMask:
serializedVersion: 2
m_Bits: 1024
velocity: 0
hookRange: 10
hookObject: {fileID: 1574484083535614, guid: 798642a34216b3c4e84e665614a0979a, type: 2}
playerHookSpeed: 2
playerHookSpeed: 10
springForce: Infinity
damperForce: Infinity
breakForce: 500
ropeSwing: 5
dashSpeed: 15
smallProjectile: {fileID: 1556668439340832, guid: be1300b1777602f448d537a75a9093c3,
type: 2}
sProjSpeed: 2
playerMask:
serializedVersion: 2
m_Bits: 1024
energy: 0
channeling: 0
largeProjectile: {fileID: 1725627401684318, guid: 3bdc9aa7fe5b6c44dbb49a2ea88300f9,
type: 2}
lProjSpeed: 8
swapProjectile: {fileID: 1815375947999032, guid: 7bf1981eaa398fe4cb42878b4cd942cc,
type: 2}
SwapProjSpeed: 25
setuped: 0
gameIsRunning: 0
velocity: 0
topLeftDeath: {x: 0, y: 0, z: 0}
bottomRightDeath: {x: 0, y: 0, z: 0}
--- !u!114 &114478164937343286
MonoBehaviour:
m_ObjectHideFlags: 1
@@ -220,10 +229,10 @@ SpringJoint:
m_Damper: 0
m_MinDistance: 0
m_MaxDistance: 0
m_Tolerance: 0.025
m_Tolerance: 1
m_BreakForce: Infinity
m_BreakTorque: Infinity
m_EnableCollision: 1
m_EnablePreprocessing: 1
m_EnableCollision: 0
m_EnablePreprocessing: 0
m_MassScale: 0.1
m_ConnectedMassScale: 1

View File

@@ -0,0 +1,129 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1001 &100100000
Prefab:
m_ObjectHideFlags: 1
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications: []
m_RemovedComponents: []
m_ParentPrefab: {fileID: 0}
m_RootGameObject: {fileID: 1815375947999032}
m_IsPrefabParent: 1
--- !u!1 &1815375947999032
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 5
m_Component:
- component: {fileID: 4541989753578702}
- component: {fileID: 33629666406638166}
- component: {fileID: 135775905570962300}
- component: {fileID: 23568211497049266}
- component: {fileID: 114394692378807160}
- component: {fileID: 54419120968239260}
m_Layer: 0
m_Name: SwapProjectile
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &4541989753578702
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1815375947999032}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 2.04, z: 0}
m_LocalScale: {x: 0.4, y: 0.4, z: 0.4}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!23 &23568211497049266
MeshRenderer:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1815375947999032}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_Materials:
- {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 1
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!33 &33629666406638166
MeshFilter:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1815375947999032}
m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0}
--- !u!54 &54419120968239260
Rigidbody:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1815375947999032}
serializedVersion: 2
m_Mass: 1
m_Drag: 0
m_AngularDrag: 0.05
m_UseGravity: 0
m_IsKinematic: 0
m_Interpolate: 0
m_Constraints: 120
m_CollisionDetection: 0
--- !u!114 &114394692378807160
MonoBehaviour:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1815375947999032}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d455af6e3ed71b546b353798c6dcd1b6, type: 3}
m_Name:
m_EditorClassIdentifier:
sender: {fileID: 0}
pushForce: 0
defaultForce: 0
swapLocation: 1
--- !u!135 &135775905570962300
SphereCollider:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1815375947999032}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Radius: 0.5
m_Center: {x: 0, y: 0, z: 0}

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: 7bf1981eaa398fe4cb42878b4cd942cc
timeCreated: 1521651642
licenseType: Free
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 100100000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -288,6 +288,46 @@ Transform:
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &995613903
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 5
m_Component:
- component: {fileID: 995613905}
- component: {fileID: 995613904}
m_Layer: 0
m_Name: MenuManager
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &995613904
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 995613903}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a89c64d28c0b58141a701cbb5b8ddc6a, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!4 &995613905
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 995613903}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 16.232784, y: -1.8609884, z: 60.94039}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1030271288
GameObject:
m_ObjectHideFlags: 0
@@ -502,7 +542,18 @@ MonoBehaviour:
m_TargetGraphic: {fileID: 1353665926}
m_OnClick:
m_PersistentCalls:
m_Calls: []
m_Calls:
- m_Target: {fileID: 995613904}
m_MethodName: PlayClick
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
m_TypeName: UnityEngine.UI.Button+ButtonClickedEvent, UnityEngine.UI, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null
--- !u!114 &1353665926

View File

@@ -4,5 +4,5 @@
Wall = 1,
Player = 2,
SmallProjectile = 3,
LargeProjectille = 4,
LargeProjectile = 4,
}

View File

@@ -298,6 +298,7 @@ public class NetworkManager : NetworkLobbyManager
pMovement.HookKey = KeyCode.LeftShift;
pMovement.DashKey = KeyCode.LeftControl;
pMovement.UltKey = KeyCode.F;
pMovement.ChannelKey = KeyCode.A;
}
else
{
@@ -307,6 +308,8 @@ public class NetworkManager : NetworkLobbyManager
pMovement.HookKey = (KeyCode)System.Enum.Parse(typeof(KeyCode), "Joystick" + ControllerP1 + "Button2");
pMovement.DashKey = (KeyCode)System.Enum.Parse(typeof(KeyCode), "Joystick" + ControllerP1 + "Button3");
pMovement.UltKey = (KeyCode)System.Enum.Parse(typeof(KeyCode), "Joystick" + ControllerP1 + "Button1");
pMovement.ChannelKey = (KeyCode)System.Enum.Parse(typeof(KeyCode), "Joystick" + ControllerP1 + "Button4");
pMovement.ChannelKey2 = (KeyCode)System.Enum.Parse(typeof(KeyCode), "Joystick" + ControllerP1 + "Button5");
}
}
else if (player == 2)
@@ -322,6 +325,7 @@ public class NetworkManager : NetworkLobbyManager
pMovement.HookKey = KeyCode.LeftShift;
pMovement.DashKey = KeyCode.LeftControl;
pMovement.UltKey = KeyCode.F;
pMovement.ChannelKey = KeyCode.A;
}
else
{
@@ -332,6 +336,8 @@ public class NetworkManager : NetworkLobbyManager
pMovement.HookKey = (KeyCode)System.Enum.Parse(typeof(KeyCode), "Joystick" + ControllerP2 + "Button2");
pMovement.DashKey = (KeyCode)System.Enum.Parse(typeof(KeyCode), "Joystick" + ControllerP2 + "Button3");
pMovement.UltKey = (KeyCode)System.Enum.Parse(typeof(KeyCode), "Joystick" + ControllerP2 + "Button1");
pMovement.ChannelKey = (KeyCode)System.Enum.Parse(typeof(KeyCode), "Joystick" + ControllerP2 + "Button4");
pMovement.ChannelKey2 = (KeyCode)System.Enum.Parse(typeof(KeyCode), "Joystick" + ControllerP2 + "Button5");
}
}
else if (player == 3)
@@ -347,6 +353,7 @@ public class NetworkManager : NetworkLobbyManager
pMovement.HookKey = KeyCode.LeftShift;
pMovement.DashKey = KeyCode.LeftControl;
pMovement.UltKey = KeyCode.F;
pMovement.ChannelKey = KeyCode.A;
}
else
{
@@ -357,6 +364,8 @@ public class NetworkManager : NetworkLobbyManager
pMovement.HookKey = (KeyCode)System.Enum.Parse(typeof(KeyCode), "Joystick" + ControllerP3 + "Button2");
pMovement.DashKey = (KeyCode)System.Enum.Parse(typeof(KeyCode), "Joystick" + ControllerP3 + "Button3");
pMovement.UltKey = (KeyCode)System.Enum.Parse(typeof(KeyCode), "Joystick" + ControllerP3 + "Button1");
pMovement.ChannelKey = (KeyCode)System.Enum.Parse(typeof(KeyCode), "Joystick" + ControllerP3 + "Button4");
pMovement.ChannelKey2 = (KeyCode)System.Enum.Parse(typeof(KeyCode), "Joystick" + ControllerP3 + "Button5");
}
}
else if (player == 4)
@@ -372,6 +381,7 @@ public class NetworkManager : NetworkLobbyManager
pMovement.HookKey = KeyCode.LeftShift;
pMovement.DashKey = KeyCode.LeftControl;
pMovement.UltKey = KeyCode.F;
pMovement.ChannelKey = KeyCode.A;
}
else
{
@@ -382,6 +392,8 @@ public class NetworkManager : NetworkLobbyManager
pMovement.HookKey = (KeyCode)System.Enum.Parse(typeof(KeyCode), "Joystick" + ControllerP4 + "Button2");
pMovement.DashKey = (KeyCode)System.Enum.Parse(typeof(KeyCode), "Joystick" + ControllerP4 + "Button3");
pMovement.UltKey = (KeyCode)System.Enum.Parse(typeof(KeyCode), "Joystick" + ControllerP4 + "Button1");
pMovement.ChannelKey = (KeyCode)System.Enum.Parse(typeof(KeyCode), "Joystick" + ControllerP4 + "Button4");
pMovement.ChannelKey2 = (KeyCode)System.Enum.Parse(typeof(KeyCode), "Joystick" + ControllerP4 + "Button5");
}
}

View File

@@ -1,21 +1,24 @@
using UnityEngine;
using System.Linq;
using System.Collections.Generic;
using System.Collections;
[RequireComponent(typeof(Rigidbody))]
public class PlayerMovement : MonoBehaviour
{
[Header("Keybinds (changed at runtime)")]
public string Horizontal;
public string Vertical;
public KeyCode JumpKey = KeyCode.None;
public KeyCode HookKey = KeyCode.None;
public KeyCode DashKey = KeyCode.None;
public KeyCode UltKey = KeyCode.None;
public Vector3 topLeftDeath;
public Vector3 bottomRightDeath;
public KeyCode ChannelKey = KeyCode.None;
public KeyCode ChannelKey2 = KeyCode.None;
[Space]
[Space]
[Header("Movement settings")]
[SerializeField] private int speed = 10;
[SerializeField] private int airSpeed = 7;
[SerializeField] private int jumpForce = 8;
@@ -25,22 +28,34 @@ public class PlayerMovement : MonoBehaviour
[SerializeField] private int wallJumpPush = 10;
[SerializeField] private int smallJumpPush = 5;
[SerializeField] private float pushSpeed = 0.2f;
[SerializeField] private LayerMask playerMask;
private bool groundedLastFrame = false;
private int wallDirection;
private int wallJumpTimer = 0;
private bool wallJumped;
private float jumpDirection;
private MovingElement movingPlateform;
[HideInInspector] public float velocity = 0;
[Space]
[Space]
[Header("Hook variables")]
[SerializeField] private float hookRange = 10;
[SerializeField] private GameObject hookObject;
[SerializeField] private float playerHookSpeed = 15;
[SerializeField] private float springForce = Mathf.Infinity;
[SerializeField] private float damperForce = Mathf.Infinity;
[SerializeField] private float breakForce = 600;
[SerializeField] private float ropeSwing = 1;
private GameObject hook;
private HookType hookType = HookType.Wall;
private GameObject objectHooked;
private Vector3 hookPosition;
private float hookLength;
private Rigidbody rb;
[Space]
[Space]
[Header("Dash variables")]
[SerializeField] private float dashSpeed = 15;
[SerializeField] private GameObject smallProjectile;
[SerializeField] private float sProjSpeed = 2;
@@ -48,26 +63,28 @@ public class PlayerMovement : MonoBehaviour
private float dashTime = 0;
private Vector3 dashVelocity;
[Space]
[Space]
[Header("Ult variables")]
[SerializeField] private float energy = 0;
public bool channeling = false;
[SerializeField] private GameObject largeProjectile;
[SerializeField] private float lProjSpeed = 4;
[SerializeField] private GameObject swapProjectile;
[SerializeField] private float SwapProjSpeed = 25;
[SerializeField] private float largeDamper = 200;
[Space]
[Space]
[SerializeField] private LayerMask playerMask;
[Space]
[Header("Game Information")]
public bool setuped = false;
[SerializeField] private bool gameIsRunning = false;
public Vector3 topLeftDeath;
public Vector3 bottomRightDeath;
[HideInInspector] public float velocity = 0;
private bool groundedLastFrame = false;
private int wallDirection;
private int wallJumpTimer = 0;
private bool wallJumped;
private float jumpDirection;
private MovingElement movingPlateform;
private Rigidbody rb;
private void Start()
{
@@ -76,7 +93,7 @@ public class PlayerMovement : MonoBehaviour
private bool IsGrounded()
{
if (Mathf.Abs(RelativeVelocity().y) < 0.1f && hookType != HookType.Wall)
if (Mathf.Abs(RelativeVelocity().y) < 0.1f && hookType != HookType.Wall && hookType != HookType.LargeProjectile)
{
if (groundedLastFrame)
{
@@ -239,14 +256,21 @@ public class PlayerMovement : MonoBehaviour
if(hook != null)
hook.GetComponent<LineRenderer>().SetPosition(0, rb.position);
}
//if (hookType == HookType.SmallProjectile)
//{
// if (objectHooked != null)
// {
// if (hook != null)
// hook.GetComponent<LineRenderer>().SetPositions(new Vector3[] { rb.position, objectHooked.transform.position });
// }
//}
else if (hookType == HookType.SmallProjectile && objectHooked != null && hook != null)
{
hook.GetComponent<LineRenderer>().SetPositions(new Vector3[] { rb.position, objectHooked.transform.position });
}
else if(hookType == HookType.LargeProjectile)
{
if(objectHooked != null)
{
if(hook != null)
hook.GetComponent<LineRenderer>().SetPositions(new Vector3[] { rb.position, objectHooked.transform.position });
hookPosition = objectHooked.transform.position;
GetComponent<SpringJoint>().connectedAnchor = hookPosition;
}
}
//Handle dash after user pressed the button
if (dashTime > 0)
@@ -261,7 +285,7 @@ public class PlayerMovement : MonoBehaviour
GameObject proj = Instantiate(smallProjectile, rb.position + new Vector3(rb.velocity.x / 10, rb.velocity.y / 5, 0), Quaternion.identity);
proj.name = "SmallProjectile";
proj.GetComponent<Rigidbody>().velocity = new Vector3(dashVelocity.x * sProjSpeed, dashVelocity.y * sProjSpeed, 0);
proj.GetComponent<SmallProjectile>().sender = this;
proj.GetComponent<Projectile>().sender = this;
dashVelocity = Vector3.zero;
}
@@ -272,10 +296,11 @@ public class PlayerMovement : MonoBehaviour
{
if (dashTime <= 0)
{
if (hookType != HookType.Wall)
if (hookType != HookType.Wall && hookType != HookType.LargeProjectile)
{
//Normal movement
rb.AddForce(new Vector3(horizontalVel * (isPushing ? pushSpeed : 1) * (airControl ? airSpeed : speed) - (rb.velocity.x - velocity), 0, 0), ForceMode.Impulse);
if(!channeling)
rb.AddForce(new Vector3(horizontalVel * (isPushing ? pushSpeed : 1) * (airControl ? airSpeed : speed) - (rb.velocity.x - velocity), 0, 0), ForceMode.Impulse);
}
else
{
@@ -286,6 +311,28 @@ public class PlayerMovement : MonoBehaviour
}
}
//Channel energy
if (channeling)
{
if (!Input.GetKey(ChannelKey) && !Input.GetKey(ChannelKey2))
{
StartCoroutine(CancelChanneling());
}
else
{
energy += Time.deltaTime;
energy = Mathf.Clamp(energy, 0, 3);
}
}
else if (Input.GetKey(ChannelKey) || Input.GetKey(ChannelKey2))
{
channeling = true;
}
//Cancel player movement and abilities if he is channeling
if (channeling)
return;
//Make user jump
if (Input.GetKey(JumpKey) && isGrounded)
{
@@ -302,7 +349,6 @@ public class PlayerMovement : MonoBehaviour
}
else
rb.velocity = new Vector3(rb.velocity.x, smallJump, rb.velocity.z);
}
//Move with the plateform
@@ -340,6 +386,7 @@ public class PlayerMovement : MonoBehaviour
if(spring != null)
{
spring.connectedAnchor = new Vector3(0, 0, 0);
spring.connectedBody = null;
spring.spring = 0;
spring.damper = 0;
spring.maxDistance = 0;
@@ -368,18 +415,33 @@ public class PlayerMovement : MonoBehaviour
}
else if(hit.collider.tag == "SmallProjectile")
{
//Cancel et boop le projectile
//hookType = HookType.SmallProjectile;
//hook = Instantiate(hookObject, rb.position, Quaternion.identity);
//hook.GetComponent<LineRenderer>().SetPositions(new Vector3[] { rb.position, hit.point });
//objectHooked = hit.collider.gameObject;
hookType = HookType.SmallProjectile;
hook = Instantiate(hookObject, rb.position, Quaternion.identity);
hook.GetComponent<LineRenderer>().SetPositions(new Vector3[] { rb.position, hit.point });
objectHooked = hit.collider.gameObject;
//SpringJoint spring = GetComponent<SpringJoint>();
//spring.spring = springForce;
//spring.damper = damperForce;
//spring.maxDistance = Vector3.Distance(rb.position, hit.point);
//spring.breakForce = breakForce;
//spring.connectedBody = hit.collider.GetComponent<Rigidbody>();
SpringJoint spring = GetComponent<SpringJoint>();
spring.spring = springForce;
spring.damper = damperForce;
spring.maxDistance = Vector3.Distance(rb.position, hit.point);
spring.connectedBody = hit.collider.GetComponent<Rigidbody>();
StartCoroutine(CancelHook());
}
else if (hit.collider.tag == "LargeProjectile")
{
hookType = HookType.LargeProjectile;
hook = Instantiate(hookObject, rb.position, Quaternion.identity);
hook.GetComponent<LineRenderer>().SetPositions(new Vector3[] { rb.position, hit.point });
objectHooked = hit.collider.gameObject;
SpringJoint spring = GetComponent<SpringJoint>();
spring.connectedAnchor = hit.point;
spring.spring = springForce;
spring.damper = largeDamper;
spring.maxDistance = Vector3.Distance(rb.position, hit.point);
hookPosition = hit.point;
hookLength = Vector3.Distance(rb.position, hit.point);
}
else
{
@@ -418,6 +480,62 @@ public class PlayerMovement : MonoBehaviour
jumpDirection = movement.x;
canDash = false;
}
//Ult
if (Input.GetKeyDown(UltKey))
{
Vector3 direction = NormaliseMovement(Input.GetAxis(Horizontal), Input.GetAxis(Vertical));
if (energy < 1)
{
//Boop
}
else if(energy < 3)
{
//Large projectile
energy -= 1;
GameObject proj = Instantiate(largeProjectile, rb.position + direction * 4, Quaternion.identity);
proj.name = "LargeProjectile";
proj.GetComponent<Rigidbody>().velocity = new Vector3(direction.x * lProjSpeed, direction.y * lProjSpeed, 0);
proj.GetComponent<Projectile>().sender = this;
}
else if(energy == 3)
{
//Swap projectile
energy -= 3;
GameObject proj = Instantiate(swapProjectile, rb.position + direction, Quaternion.identity);
proj.name = "SwapProjectile";
proj.GetComponent<Rigidbody>().velocity = new Vector3(direction.x * SwapProjSpeed, direction.y * SwapProjSpeed, 0);
proj.GetComponent<Projectile>().sender = this;
}
}
}
//Cancel hook on small projectile, if not, the rigidbody crash
private IEnumerator CancelHook()
{
yield return new WaitForSeconds(0.7f);
Destroy(hook);
SpringJoint spring = GetComponent<SpringJoint>();
if (spring != null)
{
spring.connectedAnchor = new Vector3(0, 0, 0);
spring.connectedBody = null;
spring.spring = 0;
spring.damper = 0;
spring.maxDistance = 0;
}
hookType = HookType.None;
hookPosition = Vector3.zero;
hookLength = 0;
}
//Cancel channeling after 0.5 seconds
private IEnumerator CancelChanneling()
{
yield return new WaitForSeconds(0.5f);
channeling = false;
}
Vector3 NormaliseMovement(float x, float y)
@@ -433,13 +551,11 @@ public class PlayerMovement : MonoBehaviour
public void Hooked(Vector3 direction, Vector3 attackPosition)
{
float force = Vector3.Distance(rb.position, attackPosition) * -1;
rb.velocity = direction * playerHookSpeed * force;
velocity = direction.x * playerHookSpeed * force;
rb.velocity = direction * playerHookSpeed;
velocity = direction.x * playerHookSpeed;
}
public void SmallProjectileHit(PlayerMovement victim)
public void ProjectileHit(PlayerMovement victim)
{
canDash = true;
}

View File

@@ -0,0 +1,33 @@
using UnityEngine;
public class Projectile : MonoBehaviour
{
[HideInInspector] public PlayerMovement sender;
[SerializeField] private float pushForce = 1;
[SerializeField] private float defaultForce = 10;
[SerializeField] private bool swapLocation = false;
private void OnCollisionEnter(Collision collision)
{
if(collision.gameObject.tag == "Player")
{
Rigidbody rb = GetComponent<Rigidbody>();
PlayerMovement pMovement = collision.gameObject.GetComponent<PlayerMovement>();
pMovement.velocity = rb.velocity.x * pushForce + rb.velocity.normalized.x * defaultForce;
collision.gameObject.GetComponent<Rigidbody>().velocity = rb.velocity * pushForce + rb.velocity.normalized * defaultForce;
if(swapLocation)
{
Vector3 colPosition = pMovement.transform.position;
pMovement.transform.position = sender.transform.position;
sender.transform.position = colPosition;
}
sender.ProjectileHit(pMovement);
}
Destroy(gameObject);
}
}

View File

@@ -1,24 +0,0 @@
using UnityEngine;
public class SmallProjectile : MonoBehaviour
{
[HideInInspector] public PlayerMovement sender;
[SerializeField] private float pushForce = 1;
private void OnCollisionEnter(Collision collision)
{
if(collision.gameObject.tag == "Player")
{
Rigidbody rb = GetComponent<Rigidbody>();
PlayerMovement pMovement = collision.gameObject.GetComponent<PlayerMovement>();
pMovement.velocity = rb.velocity.x * pushForce;
collision.gameObject.GetComponent<Rigidbody>().velocity = rb.velocity * pushForce;
sender.SmallProjectileHit(pMovement);
}
Destroy(gameObject);
}
}

View File

@@ -35,6 +35,8 @@ GraphicsSettings:
- {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0}
- {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0}
- {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0}
- {fileID: 17000, guid: 0000000000000000f000000000000000, type: 0}
- {fileID: 16000, guid: 0000000000000000f000000000000000, type: 0}
m_PreloadedShaders: []
m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000,
type: 0}

View File

@@ -6,6 +6,7 @@ TagManager:
tags:
- DeathZone
- SmallProjectile
- LargeProjectile
layers:
- Default
- TransparentFX