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
{
[Serializable]
public class HexGrid
{
private HexCell[] _cells;

View File

@ -28,7 +28,8 @@ namespace Items.ItemViews
{
Rockets[_color].SetActive(true);
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) =>
Vector3.Distance(x.transform.position, _unit.transform.position).CompareTo(
Vector3.Distance(y.transform.position, _unit.transform.position)));
@ -41,7 +42,9 @@ namespace Items.ItemViews
GetNearestUnit();
transform.DOKill();
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 DefaultNamespace;
using DG.Tweening;
using HexFiled;
using UnityEngine;
using Weapons;
@ -12,6 +13,7 @@ namespace Items
{
[SerializeField] private Weapon _weapon;
[SerializeField] private GameObject _aimGameObject;
[SerializeField] private float lifeTime;
private GameObject _aimInstance;
private HexDirection _direction;
@ -43,10 +45,15 @@ namespace Items
var cell = HexManager.UnitCurrentCell[Unit.Color].cell.GetNeighbor(_direction);
Unit.RotateUnit(new Vector2((cell.transform.position - Unit.Instance.transform.position).normalized.x,
(cell.transform.position - Unit.Instance.transform.position).normalized.z));
_weapon.SetModifiedDamage(0);
_weapon.objectToThrow.GetComponent<ISetUp>().SetUp(Unit);
_aimInstance.SetActive(false);
var dir = DirectionHelper.DirectionTo(Unit.Instance.transform.position, cell.transform.position);
_weapon.Fire(Unit.Instance.transform, new Vector2(dir.x, dir.z));
TimerHelper.Instance.StartTimer(() =>
{
_weapon.DestroyBall();
}, lifeTime);
OnItemUsed?.Invoke();
}
}

View File

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

View File

@ -23,6 +23,7 @@ namespace Weapons
public AudioClip shotSound;
public AudioClip hitSound;
private GameObject ball;
public void SetModifiedDamage(int bonus)
{
modifiedDamage = damage + bonus;
@ -30,7 +31,7 @@ namespace Weapons
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.rotation);
@ -38,17 +39,27 @@ namespace Weapons
MusicController.Instance.PlayAudioClip(shotSound, ball);
ball.AddComponent<WeaponView>().SetWeapon(this);
Weapon tmpThis = this;
ball.transform.DOMove(new Vector3(direction.normalized.x,
GameObject localBall = ball;
localBall.transform.DOMove(new Vector3(direction.normalized.x,
0, direction.normalized.y) * tmpThis.disnatce * HexGrid.HexDistance +
start.position + new Vector3(0, 2, 0), tmpThis.speed)
.SetEase(Ease.Linear)
.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.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