Added inventory system to player

This commit is contained in:
Mikolaj 2022-05-04 17:00:37 +02:00
parent a299230ab6
commit ec89584e97
31 changed files with 1634 additions and 1881 deletions

File diff suppressed because it is too large Load diff

View file

@ -447,7 +447,7 @@
"id": "2cc562f6-1b6c-4033-b783-2a481ab11dec",
"actions": [
{
"name": "SpeedDown",
"name": "FlyFast",
"type": "PassThrough",
"id": "1e150f46-f771-4738-92fc-2fc13b6697b7",
"expectedControlType": "Button",
@ -456,7 +456,7 @@
"initialStateCheck": false
},
{
"name": "SpeedUp",
"name": "FlySlow",
"type": "PassThrough",
"id": "4ec09521-b697-424d-b042-16c4c355012c",
"expectedControlType": "Button",
@ -481,6 +481,15 @@
"processors": "",
"interactions": "",
"initialStateCheck": false
},
{
"name": "ScrollSpeedControlw",
"type": "PassThrough",
"id": "c6404499-255c-4521-abfa-5fb829afd1e0",
"expectedControlType": "Vector2",
"processors": "",
"interactions": "",
"initialStateCheck": false
}
],
"bindings": [
@ -491,7 +500,7 @@
"interactions": "",
"processors": "",
"groups": "KeyboardAndMouse",
"action": "SpeedDown",
"action": "FlyFast",
"isComposite": false,
"isPartOfComposite": false
},
@ -502,7 +511,7 @@
"interactions": "",
"processors": "",
"groups": "Gamepad",
"action": "SpeedDown",
"action": "FlyFast",
"isComposite": false,
"isPartOfComposite": false
},
@ -513,7 +522,7 @@
"interactions": "",
"processors": "",
"groups": "KeyboardAndMouse",
"action": "SpeedUp",
"action": "FlySlow",
"isComposite": false,
"isPartOfComposite": false
},
@ -524,7 +533,7 @@
"interactions": "",
"processors": "",
"groups": "Gamepad",
"action": "SpeedUp",
"action": "FlySlow",
"isComposite": false,
"isPartOfComposite": false
},
@ -549,6 +558,17 @@
"action": "FlyDown",
"isComposite": false,
"isPartOfComposite": false
},
{
"name": "",
"id": "cd457b70-a6c0-4b36-ae23-a86735c06bee",
"path": "<Mouse>/scroll",
"interactions": "",
"processors": "",
"groups": "",
"action": "ScrollSpeedControlw",
"isComposite": false,
"isPartOfComposite": false
}
]
}

8
Assets/Roles.meta Normal file
View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 96abcc748c6e1f844bdafc9894b7fb75
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,18 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ffe32805eb7bde24bb85bb43c12614e6, type: 3}
m_Name: Detective
m_EditorClassIdentifier:
roleName: Detective
roleId: 1
roleColor: {r: 0, g: 0, b: 1, a: 0}
roleTeam: 0

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 87d3bd07dfb8cad4abc8d1e45c65ad38
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,18 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ffe32805eb7bde24bb85bb43c12614e6, type: 3}
m_Name: Innocent
m_EditorClassIdentifier:
roleName: Innocent
roleId: 0
roleColor: {r: 0, g: 1, b: 0, a: 0}
roleTeam: 0

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 902c73643e40b48499e05ccd846b6e7c
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,18 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ffe32805eb7bde24bb85bb43c12614e6, type: 3}
m_Name: Traitor
m_EditorClassIdentifier:
roleName: Traitor
roleId: 2
roleColor: {r: 1, g: 0, b: 0, a: 0}
roleTeam: 1

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 65f5156730f95fa46856a6c9fca543db
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load diff

View file

@ -1,10 +1,6 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using MyBox;
using UnityEditor;
using UnityEditorInternal;
using System.Threading.Tasks;
[Serializable]

View file

@ -34,7 +34,7 @@ namespace TTTSC.Player.Character.Controller.Alive
private bool _performingMoveInput;
private Vector3 _moveDirection;
private void Awake()
private void Start()
{
_playerGhostReffrenceHub = GetComponentInParent<PlayerGhostReffrenceHub>();
_characterRigidbody = _playerGhostReffrenceHub.characterRigidbody;
@ -48,11 +48,20 @@ namespace TTTSC.Player.Character.Controller.Alive
_playerInputReceiver.MoveInputEvent += MoveInput;
_playerInputReceiver.JumpInputEvent += JumpInput;
_characterRigidbody = _playerGhostReffrenceHub.characterRigidbody;
}
void Start()
private void OnDisable()
{
_characterRigidbody = _playerGhostReffrenceHub.characterRigidbody;
_playerInputReceiver.MoveInputEvent -= MoveInput;
_playerInputReceiver.JumpInputEvent -= JumpInput;
}
private void OnDestroy()
{
_playerInputReceiver.MoveInputEvent -= MoveInput;
_playerInputReceiver.JumpInputEvent -= JumpInput;
}
#region Input event listeners

View file

@ -13,15 +13,11 @@ namespace TTTSC.Player.Character.Controller
private bool _walkIsPerforming, _crouchIsHeld, _sprintIsPerforming;
private void Awake()
private void Start()
{
_playerGhostReffrenceHub = GetComponentInParent<PlayerGhostReffrenceHub>();
_playerInputReceiver = _playerGhostReffrenceHub.playerInputReceiver;
_characterStateMachine = GetComponent<CharacterStateMachine>();
}
private void Start()
{
_playerInputReceiver.MoveInputEvent += Walk;
_playerInputReceiver.CrouchInputEvent += Crouch;
_playerInputReceiver.SprintInputEvent += Sprint;

View file

@ -15,9 +15,10 @@ namespace TTTSC.Player.Character.Controller
#region SpectatorControls
public event Action<Vector2, bool> SpectatorScrollSpeedInputEvent;
public event Action<bool, float> SpectatorSpeedUpInputEvent, SpectatorSlowDownEvent, FlyUpInputEvent, FlyDownInputEvent;
bool _spectatorSpeedUpIsHeld, _spectatorSlowDownIsHeld, _flyUpIsHeld, _flyDownIsHeld;
float _spectatorSpeedUpStageValue, _spectatorSlowDownStageValue, _flyUpStageValue, _flyDownStageValue;
float _spectatorFlyFastStageValue, _spectatorFlySlowStageValue, _flyUpStageValue, _flyDownStageValue;
#endregion
public PlayerInputSender playerInputEvents;
@ -52,8 +53,8 @@ namespace TTTSC.Player.Character.Controller
//
#region SpectatorControls
playerInputEvents.SpectatorControls.SpeedUp.performed += SpectatorSpeedUp;
playerInputEvents.SpectatorControls.SpeedDown.performed += SpectatorSlowDown;
playerInputEvents.SpectatorControls.FlyFast.performed += SpectatorFlyFast;
playerInputEvents.SpectatorControls.FlySlow.performed += SpectatorFlySlow;
playerInputEvents.SpectatorControls.FlyUp.performed += SpectatorFlyUp;
playerInputEvents.SpectatorControls.FlyDown.performed += SpectatorFlyDown;
@ -87,8 +88,8 @@ namespace TTTSC.Player.Character.Controller
//
#region SpectatorControls
playerInputEvents.SpectatorControls.SpeedUp.performed -= SpectatorSpeedUp;
playerInputEvents.SpectatorControls.SpeedDown.performed -= SpectatorSlowDown;
playerInputEvents.SpectatorControls.FlyFast.performed -= SpectatorFlyFast;
playerInputEvents.SpectatorControls.FlySlow.performed -= SpectatorFlySlow;
playerInputEvents.SpectatorControls.FlyUp.performed -= SpectatorFlyUp;
playerInputEvents.SpectatorControls.FlyDown.performed -= SpectatorFlyDown;
@ -182,6 +183,7 @@ namespace TTTSC.Player.Character.Controller
private void FixedUpdate()
{
//
#region AliveControls
playerInputEvents.AliveControls.Sprint.started += ctx => _sprintStageValue = 1;
@ -207,17 +209,17 @@ namespace TTTSC.Player.Character.Controller
//
#region SpectatorControls
playerInputEvents.SpectatorControls.SpeedUp.started += ctx => _spectatorSpeedUpStageValue = 1;
playerInputEvents.SpectatorControls.SpeedUp.performed += ctx => _spectatorSpeedUpStageValue = 2;
playerInputEvents.SpectatorControls.SpeedUp.canceled += ctx => _spectatorSpeedUpStageValue = 0;
playerInputEvents.SpectatorControls.FlyFast.started += ctx => _spectatorFlyFastStageValue = 1;
playerInputEvents.SpectatorControls.FlyFast.performed += ctx => _spectatorFlyFastStageValue = 2;
playerInputEvents.SpectatorControls.FlyFast.canceled += ctx => _spectatorFlyFastStageValue = 0;
SpectatorSpeedUpInputEvent?.Invoke(_spectatorSpeedUpIsHeld, _spectatorSpeedUpStageValue);
SpectatorSpeedUpInputEvent?.Invoke(_spectatorSpeedUpIsHeld, _spectatorFlyFastStageValue);
playerInputEvents.SpectatorControls.SpeedDown.started += ctx => _spectatorSlowDownStageValue = 1;
playerInputEvents.SpectatorControls.SpeedDown.performed += ctx => _spectatorSlowDownStageValue = 2;
playerInputEvents.SpectatorControls.SpeedDown.canceled += ctx => _spectatorSlowDownStageValue = 0;
playerInputEvents.SpectatorControls.FlySlow.started += ctx => _spectatorFlySlowStageValue = 1;
playerInputEvents.SpectatorControls.FlySlow.performed += ctx => _spectatorFlySlowStageValue = 2;
playerInputEvents.SpectatorControls.FlySlow.canceled += ctx => _spectatorFlySlowStageValue = 0;
SpectatorSlowDownEvent?.Invoke(_spectatorSlowDownIsHeld, _spectatorSlowDownStageValue);
SpectatorSlowDownEvent?.Invoke(_spectatorSlowDownIsHeld, _spectatorFlySlowStageValue);
playerInputEvents.SpectatorControls.FlyUp.started += ctx => _flyUpStageValue = 1;
playerInputEvents.SpectatorControls.FlyUp.performed += ctx => _flyUpStageValue = 2;
@ -303,14 +305,14 @@ namespace TTTSC.Player.Character.Controller
#region SpectatorControls
private void SpectatorSpeedUp(InputAction.CallbackContext ctx)
private void SpectatorFlyFast(InputAction.CallbackContext ctx)
{
float value = ctx.ReadValue<float>();
_spectatorSpeedUpIsHeld = FloatBool(value, "==", 1);
}
private void SpectatorSlowDown(InputAction.CallbackContext ctx)
private void SpectatorFlySlow(InputAction.CallbackContext ctx)
{
float value = ctx.ReadValue<float>();

View file

@ -471,7 +471,7 @@ namespace TTTSC.Player.Character.Controller
""id"": ""2cc562f6-1b6c-4033-b783-2a481ab11dec"",
""actions"": [
{
""name"": ""SpeedDown"",
""name"": ""FlyFast"",
""type"": ""PassThrough"",
""id"": ""1e150f46-f771-4738-92fc-2fc13b6697b7"",
""expectedControlType"": ""Button"",
@ -480,7 +480,7 @@ namespace TTTSC.Player.Character.Controller
""initialStateCheck"": false
},
{
""name"": ""SpeedUp"",
""name"": ""FlySlow"",
""type"": ""PassThrough"",
""id"": ""4ec09521-b697-424d-b042-16c4c355012c"",
""expectedControlType"": ""Button"",
@ -505,6 +505,15 @@ namespace TTTSC.Player.Character.Controller
""processors"": """",
""interactions"": """",
""initialStateCheck"": false
},
{
""name"": ""ScrollSpeedControlw"",
""type"": ""PassThrough"",
""id"": ""c6404499-255c-4521-abfa-5fb829afd1e0"",
""expectedControlType"": ""Vector2"",
""processors"": """",
""interactions"": """",
""initialStateCheck"": false
}
],
""bindings"": [
@ -515,7 +524,7 @@ namespace TTTSC.Player.Character.Controller
""interactions"": """",
""processors"": """",
""groups"": ""KeyboardAndMouse"",
""action"": ""SpeedDown"",
""action"": ""FlyFast"",
""isComposite"": false,
""isPartOfComposite"": false
},
@ -526,7 +535,7 @@ namespace TTTSC.Player.Character.Controller
""interactions"": """",
""processors"": """",
""groups"": ""Gamepad"",
""action"": ""SpeedDown"",
""action"": ""FlyFast"",
""isComposite"": false,
""isPartOfComposite"": false
},
@ -537,7 +546,7 @@ namespace TTTSC.Player.Character.Controller
""interactions"": """",
""processors"": """",
""groups"": ""KeyboardAndMouse"",
""action"": ""SpeedUp"",
""action"": ""FlySlow"",
""isComposite"": false,
""isPartOfComposite"": false
},
@ -548,7 +557,7 @@ namespace TTTSC.Player.Character.Controller
""interactions"": """",
""processors"": """",
""groups"": ""Gamepad"",
""action"": ""SpeedUp"",
""action"": ""FlySlow"",
""isComposite"": false,
""isPartOfComposite"": false
},
@ -573,6 +582,17 @@ namespace TTTSC.Player.Character.Controller
""action"": ""FlyDown"",
""isComposite"": false,
""isPartOfComposite"": false
},
{
""name"": """",
""id"": ""cd457b70-a6c0-4b36-ae23-a86735c06bee"",
""path"": ""<Mouse>/scroll"",
""interactions"": """",
""processors"": """",
""groups"": """",
""action"": ""ScrollSpeedControlw"",
""isComposite"": false,
""isPartOfComposite"": false
}
]
}
@ -631,10 +651,11 @@ namespace TTTSC.Player.Character.Controller
m_AliveControls_DropAmmo = m_AliveControls.FindAction("DropAmmo", throwIfNotFound: true);
// SpectatorControls
m_SpectatorControls = asset.FindActionMap("SpectatorControls", throwIfNotFound: true);
m_SpectatorControls_SpeedDown = m_SpectatorControls.FindAction("SpeedDown", throwIfNotFound: true);
m_SpectatorControls_SpeedUp = m_SpectatorControls.FindAction("SpeedUp", throwIfNotFound: true);
m_SpectatorControls_FlyFast = m_SpectatorControls.FindAction("FlyFast", throwIfNotFound: true);
m_SpectatorControls_FlySlow = m_SpectatorControls.FindAction("FlySlow", throwIfNotFound: true);
m_SpectatorControls_FlyUp = m_SpectatorControls.FindAction("FlyUp", throwIfNotFound: true);
m_SpectatorControls_FlyDown = m_SpectatorControls.FindAction("FlyDown", throwIfNotFound: true);
m_SpectatorControls_ScrollSpeedControlw = m_SpectatorControls.FindAction("ScrollSpeedControlw", throwIfNotFound: true);
}
public void Dispose()
@ -848,18 +869,20 @@ namespace TTTSC.Player.Character.Controller
// SpectatorControls
private readonly InputActionMap m_SpectatorControls;
private ISpectatorControlsActions m_SpectatorControlsActionsCallbackInterface;
private readonly InputAction m_SpectatorControls_SpeedDown;
private readonly InputAction m_SpectatorControls_SpeedUp;
private readonly InputAction m_SpectatorControls_FlyFast;
private readonly InputAction m_SpectatorControls_FlySlow;
private readonly InputAction m_SpectatorControls_FlyUp;
private readonly InputAction m_SpectatorControls_FlyDown;
private readonly InputAction m_SpectatorControls_ScrollSpeedControlw;
public struct SpectatorControlsActions
{
private @PlayerInputSender m_Wrapper;
public SpectatorControlsActions(@PlayerInputSender wrapper) { m_Wrapper = wrapper; }
public InputAction @SpeedDown => m_Wrapper.m_SpectatorControls_SpeedDown;
public InputAction @SpeedUp => m_Wrapper.m_SpectatorControls_SpeedUp;
public InputAction @FlyFast => m_Wrapper.m_SpectatorControls_FlyFast;
public InputAction @FlySlow => m_Wrapper.m_SpectatorControls_FlySlow;
public InputAction @FlyUp => m_Wrapper.m_SpectatorControls_FlyUp;
public InputAction @FlyDown => m_Wrapper.m_SpectatorControls_FlyDown;
public InputAction @ScrollSpeedControlw => m_Wrapper.m_SpectatorControls_ScrollSpeedControlw;
public InputActionMap Get() { return m_Wrapper.m_SpectatorControls; }
public void Enable() { Get().Enable(); }
public void Disable() { Get().Disable(); }
@ -869,34 +892,40 @@ namespace TTTSC.Player.Character.Controller
{
if (m_Wrapper.m_SpectatorControlsActionsCallbackInterface != null)
{
@SpeedDown.started -= m_Wrapper.m_SpectatorControlsActionsCallbackInterface.OnSpeedDown;
@SpeedDown.performed -= m_Wrapper.m_SpectatorControlsActionsCallbackInterface.OnSpeedDown;
@SpeedDown.canceled -= m_Wrapper.m_SpectatorControlsActionsCallbackInterface.OnSpeedDown;
@SpeedUp.started -= m_Wrapper.m_SpectatorControlsActionsCallbackInterface.OnSpeedUp;
@SpeedUp.performed -= m_Wrapper.m_SpectatorControlsActionsCallbackInterface.OnSpeedUp;
@SpeedUp.canceled -= m_Wrapper.m_SpectatorControlsActionsCallbackInterface.OnSpeedUp;
@FlyFast.started -= m_Wrapper.m_SpectatorControlsActionsCallbackInterface.OnFlyFast;
@FlyFast.performed -= m_Wrapper.m_SpectatorControlsActionsCallbackInterface.OnFlyFast;
@FlyFast.canceled -= m_Wrapper.m_SpectatorControlsActionsCallbackInterface.OnFlyFast;
@FlySlow.started -= m_Wrapper.m_SpectatorControlsActionsCallbackInterface.OnFlySlow;
@FlySlow.performed -= m_Wrapper.m_SpectatorControlsActionsCallbackInterface.OnFlySlow;
@FlySlow.canceled -= m_Wrapper.m_SpectatorControlsActionsCallbackInterface.OnFlySlow;
@FlyUp.started -= m_Wrapper.m_SpectatorControlsActionsCallbackInterface.OnFlyUp;
@FlyUp.performed -= m_Wrapper.m_SpectatorControlsActionsCallbackInterface.OnFlyUp;
@FlyUp.canceled -= m_Wrapper.m_SpectatorControlsActionsCallbackInterface.OnFlyUp;
@FlyDown.started -= m_Wrapper.m_SpectatorControlsActionsCallbackInterface.OnFlyDown;
@FlyDown.performed -= m_Wrapper.m_SpectatorControlsActionsCallbackInterface.OnFlyDown;
@FlyDown.canceled -= m_Wrapper.m_SpectatorControlsActionsCallbackInterface.OnFlyDown;
@ScrollSpeedControlw.started -= m_Wrapper.m_SpectatorControlsActionsCallbackInterface.OnScrollSpeedControlw;
@ScrollSpeedControlw.performed -= m_Wrapper.m_SpectatorControlsActionsCallbackInterface.OnScrollSpeedControlw;
@ScrollSpeedControlw.canceled -= m_Wrapper.m_SpectatorControlsActionsCallbackInterface.OnScrollSpeedControlw;
}
m_Wrapper.m_SpectatorControlsActionsCallbackInterface = instance;
if (instance != null)
{
@SpeedDown.started += instance.OnSpeedDown;
@SpeedDown.performed += instance.OnSpeedDown;
@SpeedDown.canceled += instance.OnSpeedDown;
@SpeedUp.started += instance.OnSpeedUp;
@SpeedUp.performed += instance.OnSpeedUp;
@SpeedUp.canceled += instance.OnSpeedUp;
@FlyFast.started += instance.OnFlyFast;
@FlyFast.performed += instance.OnFlyFast;
@FlyFast.canceled += instance.OnFlyFast;
@FlySlow.started += instance.OnFlySlow;
@FlySlow.performed += instance.OnFlySlow;
@FlySlow.canceled += instance.OnFlySlow;
@FlyUp.started += instance.OnFlyUp;
@FlyUp.performed += instance.OnFlyUp;
@FlyUp.canceled += instance.OnFlyUp;
@FlyDown.started += instance.OnFlyDown;
@FlyDown.performed += instance.OnFlyDown;
@FlyDown.canceled += instance.OnFlyDown;
@ScrollSpeedControlw.started += instance.OnScrollSpeedControlw;
@ScrollSpeedControlw.performed += instance.OnScrollSpeedControlw;
@ScrollSpeedControlw.canceled += instance.OnScrollSpeedControlw;
}
}
}
@ -940,10 +969,11 @@ namespace TTTSC.Player.Character.Controller
}
public interface ISpectatorControlsActions
{
void OnSpeedDown(InputAction.CallbackContext context);
void OnSpeedUp(InputAction.CallbackContext context);
void OnFlyFast(InputAction.CallbackContext context);
void OnFlySlow(InputAction.CallbackContext context);
void OnFlyUp(InputAction.CallbackContext context);
void OnFlyDown(InputAction.CallbackContext context);
void OnScrollSpeedControlw(InputAction.CallbackContext context);
}
}
}

View file

@ -22,8 +22,7 @@ namespace TTTSC.Player.Character.Controller
private bool _performingMoveInput;
private Vector2 _moveDirection;
// Awake is called before the first frame
void Awake()
private void Start()
{
_playerGhostReffrenceHub = GetComponentInParent<PlayerGhostReffrenceHub>();
_cameraTransform = _playerGhostReffrenceHub.cameraTransform;
@ -32,7 +31,20 @@ namespace TTTSC.Player.Character.Controller
_playerInputReceiver.MoveInputEvent += MoveInput;
_playerInputReceiver.FlyUpInputEvent += FlyUpInput;
_playerInputReceiver.FlyDownInputEvent += FlyDownInput;
}
private void OnDisable()
{
_playerInputReceiver.MoveInputEvent -= MoveInput;
_playerInputReceiver.FlyUpInputEvent -= FlyUpInput;
_playerInputReceiver.FlyDownInputEvent -= FlyDownInput;
}
private void OnDestroy()
{
_playerInputReceiver.MoveInputEvent -= MoveInput;
_playerInputReceiver.FlyUpInputEvent -= FlyUpInput;
_playerInputReceiver.FlyDownInputEvent -= FlyDownInput;
}
// Update is called once per frame

View file

@ -6,14 +6,16 @@ namespace TTTSC.Player.Character
{
public class PlayerGhost : MonoBehaviour
{
public PlayerGhostReffrenceHub _playerGhostReffrenceHub;
public int shoopCoins;
[SerializeField]
private PlayerGhostReffrenceHub playerGhostReffrenceHub;
[SerializeField]
public PlayerInfo.PlayerInfoData playerInfoData;
// Start is called before the first frame update
void Start()
void Awake()
{
playerInfoData = ScriptableObject.CreateInstance<PlayerInfo.PlayerInfoData>();
}
// Update is called once per frame

View file

@ -8,6 +8,7 @@ namespace TTTSC.Player.Character
public Rigidbody characterRigidbody;
public Transform cameraTransform;
[Header("----------Scripts-----------")]
public PlayerGhost playerGhost;
public PlayerStateEnforcer playerStateEnforcrer;
public PlayerStateMachine playerStateMachine;
public Controller.PlayerInputReceiver playerInputReceiver;

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 87339120655d19d42a1007274a98a866
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,17 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace TTTSC.Player.Character.PlayerInfo
{
[CreateAssetMenu(menuName = "TTTSC/Player/Character/Player Info")]
public class PlayerInfoData : ScriptableObject
{
public int helth;
public int armor;
public PlayerStateMachine.playerPlayStates currentPlayerPlayState;
public PlayerStateMachine.playerClass currentPlayerClass;
}
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: e5e7e3247b0f48746b86aa879cc08a47
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,19 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[CreateAssetMenu(menuName = "TTTSC/Player/Character/Role")]
public class RoleData : ScriptableObject
{
public string roleName;
public int roleId;
public Color roleColor;
public enum RoleTeam
{
Innocent,
Traitor
}
public RoleTeam roleTeam;
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: ffe32805eb7bde24bb85bb43c12614e6
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -2,40 +2,53 @@ using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace TTTSC.Player
namespace TTTSC.Player.Character
{
public class PlayerStateEnforcer : MonoBehaviour
{
private PlayerStateMachine _playerStateMachine;
[SerializeField]
private PlayerGhostReffrenceHub _playerGhostReffrenceHub;
[SerializeField]
private PlayerInfo.PlayerInfoData _playerInfoData;
private PlayerGhost _playerGhost;
private Rigidbody _characterRigidbody;
[SerializeField][Tooltip("assign the 'alive' prefab here")]
private GameObject alivePlayerPrefab;
private GameObject spectatorPlayerPrefab;
private GameObject _aliveBodyPrefab;
[SerializeField][Tooltip("assign the 'dead' prefab here")]
private GameObject _spectatorBodyPrefab;
private GameObject _aliveBody;
private GameObject _spectatorBody;
private void Start()
{
_playerGhost = _playerGhostReffrenceHub.playerGhost;
_playerInfoData = _playerGhost.playerInfoData;
_characterRigidbody = _playerGhostReffrenceHub.characterRigidbody;
CheckPlayerState();
}
void CheckPlayerState()
{
switch (_playerStateMachine.currentPlayerPlayState)
switch (_playerInfoData.currentPlayerPlayState)
{
case PlayerStateMachine.playerPlayStates.Spectator:
//add logic for turning player in to a spectator
SpawnSpectatorPlayerBody();
_characterRigidbody.useGravity = false;
break;
case PlayerStateMachine.playerPlayStates.Alive:
//add logic for making player "alive"
//basicaly just reset player's stats
SpawnAlivePlayerBody();
_characterRigidbody.useGravity = true;
break;
}
}
void CheckPlayerClass()
{
switch (_playerStateMachine.currentPlayerClass)
switch (_playerInfoData.currentPlayerClass)
{
case PlayerStateMachine.playerClass.Spectator:
//this class is used when player excedes the max AFK time before being turned in to a spectator
//or when player just wants to spactate the game.
break;
case PlayerStateMachine.playerClass.Preparing:
//this is the default class for everyone right before the round starts
//this is the default class for everyone before the round starts
break;
case PlayerStateMachine.playerClass.Innocent:
//TODO
@ -49,14 +62,33 @@ namespace TTTSC.Player
}
}
void SpawnPlayerBody()
void SpawnAlivePlayerBody()
{
_playerInfoData.helth = 100;
if (_spectatorBody != null)
{
Destroy(_spectatorBody);
}
_aliveBody = Instantiate(_aliveBodyPrefab, transform.position, transform.rotation);
_aliveBody.transform.SetParent(transform);
}
void SpawnPlayerRagdoll()
void SpawnSpectatorPlayerBody()
{
if (_aliveBody != null)
{
Destroy(_aliveBody);
SpawnDeadBody();
}
_spectatorBody = Instantiate(_spectatorBodyPrefab, transform.position, transform.rotation);
_spectatorBody.transform.SetParent(transform);
}
void SpawnDeadBody()
{
//Add logic for spawning ragdoll and the dead body
}
}
}

View file

@ -2,28 +2,24 @@ using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace TTTSC.Player
namespace TTTSC.Player.Character
{
public class PlayerStateMachine : MonoBehaviour
{
public enum playerPlayStates
{
Spectator,
Alive
Alive,
Spectator
};
public playerPlayStates currentPlayerPlayState;
public enum playerClass
{
Spectator,
Preparing,
Innocent,
Detective,
Traitor
};
public playerClass currentPlayerClass;
}
}

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 6ed8dc1605db3094b8948f3b0685e58a
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,36 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using TMPro;
namespace TTTSC.Player.Character
{
public class AliveUi : MonoBehaviour
{
private PlayerGhostReffrenceHub _playerGhostReffrenceHub;
private PlayerGhost _playerGhost;
private PlayerInfo.PlayerInfoData _playerInfoData;
[SerializeField]
private TMP_Text _healthDisplay;
private TMP_Text _roleDisplay;
[SerializeField]
private Slider _healthBar;
// Start is called before the first frame update
void Start()
{
_playerGhostReffrenceHub = GetComponentInParent<PlayerGhostReffrenceHub>();
_playerGhost = _playerGhostReffrenceHub.playerGhost;
_playerInfoData = _playerGhost.playerInfoData;
}
// Update is called once per frame
void Update()
{
_healthDisplay.text = _playerInfoData.helth.ToString();
_healthBar.value = _playerInfoData.helth;
}
}
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 081c9ad28f2a28443a0b9bb2fed1da05
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View file

@ -1,6 +1,6 @@
{
"MonoBehaviour": {
"Version": 3,
"Version": 4,
"EnableBurstCompilation": true,
"EnableOptimisations": true,
"EnableSafetyChecks": false,
@ -11,6 +11,7 @@
"CpuMinTargetX64": 0,
"CpuMaxTargetX64": 0,
"CpuTargetsX32": 6,
"CpuTargetsX64": 72
"CpuTargetsX64": 72,
"OptimizeFor": 0
}
}

View file

@ -1,6 +1,6 @@
{
"MonoBehaviour": {
"Version": 3,
"Version": 4,
"DisabledWarnings": ""
}
}

View file

@ -0,0 +1,16 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &1
MonoBehaviour:
m_ObjectHideFlags: 61
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a287be6c49135cd4f9b2b8666c39d999, type: 3}
m_Name:
m_EditorClassIdentifier:
assetDefaultFramerate: 60
m_DefaultFrameRate: 60