Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 7f7596e0c4 | |||
| cbfd83e9e2 | |||
| f5d183322e | |||
| 76a807f599 | |||
| 49937d80b5 | |||
| 773a30a6b9 |
5162
Assets/Enemy/Creeper.prefab
Normal file
5162
Assets/Enemy/Creeper.prefab
Normal file
File diff suppressed because it is too large
Load Diff
7
Assets/Enemy/Creeper.prefab.meta
Normal file
7
Assets/Enemy/Creeper.prefab.meta
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ffe7e66eebc0e53d993926c0304591da
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
181
Assets/Enemy/FastFucker.prefab
Normal file
181
Assets/Enemy/FastFucker.prefab
Normal file
@@ -0,0 +1,181 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &7192111562784377269
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 7306069853192956541}
|
||||||
|
- component: {fileID: 6956675740950355391}
|
||||||
|
- component: {fileID: 3724765237708177526}
|
||||||
|
- component: {fileID: 8790759452092966400}
|
||||||
|
- component: {fileID: 6076434776385846704}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: FastFucker
|
||||||
|
m_TagString: Ratbot
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &7306069853192956541
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7192111562784377269}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 0.45, y: 0.45, z: 0.45}
|
||||||
|
m_ConstrainProportionsScale: 1
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!212 &6956675740950355391
|
||||||
|
SpriteRenderer:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7192111562784377269}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_CastShadows: 0
|
||||||
|
m_ReceiveShadows: 0
|
||||||
|
m_DynamicOccludee: 1
|
||||||
|
m_StaticShadowCaster: 0
|
||||||
|
m_MotionVectors: 1
|
||||||
|
m_LightProbeUsage: 1
|
||||||
|
m_ReflectionProbeUsage: 1
|
||||||
|
m_RayTracingMode: 0
|
||||||
|
m_RayTraceProcedural: 0
|
||||||
|
m_RayTracingAccelStructBuildFlagsOverride: 0
|
||||||
|
m_RayTracingAccelStructBuildFlags: 1
|
||||||
|
m_SmallMeshCulling: 1
|
||||||
|
m_RenderingLayerMask: 1
|
||||||
|
m_RendererPriority: 0
|
||||||
|
m_Materials:
|
||||||
|
- {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2}
|
||||||
|
m_StaticBatchInfo:
|
||||||
|
firstSubMesh: 0
|
||||||
|
subMeshCount: 0
|
||||||
|
m_StaticBatchRoot: {fileID: 0}
|
||||||
|
m_ProbeAnchor: {fileID: 0}
|
||||||
|
m_LightProbeVolumeOverride: {fileID: 0}
|
||||||
|
m_ScaleInLightmap: 1
|
||||||
|
m_ReceiveGI: 1
|
||||||
|
m_PreserveUVs: 0
|
||||||
|
m_IgnoreNormalsForChartDetection: 0
|
||||||
|
m_ImportantGI: 0
|
||||||
|
m_StitchLightmapSeams: 1
|
||||||
|
m_SelectedEditorRenderState: 0
|
||||||
|
m_MinimumChartSize: 4
|
||||||
|
m_AutoUVMaxDistance: 0.5
|
||||||
|
m_AutoUVMaxAngle: 89
|
||||||
|
m_LightmapParameters: {fileID: 0}
|
||||||
|
m_SortingLayerID: 0
|
||||||
|
m_SortingLayer: 0
|
||||||
|
m_SortingOrder: 1
|
||||||
|
m_Sprite: {fileID: -3751497128136096670, guid: 520c934c186517356929c5948597af6f, type: 3}
|
||||||
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_FlipX: 0
|
||||||
|
m_FlipY: 0
|
||||||
|
m_DrawMode: 0
|
||||||
|
m_Size: {x: 5.12, y: 5.12}
|
||||||
|
m_AdaptiveModeThreshold: 0.5
|
||||||
|
m_SpriteTileMode: 0
|
||||||
|
m_WasSpriteAssigned: 1
|
||||||
|
m_MaskInteraction: 0
|
||||||
|
m_SpriteSortPoint: 0
|
||||||
|
--- !u!114 &3724765237708177526
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7192111562784377269}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 07603fdf7ab38f05493e2a22ef5cae06, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
moveSpeed: 1500
|
||||||
|
damageStrength: 10
|
||||||
|
damageTimeoutSeconds: 0.5
|
||||||
|
health: 10
|
||||||
|
--- !u!61 &8790759452092966400
|
||||||
|
BoxCollider2D:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7192111562784377269}
|
||||||
|
m_Enabled: 1
|
||||||
|
serializedVersion: 3
|
||||||
|
m_Density: 1
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IncludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_ExcludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_LayerOverridePriority: 0
|
||||||
|
m_ForceSendLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_ForceReceiveLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_ContactCaptureLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_CallbackLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_IsTrigger: 0
|
||||||
|
m_UsedByEffector: 0
|
||||||
|
m_CompositeOperation: 0
|
||||||
|
m_CompositeOrder: 0
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_SpriteTilingProperty:
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
oldSize: {x: 3.53, y: 4.2}
|
||||||
|
newSize: {x: 5.12, y: 5.12}
|
||||||
|
adaptiveTilingThreshold: 0.5
|
||||||
|
drawMode: 0
|
||||||
|
adaptiveTiling: 0
|
||||||
|
m_AutoTiling: 0
|
||||||
|
m_Size: {x: 3.53, y: 4.2}
|
||||||
|
m_EdgeRadius: 0
|
||||||
|
--- !u!50 &6076434776385846704
|
||||||
|
Rigidbody2D:
|
||||||
|
serializedVersion: 5
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 7192111562784377269}
|
||||||
|
m_BodyType: 0
|
||||||
|
m_Simulated: 1
|
||||||
|
m_UseFullKinematicContacts: 0
|
||||||
|
m_UseAutoMass: 0
|
||||||
|
m_Mass: 0.2
|
||||||
|
m_LinearDamping: 15
|
||||||
|
m_AngularDamping: 0.05
|
||||||
|
m_GravityScale: 1
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IncludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_ExcludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_Interpolate: 0
|
||||||
|
m_SleepingMode: 1
|
||||||
|
m_CollisionDetection: 0
|
||||||
|
m_Constraints: 4
|
||||||
7
Assets/Enemy/FastFucker.prefab.meta
Normal file
7
Assets/Enemy/FastFucker.prefab.meta
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 2c67a9ffe3cbdc6989fcabe398ffd2dc
|
||||||
|
PrefabImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -681,8 +681,11 @@ MonoBehaviour:
|
|||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
state: 0
|
state: 0
|
||||||
wave: 0
|
wave: 0
|
||||||
ratbot: {fileID: 398740452138961375, guid: b1e1e6378fb12d47e989565896a737ef, type: 3}
|
|
||||||
shop: {fileID: 6569104281457075541, guid: c0d23b24c9c882ef89013998dab29dea, type: 3}
|
shop: {fileID: 6569104281457075541, guid: c0d23b24c9c882ef89013998dab29dea, type: 3}
|
||||||
|
ratbot: {fileID: 398740452138961375, guid: 5887eeeb7c78eb5c7bf46c5893fd4846, type: 3}
|
||||||
|
gunThrower: {fileID: 398740452138961375, guid: b1e1e6378fb12d47e989565896a737ef, type: 3}
|
||||||
|
fastFucker: {fileID: 7192111562784377269, guid: 2c67a9ffe3cbdc6989fcabe398ffd2dc, type: 3}
|
||||||
|
creeper: {fileID: 398740452138961375, guid: ffe7e66eebc0e53d993926c0304591da, type: 3}
|
||||||
--- !u!4 &745837569
|
--- !u!4 &745837569
|
||||||
Transform:
|
Transform:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|||||||
@@ -7,11 +7,15 @@ public class GameState : MonoBehaviour
|
|||||||
public GameObject shop;
|
public GameObject shop;
|
||||||
public GameObject ratbot;
|
public GameObject ratbot;
|
||||||
public GameObject gunThrower;
|
public GameObject gunThrower;
|
||||||
|
public GameObject fastFucker;
|
||||||
|
public GameObject creeper;
|
||||||
|
|
||||||
int[] counts = new int[2];
|
int[] counts = new int[4];
|
||||||
enum CountIndex : uint {
|
enum CountIndex : uint {
|
||||||
ratbot = 0,
|
ratbot = 0,
|
||||||
gunThrower = 1
|
gunThrower = 1,
|
||||||
|
fastFucker = 2,
|
||||||
|
creeper = 3
|
||||||
}
|
}
|
||||||
|
|
||||||
void Start() {
|
void Start() {
|
||||||
@@ -52,6 +56,7 @@ public class GameState : MonoBehaviour
|
|||||||
for (uint _ = 0; _ <= wave; _++) {
|
for (uint _ = 0; _ <= wave; _++) {
|
||||||
GameObject newRatbot = Instantiate(
|
GameObject newRatbot = Instantiate(
|
||||||
SpawnRatbot(),
|
SpawnRatbot(),
|
||||||
|
// Spawn ratbots in a circle around the player
|
||||||
Random.insideUnitCircle.normalized*20
|
Random.insideUnitCircle.normalized*20
|
||||||
+ new Vector2 (
|
+ new Vector2 (
|
||||||
playerPosition.x,
|
playerPosition.x,
|
||||||
@@ -59,6 +64,8 @@ public class GameState : MonoBehaviour
|
|||||||
),
|
),
|
||||||
Quaternion.identity
|
Quaternion.identity
|
||||||
);
|
);
|
||||||
|
// Set ratbot damageStrength and health
|
||||||
|
// TODO: set speed
|
||||||
newRatbot.GetComponent<Ratbot>().damageStrength
|
newRatbot.GetComponent<Ratbot>().damageStrength
|
||||||
= 5+wave*5;
|
= 5+wave*5;
|
||||||
newRatbot.GetComponent<Ratbot>().health = 5+wave*2;
|
newRatbot.GetComponent<Ratbot>().health = 5+wave*2;
|
||||||
@@ -66,12 +73,26 @@ public class GameState : MonoBehaviour
|
|||||||
wave++;
|
wave++;
|
||||||
}
|
}
|
||||||
public GameObject SpawnRatbot() {
|
public GameObject SpawnRatbot() {
|
||||||
|
return creeper;
|
||||||
|
// TODO: Convert this mess into a switch case
|
||||||
if (counts[(uint)CountIndex.gunThrower] < wave/3
|
if (counts[(uint)CountIndex.gunThrower] < wave/3
|
||||||
&& wave > 3
|
&& wave > 2
|
||||||
) {
|
) {
|
||||||
counts[(uint)CountIndex.gunThrower]++;
|
counts[(uint)CountIndex.gunThrower]++;
|
||||||
return gunThrower;
|
return gunThrower;
|
||||||
}
|
}
|
||||||
|
if (counts[(uint)CountIndex.fastFucker] < wave/4
|
||||||
|
&& wave > 3
|
||||||
|
) {
|
||||||
|
counts[(uint)CountIndex.fastFucker]++;
|
||||||
|
return fastFucker;
|
||||||
|
}
|
||||||
|
if (counts[(uint)CountIndex.creeper] < wave/6
|
||||||
|
&& wave > 4
|
||||||
|
) {
|
||||||
|
counts[(uint)CountIndex.creeper]++;
|
||||||
|
return creeper;
|
||||||
|
}
|
||||||
return ratbot;
|
return ratbot;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
26
Assets/Scripts C#/Ratbots/Creeper.cs
Normal file
26
Assets/Scripts C#/Ratbots/Creeper.cs
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
public class Creeper : Ratbot
|
||||||
|
{
|
||||||
|
public GameObject particles;
|
||||||
|
float countdown;
|
||||||
|
|
||||||
|
void Update() {
|
||||||
|
if (Vector3.Distance(player.transform.position, transform.position) > 5) {
|
||||||
|
MoveTowardsPlayer(moveSpeed);
|
||||||
|
float newTime = countdown + Time.deltaTime;
|
||||||
|
countdown = Mathf.Min(newTime, 1);
|
||||||
|
} else {
|
||||||
|
countdown -= Time.deltaTime;
|
||||||
|
if (countdown < 0) Explode();
|
||||||
|
}
|
||||||
|
transform.GetChild(0).localScale = new Vector3 (countdown * 3.5F, 0.25F, 1);
|
||||||
|
}
|
||||||
|
void Explode() {
|
||||||
|
Destroy(gameObject);
|
||||||
|
Instantiate(particles);
|
||||||
|
if (Vector3.Distance(player.transform.position, transform.position) < 5) {
|
||||||
|
player.GetComponent<Teo>().health -= damageStrength;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
2
Assets/Scripts C#/Ratbots/Creeper.cs.meta
Normal file
2
Assets/Scripts C#/Ratbots/Creeper.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d23c0105448702c45b209f27f497780f
|
||||||
30
Assets/Scripts C#/Ratbots/FastFucker.cs
Normal file
30
Assets/Scripts C#/Ratbots/FastFucker.cs
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
using UnityEngine;
|
||||||
|
using System.Collections;
|
||||||
|
|
||||||
|
public class FastFucker : Ratbot
|
||||||
|
{
|
||||||
|
bool attack = true;
|
||||||
|
void Update() {
|
||||||
|
if (attack)
|
||||||
|
MoveTowardsPlayer(moveSpeed*3);
|
||||||
|
else
|
||||||
|
MoveAwayFromPlayer(moveSpeed);
|
||||||
|
}
|
||||||
|
void MoveAwayFromPlayer(float speed) {
|
||||||
|
controller.AddRelativeForce(
|
||||||
|
(transform.position - player.transform.position)
|
||||||
|
.normalized
|
||||||
|
*speed
|
||||||
|
*Time.deltaTime
|
||||||
|
);
|
||||||
|
}
|
||||||
|
new void OnCollisionStay2D (Collision2D collision) {
|
||||||
|
base.OnCollisionStay2D(collision);
|
||||||
|
StartCoroutine("RunAway");
|
||||||
|
}
|
||||||
|
IEnumerator RunAway() {
|
||||||
|
attack = false;
|
||||||
|
yield return new WaitForSeconds (1F);
|
||||||
|
attack = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
2
Assets/Scripts C#/Ratbots/FastFucker.cs.meta
Normal file
2
Assets/Scripts C#/Ratbots/FastFucker.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 07603fdf7ab38f05493e2a22ef5cae06
|
||||||
@@ -10,28 +10,33 @@ public class Ratbot : MonoBehaviour
|
|||||||
|
|
||||||
public static GameState gameState;
|
public static GameState gameState;
|
||||||
public static GameObject player;
|
public static GameObject player;
|
||||||
|
public Rigidbody2D controller;
|
||||||
|
|
||||||
void Start() {
|
void Start() {
|
||||||
SetVars();
|
SetVars();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SetVars() {
|
public void SetVars() {
|
||||||
|
controller = GetComponent<Rigidbody2D>();
|
||||||
// Set gameState and player objects
|
// Set gameState and player objects
|
||||||
player = GameObject.FindGameObjectWithTag("Player");
|
player = GameObject.FindGameObjectWithTag("Player");
|
||||||
gameState = GameObject.FindGameObjectWithTag("GameController").GetComponent<GameState>();
|
gameState = GameObject.FindGameObjectWithTag("GameController").GetComponent<GameState>();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Update() {
|
void Update() {
|
||||||
MoveTowardsPlayer();
|
MoveTowardsPlayer(moveSpeed);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void MoveTowardsPlayer() {
|
public void MoveTowardsPlayer(float speed) {
|
||||||
Rigidbody2D controller = GetComponent<Rigidbody2D>();
|
controller.AddRelativeForce(
|
||||||
Vector2 direction = (player.transform.position - transform.position).normalized;
|
(player.transform.position - transform.position)
|
||||||
controller.AddRelativeForce(direction*moveSpeed*Time.deltaTime);
|
.normalized
|
||||||
|
*speed
|
||||||
|
*Time.deltaTime
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnCollisionStay2D(Collision2D collision) {
|
public virtual void OnCollisionStay2D(Collision2D collision) {
|
||||||
// Deal damage when colliding with the player on a 0.5 second cooldown
|
// Deal damage when colliding with the player on a 0.5 second cooldown
|
||||||
if (collision.gameObject.tag != "Player") return;
|
if (collision.gameObject.tag != "Player") return;
|
||||||
if (lastDamageTime > Time.fixedTime-damageTimeoutSeconds) return;
|
if (lastDamageTime > Time.fixedTime-damageTimeoutSeconds) return;
|
||||||
|
|||||||
Reference in New Issue
Block a user