fixed rocket, hard capture bar

This commit is contained in:
dddushesss 2022-02-12 19:40:04 +03:00
parent 7c8f78a39b
commit 919d7c8726
6 changed files with 33 additions and 11 deletions

View File

@ -9,7 +9,7 @@ using Object = UnityEngine.Object;
namespace HexFiled namespace HexFiled
{ {
[Serializable]
public class HexGrid public class HexGrid
{ {
private HexCell[] _cells; private HexCell[] _cells;

View File

@ -28,7 +28,8 @@ namespace Items.ItemViews
{ {
Rockets[_color].SetActive(true); Rockets[_color].SetActive(true);
listUnits = new List<GameObject>(); listUnits = new List<GameObject>();
listUnits.AddRange(HexManager.UnitCurrentCell.Where(x => x.Key != _color).ToList().Select(x => x.Value.unit.Instance)); listUnits.AddRange(HexManager.UnitCurrentCell.Where(x => x.Key != _color).ToList()
.Select(x => x.Value.unit.Instance));
listUnits.Sort((x, y) => listUnits.Sort((x, y) =>
Vector3.Distance(x.transform.position, _unit.transform.position).CompareTo( Vector3.Distance(x.transform.position, _unit.transform.position).CompareTo(
Vector3.Distance(y.transform.position, _unit.transform.position))); Vector3.Distance(y.transform.position, _unit.transform.position)));
@ -41,7 +42,9 @@ namespace Items.ItemViews
GetNearestUnit(); GetNearestUnit();
transform.DOKill(); transform.DOKill();
transform.LookAt(listUnits.First().transform); transform.LookAt(listUnits.First().transform);
transform.DOMove(listUnits.First().transform.position, Vector3.Distance(listUnits.First().transform.position, _unit.transform.position)*0.2f).SetEase(Ease.Linear); transform.DOMove(listUnits.First().transform.position,
Vector3.Distance(listUnits.First().transform.position, _unit.transform.position) * 0.2f)
.SetEase(Ease.Linear);
} }
} }
} }

View File

@ -1,5 +1,6 @@
using System; using System;
using DefaultNamespace; using DefaultNamespace;
using DG.Tweening;
using HexFiled; using HexFiled;
using UnityEngine; using UnityEngine;
using Weapons; using Weapons;
@ -12,6 +13,7 @@ namespace Items
{ {
[SerializeField] private Weapon _weapon; [SerializeField] private Weapon _weapon;
[SerializeField] private GameObject _aimGameObject; [SerializeField] private GameObject _aimGameObject;
[SerializeField] private float lifeTime;
private GameObject _aimInstance; private GameObject _aimInstance;
private HexDirection _direction; private HexDirection _direction;
@ -43,10 +45,15 @@ namespace Items
var cell = HexManager.UnitCurrentCell[Unit.Color].cell.GetNeighbor(_direction); var cell = HexManager.UnitCurrentCell[Unit.Color].cell.GetNeighbor(_direction);
Unit.RotateUnit(new Vector2((cell.transform.position - Unit.Instance.transform.position).normalized.x, Unit.RotateUnit(new Vector2((cell.transform.position - Unit.Instance.transform.position).normalized.x,
(cell.transform.position - Unit.Instance.transform.position).normalized.z)); (cell.transform.position - Unit.Instance.transform.position).normalized.z));
_weapon.SetModifiedDamage(0);
_weapon.objectToThrow.GetComponent<ISetUp>().SetUp(Unit); _weapon.objectToThrow.GetComponent<ISetUp>().SetUp(Unit);
_aimInstance.SetActive(false); _aimInstance.SetActive(false);
var dir = DirectionHelper.DirectionTo(Unit.Instance.transform.position, cell.transform.position); var dir = DirectionHelper.DirectionTo(Unit.Instance.transform.position, cell.transform.position);
_weapon.Fire(Unit.Instance.transform, new Vector2(dir.x, dir.z)); _weapon.Fire(Unit.Instance.transform, new Vector2(dir.x, dir.z));
TimerHelper.Instance.StartTimer(() =>
{
_weapon.DestroyBall();
}, lifeTime);
OnItemUsed?.Invoke(); OnItemUsed?.Invoke();
} }
} }

View File

@ -76,8 +76,7 @@ public class UnitView : MonoBehaviour
public void HardCaptureHex(HexCell cell) public void HardCaptureHex(HexCell cell)
{ {
_unit.BarCanvas.CaptureBar.DOFillAmount(0f, 0);
_barCanvas.CaptureBack.SetActive(true); _barCanvas.CaptureBack.SetActive(true);
_sequence = DOTween.Sequence(); _sequence = DOTween.Sequence();
_sequence.Append(_unit.BarCanvas.CaptureBar.DOFillAmount(1f, _hardCaptureTime).SetEase(Ease.Linear).OnComplete( _sequence.Append(_unit.BarCanvas.CaptureBar.DOFillAmount(1f, _hardCaptureTime).SetEase(Ease.Linear).OnComplete(
@ -87,6 +86,7 @@ public class UnitView : MonoBehaviour
_barCanvas.CaptureBack.SetActive(false); _barCanvas.CaptureBack.SetActive(false);
MusicController.Instance.PlayRandomClip(MusicController.Instance.MusicData.SfxMusic.Captures, MusicController.Instance.PlayRandomClip(MusicController.Instance.MusicData.SfxMusic.Captures,
cell.gameObject); cell.gameObject);
})); }));
_sequence.Play(); _sequence.Play();
} }

View File

@ -23,6 +23,7 @@ namespace Weapons
public AudioClip shotSound; public AudioClip shotSound;
public AudioClip hitSound; public AudioClip hitSound;
private GameObject ball;
public void SetModifiedDamage(int bonus) public void SetModifiedDamage(int bonus)
{ {
modifiedDamage = damage + bonus; modifiedDamage = damage + bonus;
@ -30,7 +31,7 @@ namespace Weapons
public void Fire(Transform start, Vector2 direction) public void Fire(Transform start, Vector2 direction)
{ {
var ball = Object.Instantiate(objectToThrow, ball = Object.Instantiate(objectToThrow,
start.forward + start.transform.position + new Vector3(0, 2), start.forward + start.transform.position + new Vector3(0, 2),
start.rotation); start.rotation);
@ -38,17 +39,27 @@ namespace Weapons
MusicController.Instance.PlayAudioClip(shotSound, ball); MusicController.Instance.PlayAudioClip(shotSound, ball);
ball.AddComponent<WeaponView>().SetWeapon(this); ball.AddComponent<WeaponView>().SetWeapon(this);
Weapon tmpThis = this; Weapon tmpThis = this;
ball.transform.DOMove(new Vector3(direction.normalized.x, GameObject localBall = ball;
0, direction.normalized.y) * tmpThis.disnatce * HexGrid.HexDistance + localBall.transform.DOMove(new Vector3(direction.normalized.x,
start.position + new Vector3(0, 2, 0), tmpThis.speed) 0, direction.normalized.y) * tmpThis.disnatce * HexGrid.HexDistance +
start.position + new Vector3(0, 2, 0), tmpThis.speed)
.SetEase(Ease.Linear) .SetEase(Ease.Linear)
.OnComplete(() => .OnComplete(() =>
{ {
var vfx = VFXController.Instance.PlayEffect(tmpThis.VFXGameObject, ball.transform.position, ball.transform.rotation); var vfx = VFXController.Instance.PlayEffect(tmpThis.VFXGameObject, localBall.transform.position, localBall.transform.rotation);
MusicController.Instance.AddAudioSource(vfx); MusicController.Instance.AddAudioSource(vfx);
MusicController.Instance.PlayAudioClip(tmpThis.hitSound, vfx); MusicController.Instance.PlayAudioClip(tmpThis.hitSound, vfx);
Object.Destroy(ball); Object.Destroy(localBall);
}); });
} }
public void DestroyBall()
{
var vfx = VFXController.Instance.PlayEffect(VFXGameObject, ball.transform.position, ball.transform.rotation);
MusicController.Instance.AddAudioSource(vfx);
MusicController.Instance.PlayAudioClip(hitSound, vfx);
ball.transform.DOKill();
Object.Destroy(ball);
}
} }
} }

File diff suppressed because one or more lines are too long