fixed rocket, hard capture bar
This commit is contained in:
parent
7c8f78a39b
commit
919d7c8726
@ -9,7 +9,7 @@ using Object = UnityEngine.Object;
|
||||
|
||||
namespace HexFiled
|
||||
{
|
||||
[Serializable]
|
||||
|
||||
public class HexGrid
|
||||
{
|
||||
private HexCell[] _cells;
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
@ -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();
|
||||
}
|
||||
|
@ -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,
|
||||
0, direction.normalized.y) * tmpThis.disnatce * HexGrid.HexDistance +
|
||||
start.position + new Vector3(0, 2, 0), tmpThis.speed)
|
||||
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
Loading…
x
Reference in New Issue
Block a user