fixed rocket, hard capture bar
This commit is contained in:
parent
7c8f78a39b
commit
919d7c8726
@ -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;
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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();
|
||||||
}
|
}
|
||||||
|
@ -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
Loading…
x
Reference in New Issue
Block a user