Continued working on event controls

This commit is contained in:
2020-02-01 22:45:05 -05:00
parent d940ad88dd
commit 30c965ddc4
7 changed files with 1162 additions and 1543 deletions

View File

@@ -13,15 +13,17 @@ namespace Assets.Model
public KeyCode keyCode;
public Tile tile;
public Tile successTile;
public Tile failTile;
public Vector3Int position;
public bool isPlusTile;
public bool isPerformed;
public EventControlTile(KeyCode keyCode, Tile tile, Tile successTile, Vector3Int position, bool isPlusTile = false)
public EventControlTile(KeyCode keyCode, Tile tile, Tile successTile, Tile failTile, Vector3Int position, bool isPlusTile = false)
{
this.keyCode = keyCode;
this.tile = tile;
this.successTile = successTile;
this.failTile = failTile;
this.position = position;
this.isPlusTile = isPlusTile;
}

File diff suppressed because it is too large Load Diff

View File

@@ -9,6 +9,7 @@ public class BugMovement : MonoBehaviour
[SerializeField] private float movementSpeed = 10;
[SerializeField] BoxCollider2D playerCollider;
[SerializeField] EventControls eventControls;
[SerializeField] Player player;
private int leftAccumalator = 0;
private int rightAccumalator = 0;
@@ -25,7 +26,7 @@ public class BugMovement : MonoBehaviour
private void Update()
{
if (HasEncounteredPlayer())
eventControls.TriggerEvent(playerCollider, GetComponent<BoxCollider2D>());
eventControls.TriggerEvent(playerCollider, GetComponent<BoxCollider2D>(), player);
var totalFramesGoingLeft = framesPerSecond * secondsGoingLeft;
var totalFramesGoingRight = framesPerSecond * secondsGoingRight;

View File

@@ -11,6 +11,7 @@ public class EventControls : MonoBehaviour
[SerializeField] private Camera camera;
[SerializeField] private List<Tile> tiles;
[SerializeField] private List<Tile> successTiles;
[SerializeField] private List<Tile> failTiles;
[SerializeField] private Tile plusTile;
[SerializeField] private float framesPerControlTile = 15;
[SerializeField] private int nextControlYOffset = 0;
@@ -31,6 +32,7 @@ public class EventControls : MonoBehaviour
private int eventCycleAccumalator = 0;
private int tileMapClearDelayAccumalator = 0;
private EventControlTile currentEventControl;
private bool isInBattle = false;
private Collider2D currentPlayerCollider;
private Collider2D currentEnemyCollider;
@@ -42,7 +44,7 @@ public class EventControls : MonoBehaviour
private int framesPerSecond => 60;
private Vector3Int nextControlOffSetAsVector => new Vector3Int(nextControlXOffset, nextControlYOffset, 0);
public void TriggerEvent(Collider2D playerCollider, Collider2D enemyCollider)
public void TriggerEvent(Collider2D playerCollider, Collider2D enemyCollider, Player player)
{
currentPlayerCollider = playerCollider;
currentEnemyCollider = enemyCollider;
@@ -51,6 +53,7 @@ public class EventControls : MonoBehaviour
Physics2D.IgnoreCollision(playerCollider, enemyCollider, true);
eventTriggered = true;
isInBattle = true;
}
public bool IsEventTriggered()
@@ -141,7 +144,7 @@ public class EventControls : MonoBehaviour
.GetValueOrDefault();
}
private bool PerformControlEvent()
private void PerformControlEvent()
{
nextControlAccumalator = 0;
@@ -158,21 +161,35 @@ public class EventControls : MonoBehaviour
{
eventTriggered = false;
eventCycleAccumalator = 0;
// Destroy(currentEnemyCollider.gameObject);
// currentEnemyCollider = null;
}
return;
}
else if (eventCycleAccumalator >= eventCycleInSeconds * framesPerSecond)
{
eventTriggered = false;
isInBattle = false;
eventCycleAccumalator = 0;
Destroy(currentEnemyCollider.gameObject);
currentEnemyCollider = null;
currentEventControl = null;
player.ThrowUserInTheAirHurt();
return;
}
else
else if (FailedToClickCorrect(currentEventControl.keyCode))
{
eventCycleAccumalator++;
tilemap.SetTile(currentEventControl.position, currentEventControl.failTile);
eventTriggered = false;
isInBattle = false;
eventCycleAccumalator = 0;
currentEventControl = null;
player.ThrowUserInTheAirHurt();
return;
}
return false;
eventCycleAccumalator++;
}
private void Reset()
@@ -187,6 +204,7 @@ public class EventControls : MonoBehaviour
if (currentEnemyCollider != null)
Physics2D.IgnoreCollision(currentPlayerCollider, currentEnemyCollider, false);
if (!isInBattle)
player.EnablePlayerMovement();
currentPlayerCollider = null;
@@ -211,6 +229,7 @@ public class EventControls : MonoBehaviour
return new EventControlTile(TileToKeyMappings.TileToKey[randomNumber],
tiles[randomNumber],
successTiles[randomNumber],
failTiles[randomNumber],
position);
}
@@ -219,7 +238,15 @@ public class EventControls : MonoBehaviour
return new EventControlTile(KeyCode.Escape,
plusTile,
null,
null,
position,
true);
}
private bool FailedToClickCorrect(KeyCode correctKey)
{
var allKeysButCorrect = TileToKeyMappings.TileToKey.Where(x => x != correctKey);
return allKeysButCorrect.Any(x => Input.GetKeyDown(x));
}
}

View File

@@ -13,10 +13,12 @@ public class Player : MonoBehaviour
[SerializeField] private float wallLineCaseDistance = 0.5f;
[SerializeField] private float runErrorThreshold = 0.05f;
[SerializeField] private int startHealth = 3;
private int currentHealth;
[SerializeField] private int startStamina = 100;
[SerializeField] private int coffeValuePercent = 10;
[SerializeField] private int bugStaminaDamagePercent = 15;
[SerializeField] private float hurtVelocity = 15f;
private int currentHealth;
private int currentStamina;
[SerializeField] private SpriteRenderer healthBar;
@@ -222,4 +224,9 @@ public class Player : MonoBehaviour
{
isMovementEnabled = true;
}
public void ThrowUserInTheAirHurt()
{
GetComponent<Rigidbody2D>().velocity += new Vector2(Mathf.Sign(transform.localScale.x) * -1 * hurtVelocity, hurtVelocity);
}
}

View File

@@ -143,12 +143,12 @@ TextureImporter:
name: GioBug0
rect:
serializedVersion: 2
x: 0
x: 8
y: 0
width: 64
height: 64
alignment: 7
pivot: {x: 0.5, y: 0}
width: 51
height: 43
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
@@ -164,12 +164,12 @@ TextureImporter:
name: GioBug1
rect:
serializedVersion: 2
x: 64
x: 71
y: 0
width: 64
height: 64
alignment: 7
pivot: {x: 0.5, y: 0}
width: 51
height: 44
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []

View File

@@ -59,7 +59,7 @@ AnimatorStateMachine:
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: -2351193573875906098}
m_Position: {x: 200, y: 0, z: 0}
m_Position: {x: 270, y: 50, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []