From f61d1cc6c853d1d3699e291a5ac2a0b141633b30 Mon Sep 17 00:00:00 2001 From: ImRipper Date: Mon, 22 Mar 2021 11:07:24 +0200 Subject: [PATCH 1/2] Pavel Fuel --- .../Data/Character/CharacterData.asset | 3 +- Assets/Scenes/Game3.unity | 230 ++++++++++++++++++ .../Scripts/Data/Character/CharacterData.cs | 8 +- .../Scripts/Model/Character/BaseCharacter.cs | 4 +- .../Model/Character/CharacterBehaviour.cs | 14 +- Assets/Scripts/Model/Fuel.meta | 8 + Assets/Scripts/Model/Fuel/Fuel.cs | 11 + Assets/Scripts/Model/Fuel/Fuel.cs.meta | 11 + 8 files changed, 282 insertions(+), 7 deletions(-) create mode 100644 Assets/Scripts/Model/Fuel.meta create mode 100644 Assets/Scripts/Model/Fuel/Fuel.cs create mode 100644 Assets/Scripts/Model/Fuel/Fuel.cs.meta diff --git a/Assets/Resources/Data/Character/CharacterData.asset b/Assets/Resources/Data/Character/CharacterData.asset index 454a5252..9fef91e9 100644 --- a/Assets/Resources/Data/Character/CharacterData.asset +++ b/Assets/Resources/Data/Character/CharacterData.asset @@ -16,11 +16,12 @@ MonoBehaviour: Armor: 100 RegenerationArmor: 1 SpeedRotation: 8.43 - Speed: 11 + Speed: 3 Damage: 1 SlowBlockSpeed: 1.5 RamCooldown: 0.1 AngularSpeed: 2.5 + Fuel: 100 Curve: serializedVersion: 2 m_Curve: diff --git a/Assets/Scenes/Game3.unity b/Assets/Scenes/Game3.unity index 78290865..2a038a83 100644 --- a/Assets/Scenes/Game3.unity +++ b/Assets/Scenes/Game3.unity @@ -1239,6 +1239,41 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &446149988 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1887151977354699975, guid: a71fb2586b449a543b8ca607f4537b63, + type: 3} + m_PrefabInstance: {fileID: 830460918} + m_PrefabAsset: {fileID: 0} +--- !u!65 &446149992 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 446149988} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 0.31, y: 6.3031793, z: 0.39} + m_Center: {x: 0.00901972, y: 3.1515896, z: 0.03231659} +--- !u!54 &446149993 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 446149988} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 --- !u!1001 &487732384 PrefabInstance: m_ObjectHideFlags: 0 @@ -2045,6 +2080,41 @@ Rigidbody: m_Interpolate: 0 m_Constraints: 0 m_CollisionDetection: 0 +--- !u!1 &548572869 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 6314077825784720386, guid: a71fb2586b449a543b8ca607f4537b63, + type: 3} + m_PrefabInstance: {fileID: 830460918} + m_PrefabAsset: {fileID: 0} +--- !u!54 &548572873 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 548572869} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!65 &548572874 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 548572869} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1.0132478, y: 1.4922683, z: 1.3009132} + m_Center: {x: 0.0000053942204, y: -0.014782578, z: 0.030665014} --- !u!1 &561871846 GameObject: m_ObjectHideFlags: 0 @@ -2799,6 +2869,11 @@ PrefabInstance: propertyPath: m_StaticEditorFlags value: 0 objectReference: {fileID: 0} + - target: {fileID: 81987080822962906, guid: a71fb2586b449a543b8ca607f4537b63, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} - target: {fileID: 139252378680254626, guid: a71fb2586b449a543b8ca607f4537b63, type: 3} propertyPath: m_StaticEditorFlags @@ -2999,11 +3074,21 @@ PrefabInstance: propertyPath: m_StaticEditorFlags value: 0 objectReference: {fileID: 0} + - target: {fileID: 1887151977354699975, guid: a71fb2586b449a543b8ca607f4537b63, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} - target: {fileID: 1983300598120061600, guid: a71fb2586b449a543b8ca607f4537b63, type: 3} propertyPath: m_StaticEditorFlags value: 0 objectReference: {fileID: 0} + - target: {fileID: 2014294320404827544, guid: a71fb2586b449a543b8ca607f4537b63, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} - target: {fileID: 2249296156997620030, guid: a71fb2586b449a543b8ca607f4537b63, type: 3} propertyPath: m_StaticEditorFlags @@ -3114,6 +3199,11 @@ PrefabInstance: propertyPath: m_StaticEditorFlags value: 0 objectReference: {fileID: 0} + - target: {fileID: 4873430992714694756, guid: a71fb2586b449a543b8ca607f4537b63, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} - target: {fileID: 5441377833488583149, guid: a71fb2586b449a543b8ca607f4537b63, type: 3} propertyPath: m_StaticEditorFlags @@ -3199,6 +3289,16 @@ PrefabInstance: propertyPath: m_Size.z value: 0.49 objectReference: {fileID: 0} + - target: {fileID: 6287144367354779512, guid: a71fb2586b449a543b8ca607f4537b63, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6314077825784720386, guid: a71fb2586b449a543b8ca607f4537b63, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} - target: {fileID: 6507021202779390834, guid: a71fb2586b449a543b8ca607f4537b63, type: 3} propertyPath: m_StaticEditorFlags @@ -3214,6 +3314,11 @@ PrefabInstance: propertyPath: m_StaticEditorFlags value: 0 objectReference: {fileID: 0} + - target: {fileID: 6702631304122245949, guid: a71fb2586b449a543b8ca607f4537b63, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} - target: {fileID: 6714482899782334029, guid: a71fb2586b449a543b8ca607f4537b63, type: 3} propertyPath: m_StaticEditorFlags @@ -3224,6 +3329,21 @@ PrefabInstance: propertyPath: m_StaticEditorFlags value: 0 objectReference: {fileID: 0} + - target: {fileID: 7115692534074498885, guid: a71fb2586b449a543b8ca607f4537b63, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7116112704552941069, guid: a71fb2586b449a543b8ca607f4537b63, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7451296836920866915, guid: a71fb2586b449a543b8ca607f4537b63, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} - target: {fileID: 7579020437003168117, guid: a71fb2586b449a543b8ca607f4537b63, type: 3} propertyPath: m_StaticEditorFlags @@ -3259,6 +3379,11 @@ PrefabInstance: propertyPath: m_StaticEditorFlags value: 0 objectReference: {fileID: 0} + - target: {fileID: 8147473666892222394, guid: a71fb2586b449a543b8ca607f4537b63, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} - target: {fileID: 8251362010459446936, guid: a71fb2586b449a543b8ca607f4537b63, type: 3} propertyPath: m_StaticEditorFlags @@ -4691,6 +4816,41 @@ Rigidbody: m_Interpolate: 0 m_Constraints: 0 m_CollisionDetection: 0 +--- !u!1 &893001405 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 2014294320404827544, guid: a71fb2586b449a543b8ca607f4537b63, + type: 3} + m_PrefabInstance: {fileID: 830460918} + m_PrefabAsset: {fileID: 0} +--- !u!65 &893001409 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 893001405} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 0.92, y: 0.8273164, z: 1.7423443} + m_Center: {x: -0.042156145, y: 0.4136582, z: 0.0000038146973} +--- !u!54 &893001410 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 893001405} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 --- !u!1 &893956916 GameObject: m_ObjectHideFlags: 0 @@ -9314,6 +9474,41 @@ Transform: m_Father: {fileID: 1799266319} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1733972536 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7115692534074498885, guid: a71fb2586b449a543b8ca607f4537b63, + type: 3} + m_PrefabInstance: {fileID: 830460918} + m_PrefabAsset: {fileID: 0} +--- !u!54 &1733972540 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1733972536} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!65 &1733972541 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1733972536} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1.1466339, y: 0.7394343, z: 1.0160253} + m_Center: {x: 0.06724797, y: 0.36918005, z: -0.029716857} --- !u!1 &1734012474 stripped GameObject: m_CorrespondingSourceObject: {fileID: 4132456823511000085, guid: a71fb2586b449a543b8ca607f4537b63, @@ -9991,6 +10186,41 @@ Transform: m_Father: {fileID: 682858159} m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1837133182 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 6702631304122245949, guid: a71fb2586b449a543b8ca607f4537b63, + type: 3} + m_PrefabInstance: {fileID: 830460918} + m_PrefabAsset: {fileID: 0} +--- !u!54 &1837133186 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1837133182} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!65 &1837133187 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1837133182} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 2.987667, y: 1.9229115, z: 1.3321792} + m_Center: {x: -0.000881076, y: 0.9568595, z: 0.004993469} --- !u!1 &1855084698 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Data/Character/CharacterData.cs b/Assets/Scripts/Data/Character/CharacterData.cs index 871e4b3d..2c084185 100644 --- a/Assets/Scripts/Data/Character/CharacterData.cs +++ b/Assets/Scripts/Data/Character/CharacterData.cs @@ -11,10 +11,12 @@ public sealed class CharacterData : ScriptableObject public float RegenerationArmor; //регенирация силового поля public float SpeedRotation;// скорость поворота public float Speed;// скорость - public float Damage; + public float Damage;//урон public float SlowBlockSpeed; public float RamCooldown; - public float AngularSpeed; - public AnimationCurve Curve; + public float AngularSpeed;//скорость поворота + public float Fuel;//топливо + public float FuelLessSpeed;//скорость расхода + public AnimationCurve Curve;//кривая скорости поворота } } \ No newline at end of file diff --git a/Assets/Scripts/Model/Character/BaseCharacter.cs b/Assets/Scripts/Model/Character/BaseCharacter.cs index 818f20a1..07601a37 100644 --- a/Assets/Scripts/Model/Character/BaseCharacter.cs +++ b/Assets/Scripts/Model/Character/BaseCharacter.cs @@ -16,12 +16,14 @@ public abstract class BaseCharacter : MonoBehaviour protected float _currentSnakeHp;//Текущее кол-во Здоровья protected float _damage;//урон protected float _speed;//скорость - protected float _angularSpeed; + protected float _angularSpeed; + protected Fuel _fuel; private Direction _direction = Direction.Up; protected AnimationCurve _animation; public GameObject ParticleOnDie; public Image hpbar; + #endregion diff --git a/Assets/Scripts/Model/Character/CharacterBehaviour.cs b/Assets/Scripts/Model/Character/CharacterBehaviour.cs index d1f017d0..94ce2baf 100644 --- a/Assets/Scripts/Model/Character/CharacterBehaviour.cs +++ b/Assets/Scripts/Model/Character/CharacterBehaviour.cs @@ -14,7 +14,6 @@ public sealed class CharacterBehaviour : BaseCharacter [SerializeField] private float _radius; private CharacterData _characterData; - //private readonly List _blocksSnakes = new List();//блоки //private readonly List _positions = new List();// позиции блоков //private float _sizeBlock; @@ -26,8 +25,10 @@ public sealed class CharacterBehaviour : BaseCharacter private float _slowSnake; private float _ramCooldown; private float _currentRamCooldown = 0; + private float _fuelLessSpeed; private Queue _pointsTurret; private Vector3 _priveusPos; + #endregion @@ -43,6 +44,7 @@ private void Awake() { _player = GameObject.FindGameObjectWithTag(TagManager.GetTag(TagType.Player)); _timeService = Services.Instance.TimeService; + _fuel = new Fuel(); //_sizeBlock = (gameObject.GetComponent().sharedMesh.bounds.size.sqrMagnitude);// размер _characterData = Data.Instance.Character; //_positions.Add(gameObject.transform.position);//позиция головы @@ -55,8 +57,10 @@ private void Awake() _angularSpeed = _characterData.AngularSpeed; _snakeArmorGeneration = _characterData.RegenerationArmor; _ramCooldown = _characterData.RamCooldown; + _fuel.FuelCount = _characterData.Fuel; _pointsTurret = new Queue(); _animation = _characterData.Curve; + _fuelLessSpeed = _characterData.FuelLessSpeed; var pointTurrets = GameObject.FindGameObjectsWithTag(TagManager.GetTag(TagType.TurretPoint)); if (pointTurrets.Length != 0) { @@ -154,10 +158,16 @@ public void Collision() public void ConstantMove() //постоянное движение { + if (_fuel.FuelCount>0) + { + _fuel.UseFuel(_fuelLessSpeed* _timeService.DeltaTime()); + + } transform.rotation = Quaternion.Lerp(transform.rotation, _direction.ToQuaternion(), _timeService.DeltaTime() * _angularSpeed); + Debug.Log(_fuel.FuelCount); transform.position += transform.forward * - ((_speed /*- (_positions.Count * _slowSnake)*/) * _timeService.DeltaTime()); + ((_speed + _fuel.FuelCount) * _timeService.DeltaTime()); } public void InputMove(Direction direction) //движение diff --git a/Assets/Scripts/Model/Fuel.meta b/Assets/Scripts/Model/Fuel.meta new file mode 100644 index 00000000..4b99e49c --- /dev/null +++ b/Assets/Scripts/Model/Fuel.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e08bc603303e8944cbfc5ab629be0bca +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Model/Fuel/Fuel.cs b/Assets/Scripts/Model/Fuel/Fuel.cs new file mode 100644 index 00000000..97067a07 --- /dev/null +++ b/Assets/Scripts/Model/Fuel/Fuel.cs @@ -0,0 +1,11 @@ +using UnityEngine; + +public class Fuel +{ + private float _fuelCount; + public float FuelCount { get => _fuelCount/10; set => _fuelCount = value; } + public void UseFuel(float speed) + { + _fuelCount -= speed; + } +} diff --git a/Assets/Scripts/Model/Fuel/Fuel.cs.meta b/Assets/Scripts/Model/Fuel/Fuel.cs.meta new file mode 100644 index 00000000..3afe8728 --- /dev/null +++ b/Assets/Scripts/Model/Fuel/Fuel.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bcecd696cf9281a479711499ed4f12a7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: From 9644fc45a1bc98eb2934a26a65f04e4cbcd2fc7c Mon Sep 17 00:00:00 2001 From: ImRipper Date: Mon, 22 Mar 2021 11:07:24 +0200 Subject: [PATCH 2/2] Pavel Fuel --- .../Data/Character/CharacterData.asset | 3 +- Assets/Scenes/Game3.unity | 230 ++++++++++++++++++ .../Scripts/Data/Character/CharacterData.cs | 8 +- .../Scripts/Model/Character/BaseCharacter.cs | 4 +- .../Model/Character/CharacterBehaviour.cs | 14 +- Assets/Scripts/Model/Fuel.meta | 8 + Assets/Scripts/Model/Fuel/Fuel.cs | 11 + Assets/Scripts/Model/Fuel/Fuel.cs.meta | 11 + 8 files changed, 282 insertions(+), 7 deletions(-) create mode 100644 Assets/Scripts/Model/Fuel.meta create mode 100644 Assets/Scripts/Model/Fuel/Fuel.cs create mode 100644 Assets/Scripts/Model/Fuel/Fuel.cs.meta diff --git a/Assets/Resources/Data/Character/CharacterData.asset b/Assets/Resources/Data/Character/CharacterData.asset index 454a5252..9fef91e9 100644 --- a/Assets/Resources/Data/Character/CharacterData.asset +++ b/Assets/Resources/Data/Character/CharacterData.asset @@ -16,11 +16,12 @@ MonoBehaviour: Armor: 100 RegenerationArmor: 1 SpeedRotation: 8.43 - Speed: 11 + Speed: 3 Damage: 1 SlowBlockSpeed: 1.5 RamCooldown: 0.1 AngularSpeed: 2.5 + Fuel: 100 Curve: serializedVersion: 2 m_Curve: diff --git a/Assets/Scenes/Game3.unity b/Assets/Scenes/Game3.unity index 78290865..2a038a83 100644 --- a/Assets/Scenes/Game3.unity +++ b/Assets/Scenes/Game3.unity @@ -1239,6 +1239,41 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &446149988 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1887151977354699975, guid: a71fb2586b449a543b8ca607f4537b63, + type: 3} + m_PrefabInstance: {fileID: 830460918} + m_PrefabAsset: {fileID: 0} +--- !u!65 &446149992 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 446149988} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 0.31, y: 6.3031793, z: 0.39} + m_Center: {x: 0.00901972, y: 3.1515896, z: 0.03231659} +--- !u!54 &446149993 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 446149988} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 --- !u!1001 &487732384 PrefabInstance: m_ObjectHideFlags: 0 @@ -2045,6 +2080,41 @@ Rigidbody: m_Interpolate: 0 m_Constraints: 0 m_CollisionDetection: 0 +--- !u!1 &548572869 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 6314077825784720386, guid: a71fb2586b449a543b8ca607f4537b63, + type: 3} + m_PrefabInstance: {fileID: 830460918} + m_PrefabAsset: {fileID: 0} +--- !u!54 &548572873 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 548572869} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!65 &548572874 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 548572869} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1.0132478, y: 1.4922683, z: 1.3009132} + m_Center: {x: 0.0000053942204, y: -0.014782578, z: 0.030665014} --- !u!1 &561871846 GameObject: m_ObjectHideFlags: 0 @@ -2799,6 +2869,11 @@ PrefabInstance: propertyPath: m_StaticEditorFlags value: 0 objectReference: {fileID: 0} + - target: {fileID: 81987080822962906, guid: a71fb2586b449a543b8ca607f4537b63, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} - target: {fileID: 139252378680254626, guid: a71fb2586b449a543b8ca607f4537b63, type: 3} propertyPath: m_StaticEditorFlags @@ -2999,11 +3074,21 @@ PrefabInstance: propertyPath: m_StaticEditorFlags value: 0 objectReference: {fileID: 0} + - target: {fileID: 1887151977354699975, guid: a71fb2586b449a543b8ca607f4537b63, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} - target: {fileID: 1983300598120061600, guid: a71fb2586b449a543b8ca607f4537b63, type: 3} propertyPath: m_StaticEditorFlags value: 0 objectReference: {fileID: 0} + - target: {fileID: 2014294320404827544, guid: a71fb2586b449a543b8ca607f4537b63, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} - target: {fileID: 2249296156997620030, guid: a71fb2586b449a543b8ca607f4537b63, type: 3} propertyPath: m_StaticEditorFlags @@ -3114,6 +3199,11 @@ PrefabInstance: propertyPath: m_StaticEditorFlags value: 0 objectReference: {fileID: 0} + - target: {fileID: 4873430992714694756, guid: a71fb2586b449a543b8ca607f4537b63, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} - target: {fileID: 5441377833488583149, guid: a71fb2586b449a543b8ca607f4537b63, type: 3} propertyPath: m_StaticEditorFlags @@ -3199,6 +3289,16 @@ PrefabInstance: propertyPath: m_Size.z value: 0.49 objectReference: {fileID: 0} + - target: {fileID: 6287144367354779512, guid: a71fb2586b449a543b8ca607f4537b63, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6314077825784720386, guid: a71fb2586b449a543b8ca607f4537b63, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} - target: {fileID: 6507021202779390834, guid: a71fb2586b449a543b8ca607f4537b63, type: 3} propertyPath: m_StaticEditorFlags @@ -3214,6 +3314,11 @@ PrefabInstance: propertyPath: m_StaticEditorFlags value: 0 objectReference: {fileID: 0} + - target: {fileID: 6702631304122245949, guid: a71fb2586b449a543b8ca607f4537b63, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} - target: {fileID: 6714482899782334029, guid: a71fb2586b449a543b8ca607f4537b63, type: 3} propertyPath: m_StaticEditorFlags @@ -3224,6 +3329,21 @@ PrefabInstance: propertyPath: m_StaticEditorFlags value: 0 objectReference: {fileID: 0} + - target: {fileID: 7115692534074498885, guid: a71fb2586b449a543b8ca607f4537b63, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7116112704552941069, guid: a71fb2586b449a543b8ca607f4537b63, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7451296836920866915, guid: a71fb2586b449a543b8ca607f4537b63, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} - target: {fileID: 7579020437003168117, guid: a71fb2586b449a543b8ca607f4537b63, type: 3} propertyPath: m_StaticEditorFlags @@ -3259,6 +3379,11 @@ PrefabInstance: propertyPath: m_StaticEditorFlags value: 0 objectReference: {fileID: 0} + - target: {fileID: 8147473666892222394, guid: a71fb2586b449a543b8ca607f4537b63, + type: 3} + propertyPath: m_StaticEditorFlags + value: 0 + objectReference: {fileID: 0} - target: {fileID: 8251362010459446936, guid: a71fb2586b449a543b8ca607f4537b63, type: 3} propertyPath: m_StaticEditorFlags @@ -4691,6 +4816,41 @@ Rigidbody: m_Interpolate: 0 m_Constraints: 0 m_CollisionDetection: 0 +--- !u!1 &893001405 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 2014294320404827544, guid: a71fb2586b449a543b8ca607f4537b63, + type: 3} + m_PrefabInstance: {fileID: 830460918} + m_PrefabAsset: {fileID: 0} +--- !u!65 &893001409 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 893001405} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 0.92, y: 0.8273164, z: 1.7423443} + m_Center: {x: -0.042156145, y: 0.4136582, z: 0.0000038146973} +--- !u!54 &893001410 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 893001405} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 --- !u!1 &893956916 GameObject: m_ObjectHideFlags: 0 @@ -9314,6 +9474,41 @@ Transform: m_Father: {fileID: 1799266319} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1733972536 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 7115692534074498885, guid: a71fb2586b449a543b8ca607f4537b63, + type: 3} + m_PrefabInstance: {fileID: 830460918} + m_PrefabAsset: {fileID: 0} +--- !u!54 &1733972540 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1733972536} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!65 &1733972541 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1733972536} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1.1466339, y: 0.7394343, z: 1.0160253} + m_Center: {x: 0.06724797, y: 0.36918005, z: -0.029716857} --- !u!1 &1734012474 stripped GameObject: m_CorrespondingSourceObject: {fileID: 4132456823511000085, guid: a71fb2586b449a543b8ca607f4537b63, @@ -9991,6 +10186,41 @@ Transform: m_Father: {fileID: 682858159} m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1837133182 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 6702631304122245949, guid: a71fb2586b449a543b8ca607f4537b63, + type: 3} + m_PrefabInstance: {fileID: 830460918} + m_PrefabAsset: {fileID: 0} +--- !u!54 &1837133186 +Rigidbody: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1837133182} + serializedVersion: 2 + m_Mass: 1 + m_Drag: 0 + m_AngularDrag: 0.05 + m_UseGravity: 1 + m_IsKinematic: 0 + m_Interpolate: 0 + m_Constraints: 0 + m_CollisionDetection: 0 +--- !u!65 &1837133187 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1837133182} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 2.987667, y: 1.9229115, z: 1.3321792} + m_Center: {x: -0.000881076, y: 0.9568595, z: 0.004993469} --- !u!1 &1855084698 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Data/Character/CharacterData.cs b/Assets/Scripts/Data/Character/CharacterData.cs index 871e4b3d..2c084185 100644 --- a/Assets/Scripts/Data/Character/CharacterData.cs +++ b/Assets/Scripts/Data/Character/CharacterData.cs @@ -11,10 +11,12 @@ public sealed class CharacterData : ScriptableObject public float RegenerationArmor; //регенирация силового поля public float SpeedRotation;// скорость поворота public float Speed;// скорость - public float Damage; + public float Damage;//урон public float SlowBlockSpeed; public float RamCooldown; - public float AngularSpeed; - public AnimationCurve Curve; + public float AngularSpeed;//скорость поворота + public float Fuel;//топливо + public float FuelLessSpeed;//скорость расхода + public AnimationCurve Curve;//кривая скорости поворота } } \ No newline at end of file diff --git a/Assets/Scripts/Model/Character/BaseCharacter.cs b/Assets/Scripts/Model/Character/BaseCharacter.cs index 818f20a1..07601a37 100644 --- a/Assets/Scripts/Model/Character/BaseCharacter.cs +++ b/Assets/Scripts/Model/Character/BaseCharacter.cs @@ -16,12 +16,14 @@ public abstract class BaseCharacter : MonoBehaviour protected float _currentSnakeHp;//Текущее кол-во Здоровья protected float _damage;//урон protected float _speed;//скорость - protected float _angularSpeed; + protected float _angularSpeed; + protected Fuel _fuel; private Direction _direction = Direction.Up; protected AnimationCurve _animation; public GameObject ParticleOnDie; public Image hpbar; + #endregion diff --git a/Assets/Scripts/Model/Character/CharacterBehaviour.cs b/Assets/Scripts/Model/Character/CharacterBehaviour.cs index d1f017d0..94ce2baf 100644 --- a/Assets/Scripts/Model/Character/CharacterBehaviour.cs +++ b/Assets/Scripts/Model/Character/CharacterBehaviour.cs @@ -14,7 +14,6 @@ public sealed class CharacterBehaviour : BaseCharacter [SerializeField] private float _radius; private CharacterData _characterData; - //private readonly List _blocksSnakes = new List();//блоки //private readonly List _positions = new List();// позиции блоков //private float _sizeBlock; @@ -26,8 +25,10 @@ public sealed class CharacterBehaviour : BaseCharacter private float _slowSnake; private float _ramCooldown; private float _currentRamCooldown = 0; + private float _fuelLessSpeed; private Queue _pointsTurret; private Vector3 _priveusPos; + #endregion @@ -43,6 +44,7 @@ private void Awake() { _player = GameObject.FindGameObjectWithTag(TagManager.GetTag(TagType.Player)); _timeService = Services.Instance.TimeService; + _fuel = new Fuel(); //_sizeBlock = (gameObject.GetComponent().sharedMesh.bounds.size.sqrMagnitude);// размер _characterData = Data.Instance.Character; //_positions.Add(gameObject.transform.position);//позиция головы @@ -55,8 +57,10 @@ private void Awake() _angularSpeed = _characterData.AngularSpeed; _snakeArmorGeneration = _characterData.RegenerationArmor; _ramCooldown = _characterData.RamCooldown; + _fuel.FuelCount = _characterData.Fuel; _pointsTurret = new Queue(); _animation = _characterData.Curve; + _fuelLessSpeed = _characterData.FuelLessSpeed; var pointTurrets = GameObject.FindGameObjectsWithTag(TagManager.GetTag(TagType.TurretPoint)); if (pointTurrets.Length != 0) { @@ -154,10 +158,16 @@ public void Collision() public void ConstantMove() //постоянное движение { + if (_fuel.FuelCount>0) + { + _fuel.UseFuel(_fuelLessSpeed* _timeService.DeltaTime()); + + } transform.rotation = Quaternion.Lerp(transform.rotation, _direction.ToQuaternion(), _timeService.DeltaTime() * _angularSpeed); + Debug.Log(_fuel.FuelCount); transform.position += transform.forward * - ((_speed /*- (_positions.Count * _slowSnake)*/) * _timeService.DeltaTime()); + ((_speed + _fuel.FuelCount) * _timeService.DeltaTime()); } public void InputMove(Direction direction) //движение diff --git a/Assets/Scripts/Model/Fuel.meta b/Assets/Scripts/Model/Fuel.meta new file mode 100644 index 00000000..4b99e49c --- /dev/null +++ b/Assets/Scripts/Model/Fuel.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e08bc603303e8944cbfc5ab629be0bca +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Model/Fuel/Fuel.cs b/Assets/Scripts/Model/Fuel/Fuel.cs new file mode 100644 index 00000000..97067a07 --- /dev/null +++ b/Assets/Scripts/Model/Fuel/Fuel.cs @@ -0,0 +1,11 @@ +using UnityEngine; + +public class Fuel +{ + private float _fuelCount; + public float FuelCount { get => _fuelCount/10; set => _fuelCount = value; } + public void UseFuel(float speed) + { + _fuelCount -= speed; + } +} diff --git a/Assets/Scripts/Model/Fuel/Fuel.cs.meta b/Assets/Scripts/Model/Fuel/Fuel.cs.meta new file mode 100644 index 00000000..3afe8728 --- /dev/null +++ b/Assets/Scripts/Model/Fuel/Fuel.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: bcecd696cf9281a479711499ed4f12a7 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: