Updated Unity Version
Added graphics options and rendering quality level settings Added new movement patterns to the dumb enemy AI Added chance for Coward Enemies to drop a random Added method to correctly reset the game variables on death and win screens Updated the UI to work on different resolutions without breaking Moved Sprites into a sprites folder Fixed issue where score would overflow the int because the multiplier was too high Fixed issue where new lives gained from the score breakpoints were not being calculated correctly Fixed issue where clicking off a menu element then trying to control the menu with the controller did not correctly reselect a menu item Fixed issue where enemies colliding with the outer boundary too much would break the sfx and music (i assume from a buffering issue)
This commit is contained in:
@ -31,14 +31,19 @@ public class DumbEnemyHoverMovement : HoverMovement
|
||||
private bool _aiJump;
|
||||
|
||||
public float maxRNGThrust;
|
||||
public float movementDecayRate;
|
||||
public float movementTickMax;
|
||||
private float _movementCurrentTick;
|
||||
public float movementDecayRate;
|
||||
private List<TimerHelper> _movementMoveTimers = new List<TimerHelper>();
|
||||
public float patternChangeInterval;
|
||||
private TimerHelper _movementPatternTimer;
|
||||
|
||||
private float _currentHoldHeight;
|
||||
private float _heightChangeTick;
|
||||
public float heightChangeInterval;
|
||||
|
||||
private int _currentPattern;
|
||||
private int _nextThrustDir;
|
||||
private int _nextTurnDir;
|
||||
|
||||
protected override void DoAwakeTasks()
|
||||
{
|
||||
base.DoAwakeTasks();
|
||||
@ -64,6 +69,10 @@ public class DumbEnemyHoverMovement : HoverMovement
|
||||
_currentHoldHeight = GetCurrentHeight();
|
||||
_heightChangeTick = 0.0f;
|
||||
|
||||
_movementPatternTimer = new TimerHelper(patternChangeInterval, false);
|
||||
_movementPatternTimer.HasTicked(patternChangeInterval + 100.0f);
|
||||
_currentPattern = Random.Range(0, 4);
|
||||
|
||||
BaseOnStart();
|
||||
// Custom start stuff can go here
|
||||
}
|
||||
@ -97,35 +106,126 @@ public class DumbEnemyHoverMovement : HoverMovement
|
||||
float playerHeight = _player.GetComponent<PlayerHoverMovement>().GetCurrentHeight();
|
||||
|
||||
_aiVert = 1;
|
||||
if (_movementCurrentTick >= movementTickMax)
|
||||
if (_movementPatternTimer.HasTicked(currentTimeStep))
|
||||
{
|
||||
// Pick a random horz value
|
||||
if (_aiHorz == 0)
|
||||
_currentPattern = Random.Range(0, 4);
|
||||
_movementMoveTimers.Clear();
|
||||
|
||||
switch (_currentPattern)
|
||||
{
|
||||
_aiHorz = Random.Range(0, maxRNGThrust);
|
||||
default:
|
||||
case 0:
|
||||
int dirRandom = Random.Range(0, 2);
|
||||
if (dirRandom == 0)
|
||||
{
|
||||
_nextTurnDir = -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
_nextTurnDir = 1;
|
||||
}
|
||||
_movementMoveTimers.Add(new TimerHelper(30.0f, false));
|
||||
_movementMoveTimers.Add(new TimerHelper(3.0f, false));
|
||||
break;
|
||||
case 1:
|
||||
_movementMoveTimers.Add(new TimerHelper(10.0f));
|
||||
break;
|
||||
case 2:
|
||||
int zigRandom = Random.Range(0, 2);
|
||||
if (zigRandom == 0)
|
||||
{
|
||||
_nextTurnDir = -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
_nextTurnDir = 1;
|
||||
}
|
||||
_movementMoveTimers.Add(new TimerHelper(3.0f, false));
|
||||
break;
|
||||
case 3:
|
||||
_movementMoveTimers.Add(new TimerHelper(15.0f, false));
|
||||
break;
|
||||
}
|
||||
|
||||
// Pick a random vert value
|
||||
if (_aiVert == 0)
|
||||
{
|
||||
_aiVert = Random.Range(0, maxRNGThrust);
|
||||
}
|
||||
|
||||
_movementCurrentTick = 0.0f;
|
||||
_movementPatternTimer.RestartTimer();
|
||||
}
|
||||
else
|
||||
{
|
||||
// Reset the variables to stop it turning/moving
|
||||
if (_aiHorz > 0)
|
||||
switch (_currentPattern)
|
||||
{
|
||||
_aiHorz = Mathf.Clamp(_aiHorz - movementDecayRate, 0, maxRNGThrust); ;
|
||||
}
|
||||
if (_aiVert > 0)
|
||||
{
|
||||
_aiVert = Mathf.Clamp(_aiVert - movementDecayRate, 0, maxRNGThrust);
|
||||
}
|
||||
default:
|
||||
case 0:
|
||||
_aiVert = 1.0f;
|
||||
if (_movementMoveTimers[0].HasTicked(currentTimeStep))
|
||||
{
|
||||
if (_movementMoveTimers[1].HasTicked(currentTimeStep))
|
||||
{
|
||||
int dirRandom = Random.Range(0, 2);
|
||||
if (dirRandom == 0)
|
||||
{
|
||||
_nextTurnDir = -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
_nextTurnDir = 1;
|
||||
}
|
||||
|
||||
_movementCurrentTick += currentTimeStep;
|
||||
_movementMoveTimers[0].RestartTimer();
|
||||
_movementMoveTimers[1].RestartTimer();
|
||||
}
|
||||
else
|
||||
{
|
||||
_aiHorz = _nextTurnDir;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_aiHorz = 0.0f;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
_aiVert = 1.0f;
|
||||
if (_movementMoveTimers[0].HasTicked(currentTimeStep))
|
||||
{
|
||||
int dirTimesRan = _movementMoveTimers[0].TimesRun % 2;
|
||||
if (dirTimesRan == 0)
|
||||
{
|
||||
_aiHorz = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
_aiHorz = -1;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
_aiVert = 1.0f;
|
||||
if (_movementMoveTimers[0].HasTicked(currentTimeStep))
|
||||
{
|
||||
_nextTurnDir *= -1;
|
||||
|
||||
_movementMoveTimers[0].RestartTimer();
|
||||
}
|
||||
else
|
||||
{
|
||||
_aiHorz = _nextTurnDir;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (_movementMoveTimers[0].HasTicked(currentTimeStep))
|
||||
{
|
||||
_nextThrustDir = Random.Range(0, 2);
|
||||
_nextTurnDir = Random.Range(-1, 2);
|
||||
|
||||
_movementMoveTimers[0].RestartTimer();
|
||||
}
|
||||
else
|
||||
{
|
||||
_aiVert = _nextThrustDir;
|
||||
_aiHorz = _nextTurnDir;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (_currentHoldHeight >= GetCurrentHeight())
|
||||
@ -188,7 +288,7 @@ public class DumbEnemyHoverMovement : HoverMovement
|
||||
if (vertInput > 0)
|
||||
{
|
||||
_thrusting = true;
|
||||
_thrustDirection = 1;
|
||||
_thrustDirection = 1.0f * _aiVert;
|
||||
if (_residualThrust < residualThrustMax)
|
||||
{
|
||||
_residualThrust += residualThrustStep * currentTimeStep;
|
||||
@ -208,7 +308,7 @@ public class DumbEnemyHoverMovement : HoverMovement
|
||||
else
|
||||
{
|
||||
_thrusting = true;
|
||||
_thrustDirection = -1;
|
||||
_thrustDirection = -1.0f * _aiVert;
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -224,7 +324,7 @@ public class DumbEnemyHoverMovement : HoverMovement
|
||||
else
|
||||
{
|
||||
_thrusting = false;
|
||||
_thrustDirection = 0;
|
||||
_thrustDirection = 0.0f;
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user