This commit is contained in:
Sweet Tini
2020-02-02 11:02:08 -05:00
18 changed files with 879 additions and 436 deletions

View File

@@ -13,8 +13,9 @@ GameObject:
- component: {fileID: 3827363133515929328}
- component: {fileID: 3827363133515929335}
- component: {fileID: 3827363133515929334}
- component: {fileID: -6605527394410161759}
m_Layer: 9
m_Name: Bug
m_Name: GioBug
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -72,8 +73,9 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_Sprite: {fileID: 21300000, guid: 96053fa04d918a448a0636f9fec1c373, type: 3}
m_Color: {r: 1, g: 0, b: 0, a: 1}
m_Sprite: {fileID: 7874731793569252650, guid: 843576248a0c2dc4eb92d627ffe951a6,
type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
@@ -96,18 +98,18 @@ BoxCollider2D:
m_IsTrigger: 0
m_UsedByEffector: 0
m_UsedByComposite: 0
m_Offset: {x: 0, y: 0}
m_Offset: {x: 0.03701496, y: -0.01850748}
m_SpriteTilingProperty:
border: {x: 0, y: 0, z: 0, w: 0}
pivot: {x: 0.5, y: 0.5}
oldSize: {x: 1, y: 1}
oldSize: {x: 3.1875, y: 2.6875}
newSize: {x: 1, y: 1}
adaptiveTilingThreshold: 0.5
drawMode: 0
adaptiveTiling: 0
m_AutoTiling: 0
serializedVersion: 2
m_Size: {x: 1, y: 1}
m_Size: {x: 2.51762, y: 2.6286669}
m_EdgeRadius: 0
--- !u!114 &3827363133515929335
MonoBehaviour:
@@ -123,9 +125,12 @@ MonoBehaviour:
m_EditorClassIdentifier:
secondsGoingLeft: 0.8
secondsGoingRight: 0.8
movementSpeed: 2
movementSpeed: 2.2
eventTriggerCount: 1
controlTriggerCounterEvent: 1
playerCollider: {fileID: 0}
eventControls: {fileID: 0}
player: {fileID: 0}
--- !u!50 &3827363133515929334
Rigidbody2D:
serializedVersion: 4
@@ -147,3 +152,22 @@ Rigidbody2D:
m_SleepingMode: 0
m_CollisionDetection: 1
m_Constraints: 0
--- !u!95 &-6605527394410161759
Animator:
serializedVersion: 3
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3827363133515929333}
m_Enabled: 1
m_Avatar: {fileID: 0}
m_Controller: {fileID: 9100000, guid: b76bb1b393cc12742a8731288b81b071, type: 2}
m_CullingMode: 0
m_UpdateMode: 0
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorControllerStateOnDisable: 0

Binary file not shown.

View File

@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 969fb43c02f3e464c8e0907e44dc946c
AudioImporter:
externalObjects: {}
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 3095e099213c73c4182d9feeae77ebbd
AudioImporter:
externalObjects: {}
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 292f0e8e04642864daaf315efade99c7
AudioImporter:
externalObjects: {}
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 33e618f5ded88f7449cf8c6b88e71c8f
AudioImporter:
externalObjects: {}
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: aafb1c137c5574744b6c2c5b7d5e7055
AudioImporter:
externalObjects: {}
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -7,6 +7,8 @@ public class BugMovement : MonoBehaviour
[SerializeField] private float secondsGoingLeft = 1;
[SerializeField] private float secondsGoingRight = 1;
[SerializeField] private float movementSpeed = 10;
[SerializeField] public int eventTriggerCount = 3;
[SerializeField] public int controlTriggerCounterEvent = 3;
[SerializeField] Collider2D playerCollider;
[SerializeField] EventControls eventControls;
[SerializeField] Player player;
@@ -14,6 +16,7 @@ public class BugMovement : MonoBehaviour
private int leftAccumalator = 0;
private int rightAccumalator = 0;
private Rigidbody2D rigidBody;
private bool isMovementDisabled = false;
private int framesPerSecond => 60;
@@ -27,6 +30,8 @@ public class BugMovement : MonoBehaviour
{
if (HasEncounteredPlayer())
eventControls.TriggerEvent(playerCollider, GetComponent<Collider2D>(), player);
if (isMovementDisabled)
return;
var totalFramesGoingLeft = framesPerSecond * secondsGoingLeft;
var totalFramesGoingRight = framesPerSecond * secondsGoingRight;
@@ -65,4 +70,14 @@ public class BugMovement : MonoBehaviour
{
return rigidBody.IsTouchingLayers(LayerMask.GetMask(LayerNames.Player));
}
public void DisableMovement()
{
isMovementDisabled = true;
}
public void EnableMovement()
{
isMovementDisabled = false;
}
}

View File

@@ -13,11 +13,19 @@ public class EventControls : MonoBehaviour
[SerializeField] private List<Tile> successTiles;
[SerializeField] private List<Tile> failTiles;
[SerializeField] private Tile plusTile;
[SerializeField] private float framesPerControlTile = 15;
[SerializeField] private int nextControlYOffset = 0;
private int nextControlXOffset => 0 - maxNumberOfControlTiles + 1;
[SerializeField] private float tileMapClearDelayInSeconds = 0.5f;
[SerializeField] private int maxNumberOfControlTiles = 2;
private int numberOfEventsCount = 0;
private int maxNumberOfEvents => currentEnemyCollider.gameObject
.GetComponent<BugMovement>()
.eventTriggerCount;
private int maxNumberOfControlTiles => currentEnemyCollider.gameObject
.GetComponent<BugMovement>()
.controlTriggerCounterEvent;
private Tilemap tilemap;
@@ -33,6 +41,7 @@ public class EventControls : MonoBehaviour
private int tileMapClearDelayAccumalator = 0;
private EventControlTile currentEventControl;
private bool isInBattle = false;
private bool hasFailed = false;
private Collider2D currentPlayerCollider;
private Collider2D currentEnemyCollider;
@@ -46,10 +55,15 @@ public class EventControls : MonoBehaviour
public void TriggerEvent(Collider2D playerCollider, Collider2D enemyCollider, Player player)
{
if (isInBattle)
return;
currentPlayerCollider = playerCollider;
currentEnemyCollider = enemyCollider;
enemyCollider.gameObject.GetComponent<SpriteRenderer>().enabled = false;
enemyCollider.gameObject.GetComponent<BugMovement>().DisableMovement();
player.StartEncounter();
Physics2D.IgnoreCollision(playerCollider, enemyCollider, true);
@@ -160,10 +174,18 @@ public class EventControls : MonoBehaviour
currentEventControl = null;
if (eventControlTilesInCycle.Where(x => !x.isPlusTile && !x.isPerformed).Count() == 0)
{
numberOfEventsCount++;
eventTriggered = false;
eventCycleAccumalator = 0;
// Destroy(currentEnemyCollider.gameObject);
// currentEnemyCollider = null;
if (maxNumberOfControlTiles == numberOfEventsCount)
{
player.EndEncounter();
isInBattle = false;
// Destroy(currentEnemyCollider.gameObject);
// currentEnemyCollider = null;
hasFailed = false;
}
}
return;
@@ -174,9 +196,16 @@ public class EventControls : MonoBehaviour
isInBattle = false;
eventCycleAccumalator = 0;
currentEventControl = null;
numberOfEventsCount = 0;
hasFailed = true;
player.ThrowUserInTheAirHurt();
SoundManagerScript.PlaySound("bug laugh");
currentEnemyCollider.gameObject.GetComponent<SpriteRenderer>().enabled = true;
currentEnemyCollider.gameObject.GetComponent<BugMovement>().EnableMovement();
player.EndEncounter();
return;
}
else if (FailedToClickCorrect(currentEventControl.keyCode))
@@ -187,8 +216,15 @@ public class EventControls : MonoBehaviour
isInBattle = false;
eventCycleAccumalator = 0;
currentEventControl = null;
numberOfEventsCount = 0;
hasFailed = true;
player.ThrowUserInTheAirHurt();
currentEnemyCollider.gameObject.GetComponent<SpriteRenderer>().enabled = true;
currentEnemyCollider.gameObject.GetComponent<BugMovement>().EnableMovement();
player.EndEncounter();
SoundManagerScript.PlaySound("bug laugh");
return;
}
@@ -206,16 +242,26 @@ public class EventControls : MonoBehaviour
eventDrawn = false;
numberOfControlTilesSet = 0;
if (currentEnemyCollider != null)
Physics2D.IgnoreCollision(currentPlayerCollider, currentEnemyCollider, false);
if (!isInBattle)
if (maxNumberOfControlTiles == numberOfEventsCount)
{
currentEnemyCollider.gameObject.GetComponent<SpriteRenderer>().enabled = true;
player.EndEncounter();
}
if (currentEnemyCollider != null && hasFailed)
Physics2D.IgnoreCollision(currentPlayerCollider, currentEnemyCollider, false);
currentPlayerCollider = null;
currentEnemyCollider = null;
numberOfEventsCount = 0;
currentPlayerCollider = null;
currentEnemyCollider = null;
}
else
{
eventTriggered = true && !hasFailed;
isInBattle = true && !hasFailed;
if (hasFailed)
{
if (currentEnemyCollider != null)
Physics2D.IgnoreCollision(currentPlayerCollider, currentEnemyCollider, false);
}
}
}
else
{
@@ -228,7 +274,7 @@ public class EventControls : MonoBehaviour
// var offset = camera.transform.position.x - (int)camera.transform.position.x;
// transform.position = new Vector3(transform.position.x + offset, transform.position.y, 0);
//}
private EventControlTile GenerateEventControlTile(Vector3Int position)
{
var randomNumber = Random.Range(0, TileToKeyMappings.TileToKey.Count);

View File

@@ -31,6 +31,8 @@ public class Player : MonoBehaviour
private bool isMovementEnabled = true;
private bool isFighting = false;
private bool isPlayerHurt = false;
private void Start()
{
rigidBody = GetComponent<Rigidbody2D>();
@@ -75,6 +77,7 @@ public class Player : MonoBehaviour
if (coll.gameObject.tag == "Pizza")
{
Destroy(coll.gameObject);
SoundManagerScript.PlaySound("eat");
currentHealth += currentHealth < startHealth ? 1 : 0;
healthBar.size = new Vector2(1.5f * currentHealth, this.healthBar.size.y);
}
@@ -114,7 +117,7 @@ public class Player : MonoBehaviour
Run();
FlipSprite();
}
PlayFightSound();
HandleAnimations();
}
@@ -219,20 +222,39 @@ public class Player : MonoBehaviour
animator.SetBool("IsFighting", isFighting);
}
private void PlayFightSound()
{
if (isFighting && !isPlayerHurt)
{
SoundManagerScript.PlaySound(GetRandomFightClipName());
}
}
private string GetRandomFightClipName()
{
var fightClipNames = new List<string> { "punch", "hard punch", "slap", "hard slap" };
var randomNumber = UnityEngine.Random.Range(0, fightClipNames.Count);
return fightClipNames[randomNumber];
}
public void StartEncounter()
{
isPlayerHurt = false;
isFighting = true;
isMovementEnabled = false;
}
public void EndEncounter()
{
isPlayerHurt = false;
isFighting = false;
isMovementEnabled = true;
}
public void ThrowUserInTheAirHurt()
{
{
isPlayerHurt = true;
GetComponent<Rigidbody2D>().velocity += new Vector2(Mathf.Sign(transform.localScale.x) * -1 * hurtVelocity, hurtVelocity);
isFighting = false;
}
}

View File

@@ -5,7 +5,9 @@ using UnityEngine;
public class SoundManagerScript : MonoBehaviour
{
public static AudioClip jumpSound, screamSound, wrongButtonSound, bugLaughSound, drinkSound;
public static AudioClip jumpSound, screamSound, wrongButtonSound,
bugLaughSound, drinkSound, eatSound, punchSound, hardPunchSound,
slapSound, hardSlapSound, winSound;
static AudioSource audioSrc;
// Start is called before the first frame update
@@ -16,6 +18,11 @@ public class SoundManagerScript : MonoBehaviour
wrongButtonSound = Resources.Load<AudioClip>("Audio/WrongButton");
bugLaughSound = Resources.Load<AudioClip>("Audio/BugLaugh");
drinkSound = Resources.Load<AudioClip>("Audio/Drink");
eatSound = Resources.Load<AudioClip>("Audio/Eat");
punchSound = Resources.Load<AudioClip>("Audio/Punch");
hardPunchSound = Resources.Load<AudioClip>("Audio/HardPunch");
slapSound = Resources.Load<AudioClip>("Audio/Slap");
hardSlapSound = Resources.Load<AudioClip>("Audio/HardSlap");
audioSrc = GetComponent<AudioSource>();
}
@@ -45,6 +52,25 @@ public class SoundManagerScript : MonoBehaviour
case "drink":
audioSrc.PlayOneShot(drinkSound);
break;
case "eat":
audioSrc.PlayOneShot(eatSound);
break;
case "punch":
audioSrc.PlayOneShot(punchSound);
break;
case "hard punch":
audioSrc.PlayOneShot(hardPunchSound);
break;
case "slap":
audioSrc.PlayOneShot(slapSound);
break;
case "hard slap":
audioSrc.PlayOneShot(hardSlapSound);
break;
case "win":
audioSrc.PlayOneShot(winSound);
break;
}
}
}

View File

@@ -31,6 +31,7 @@ AnimatorStateMachine:
m_AnyStateTransitions:
- {fileID: 3708718943660755162}
- {fileID: -1637549219293370904}
- {fileID: -5898471161503941254}
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
@@ -39,7 +40,7 @@ AnimatorStateMachine:
m_ExitPosition: {x: 390, y: 70, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: -2991084837782200938}
--- !u!1101 &-5610768259902955866
--- !u!1101 &-5898471161503941254
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
@@ -47,11 +48,11 @@ AnimatorStateTransition:
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 2
- m_ConditionMode: 1
m_ConditionEvent: IsFighting
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: -2991084837782200938}
m_DstState: {fileID: 5819910786424590319}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
@@ -123,7 +124,6 @@ AnimatorState:
m_CycleOffset: 0
m_Transitions:
- {fileID: -4109286016316069763}
- {fileID: -880235167412170940}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
@@ -139,7 +139,7 @@ AnimatorState:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1101 &-1637549219293370904
--- !u!1101 &-2394224690546515301
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
@@ -147,16 +147,16 @@ AnimatorStateTransition:
m_PrefabAsset: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 1
m_ConditionEvent: IsHurt
- m_ConditionMode: 2
m_ConditionEvent: IsFighting
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 3898215635428985453}
m_DstState: {fileID: 0}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
m_IsExit: 1
serializedVersion: 3
m_TransitionDuration: 0
m_TransitionDuration: 0.25
m_TransitionOffset: 0
m_ExitTime: 0.75
m_HasExitTime: 0
@@ -488,7 +488,7 @@ AnimatorState:
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
- {fileID: -5610768259902955866}
- {fileID: -2394224690546515301}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0