Commit 94890186 authored by 18손재민's avatar 18손재민

enemyAction 브랜치에서 일부만 합침

parent b9b7972e
fileFormatVersion: 2
guid: 18a0351cca0a99545b997d3c29499e98
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: melee
serializedVersion: 5
m_AnimatorParameters:
- m_Name: patrolRange
m_Type: 1
m_DefaultFloat: 2
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 0}
- m_Name: attackRange
m_Type: 1
m_DefaultFloat: 2
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 0}
- m_Name: movementSpeedPatrol
m_Type: 1
m_DefaultFloat: 1
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 0}
- m_Name: movementSpeedTrack
m_Type: 1
m_DefaultFloat: 2
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 0}
- m_Name: TrackTrigger
m_Type: 9
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 0}
- m_Name: noticeRange
m_Type: 1
m_DefaultFloat: 3
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 0}
- m_Name: AttackTrigger
m_Type: 9
m_DefaultFloat: 0
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 0}
- m_Name: attackDuration
m_Type: 1
m_DefaultFloat: 1
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 0}
- m_Name: attackDelay
m_Type: 1
m_DefaultFloat: 1
m_DefaultInt: 0
m_DefaultBool: 0
m_Controller: {fileID: 0}
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
m_StateMachine: {fileID: 1107019419876730760}
m_Mask: {fileID: 0}
m_Motions: []
m_Behaviours: []
m_BlendingMode: 0
m_SyncedLayerIndex: -1
m_DefaultWeight: 0
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}
--- !u!114 &114566440929010514
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e92be6a4d81dc134fbe2097609bb180b, type: 3}
m_Name:
m_EditorClassIdentifier:
castingSprite: {fileID: 21300000, guid: 9588a72c7c886de4a999bf6cc7948b84, type: 3}
attackingSprite: {fileID: 21300000, guid: a6edaaede1a4aea42a1e9fea0eec397e, type: 3}
--- !u!114 &114878841526562312
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3fc79cb78d2a6a040a8ddd4a1997db22, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &114923522661975006
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d2a789ffb946ca045aaaf6896bc26da8, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1101 &1101563152619324414
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 1
m_ConditionEvent: AttackTrigger
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 1102828359910447394}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0.25
m_TransitionOffset: 0
m_ExitTime: 0.75
m_HasExitTime: 0
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1101 &1101581218500765106
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 1
m_ConditionEvent: TrackTrigger
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 1102455672269219010}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0.25
m_TransitionOffset: 0
m_ExitTime: 0.75
m_HasExitTime: 0
m_HasFixedDuration: 1
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1101 &1101690178359525666
AnimatorStateTransition:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name:
m_Conditions:
- m_ConditionMode: 1
m_ConditionEvent: TrackTrigger
m_EventTreshold: 0
m_DstStateMachine: {fileID: 0}
m_DstState: {fileID: 1102455672269219010}
m_Solo: 0
m_Mute: 0
m_IsExit: 0
serializedVersion: 3
m_TransitionDuration: 0.1
m_TransitionOffset: 0
m_ExitTime: 0.9
m_HasExitTime: 0
m_HasFixedDuration: 0
m_InterruptionSource: 0
m_OrderedInterruption: 1
m_CanTransitionToSelf: 1
--- !u!1102 &1102455672269219010
AnimatorState:
serializedVersion: 5
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Track
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
- {fileID: 1101563152619324414}
m_StateMachineBehaviours:
- {fileID: 114878841526562312}
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 0}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &1102828359910447394
AnimatorState:
serializedVersion: 5
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Attack
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
- {fileID: 1101581218500765106}
m_StateMachineBehaviours:
- {fileID: 114566440929010514}
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 0}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &1102977373053479874
AnimatorState:
serializedVersion: 5
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Idle
m_Speed: 1
m_CycleOffset: 0
m_Transitions:
- {fileID: 1101690178359525666}
m_StateMachineBehaviours:
- {fileID: 114923522661975006}
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 0}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1107 &1107019419876730760
AnimatorStateMachine:
serializedVersion: 5
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_Name: Base Layer
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: 1102977373053479874}
m_Position: {x: 276, y: -84, z: 0}
- serializedVersion: 1
m_State: {fileID: 1102455672269219010}
m_Position: {x: 72, y: 48, z: 0}
- serializedVersion: 1
m_State: {fileID: 1102828359910447394}
m_Position: {x: 324, y: 48, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
m_AnyStatePosition: {x: -12, y: 168, z: 0}
m_EntryPosition: {x: 36, y: -84, z: 0}
m_ExitPosition: {x: 348, y: 240, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: 1102977373053479874}
fileFormatVersion: 2
guid: a2991abac35f9ff4b933c50e1d598f38
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 9100000
userData:
assetBundleName:
assetBundleVariant:
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1001 &100100000
Prefab:
m_ObjectHideFlags: 1
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications: []
m_RemovedComponents: []
m_SourcePrefab: {fileID: 0}
m_RootGameObject: {fileID: 1346522711063220}
m_IsPrefabAsset: 1
--- !u!1 &1346522711063220
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 6
m_Component:
- component: {fileID: 4804976410232030}
- component: {fileID: 212906216626823524}
- component: {fileID: 50615514765813310}
- component: {fileID: 61188111102399610}
- component: {fileID: 95600343560029758}
- component: {fileID: 114425347246421446}
m_Layer: 0
m_Name: DummyScorpion
m_TagString: Enemy
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!1 &1923610854882692
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
serializedVersion: 6
m_Component:
- component: {fileID: 4370838883948786}
- component: {fileID: 61019308264186112}
- component: {fileID: 114106922099255344}
m_Layer: 0
m_Name: Hitbox
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &4370838883948786
Transform:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1923610854882692}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 4804976410232030}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &4804976410232030
Transform:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1346522711063220}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 7.2689643, y: 1.8663561, z: 0}
m_LocalScale: {x: 0.5, y: 0.5, z: 1}
m_Children:
- {fileID: 4370838883948786}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!50 &50615514765813310
Rigidbody2D:
serializedVersion: 4
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1346522711063220}
m_BodyType: 0
m_Simulated: 1
m_UseFullKinematicContacts: 0
m_UseAutoMass: 0
m_Mass: 1
m_LinearDrag: 0
m_AngularDrag: 0.05
m_GravityScale: 1
m_Material: {fileID: 0}
m_Interpolate: 0
m_SleepingMode: 1
m_CollisionDetection: 0
m_Constraints: 4
--- !u!61 &61019308264186112
BoxCollider2D:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1923610854882692}
m_Enabled: 0
m_Density: 1
m_Material: {fileID: 0}
m_IsTrigger: 1
m_UsedByEffector: 0
m_UsedByComposite: 0
m_Offset: {x: -2.21024, y: 0.47439384}
m_SpriteTilingProperty:
border: {x: 0, y: 0, z: 0, w: 0}
pivot: {x: 0, y: 0}
oldSize: {x: 0, y: 0}
newSize: {x: 0, y: 0}
adaptiveTilingThreshold: 0
drawMode: 0
adaptiveTiling: 0
m_AutoTiling: 0
serializedVersion: 2
m_Size: {x: 5.42048, y: 3.3288422}
m_EdgeRadius: 0
--- !u!61 &61188111102399610
BoxCollider2D:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1346522711063220}
m_Enabled: 1
m_Density: 1
m_Material: {fileID: 0}
m_IsTrigger: 0
m_UsedByEffector: 0
m_UsedByComposite: 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: 6.64, y: 5.48}
newSize: {x: 6.64, y: 5.48}
adaptiveTilingThreshold: 0.5
drawMode: 0
adaptiveTiling: 0
m_AutoTiling: 0
serializedVersion: 2
m_Size: {x: 6.64, y: 5.48}
m_EdgeRadius: 0
--- !u!95 &95600343560029758
Animator:
serializedVersion: 3
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1346522711063220}
m_Enabled: 1
m_Avatar: {fileID: 0}
m_Controller: {fileID: 9100000, guid: a2991abac35f9ff4b933c50e1d598f38, 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
--- !u!114 &114106922099255344
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1923610854882692}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 908a1b16b9926f747807d321c5ecc8af, type: 3}
m_Name:
m_EditorClassIdentifier:
damage: 0
--- !u!114 &114425347246421446
MonoBehaviour:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1346522711063220}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 2d73d07fdab522c4aa045e1cb6a92e8c, type: 3}
m_Name:
m_EditorClassIdentifier:
playerMaxHealth: 0
--- !u!212 &212906216626823524
SpriteRenderer:
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 100100000}
m_GameObject: {fileID: 1346522711063220}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 4294967295
m_Materials:
- {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
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: 0
m_Sprite: {fileID: 21300000, guid: 9588a72c7c886de4a999bf6cc7948b84, type: 3}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
m_Size: {x: 6.64, y: 5.48}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
fileFormatVersion: 2
guid: e4298313f9e94c44fb057542ec7ad273
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 100100000
userData:
assetBundleName:
assetBundleVariant:
......@@ -5,7 +5,7 @@ using Random = UnityEngine.Random;
public class Enemy : MonoBehaviour {
/*
// data
// health
private readonly float maxHealth;
......@@ -20,37 +20,61 @@ public class Enemy : MonoBehaviour {
float[] immunity_time = new float[5] { 0.0f, 3.0f, 6.0f, 6.0f, 6.0f };//면역 시간
bool[] immunity = new bool[] { false, }; //현재 에너미가 디버프 상태에 대해서 면역인지를 체크하는 변수
enum debuffCase { fire, ice, stun, blind, charm };
struct EnemyDebuffed
{
public debuffCase Case;
public float debuffTime;
}
// enemy manager
private readonly EnemyManager enemyManager = EnemyManager.Instance;
// action
private EnemyManager.State currState;
private Dictionary<EnemyManager.State, EnemyManager.Action> actionByState;
// drop item
// private readonly EnemyManager.DropItemInfo dropItem; // [item ID, probability]
// drop item
private readonly EnemyManager.DropItemInfo dropItem; // [item ID, probability]
// data for ignoring collision
Vector2 lastPosition;
Vector2 lastVelocity;
float lastAngularVelocity;
// method
// constructor
public Enemy(int id, float maxHealth, float weight) {
// constructor
public Enemy(int id, float maxHealth, float weight) {
this.maxHealth = maxHealth;
this.weight = weight;
this.currHealth = maxHealth;
EnemyManager.DropItemInfo dropItem_temp;
this.dropItem = (enemyManager.dropTableByID.TryGetValue(id, out dropItem_temp)) ?
dropItem_temp : new EnemyManager.DropItemInfo(-1, -1);
this.actionByState = enemyManager.actionDictByID[id];
this.currState = EnemyManager.State.Idle;
// EnemyManager.DropItemInfo dropItem_temp;
// this.dropItem = (enemyManager.dropTableByID.TryGetValue(id, out dropItem_temp)) ?
// dropItem_temp : new EnemyManager.DropItemInfo(-1, -1);
}
// hit by player or debuff
public void GetDamaged(float damage) {
// ignore collision with player
void FixedUpdate()
{
lastPosition = transform.position;
lastVelocity = GetComponent<Rigidbody2D>().velocity;
lastAngularVelocity = GetComponent<Rigidbody2D>().angularVelocity;
}
void OnCollisionEnter2D(Collision2D col)
{
if (col.gameObject.tag == "Player")
{
transform.position = lastPosition;
GetComponent<Rigidbody2D>().velocity = lastVelocity;
GetComponent<Rigidbody2D>().angularVelocity = lastAngularVelocity;
Physics2D.IgnoreCollision(col.gameObject.GetComponent<Collider2D>(), GetComponent<Collider2D>());
}
}
// hit by player or debuff
public void GetDamaged(float damage) {
currHealth -= damage;
if(currHealth <= 0) {
/*
if (dropItem.id != -1)
{
float dropProb = Random.Range(0.0f, 1.0f);
......@@ -59,19 +83,16 @@ public class Enemy : MonoBehaviour {
// spawn a item that has ID
}
}
*/
Destroy(gameObject);
return;
}
float knockback_dist = damage * unitDist / weight;
// do something - knockback animation
// gameObject.GetComponent<Animator>().SetTrigger("DamagedTrigger");
}
struct EnemyDebuffed
{
public debuffCase Case;
public float debuffTime;
}
IEnumerator DebuffCase(EnemyDebuffed sCase)
{
......@@ -134,13 +155,11 @@ public class Enemy : MonoBehaviour {
yield return StartCoroutine(ImmunityTimer(sCase));
}
IEnumerator ImmunityTimer(EnemyDebuffed sCase)
{
yield return new WaitForSeconds(immunity_time[(int)sCase.Case]);
immunity[(int)sCase.Case] = false;
}
*/
IEnumerator ImmunityTimer(EnemyDebuffed sCase)
{
yield return new WaitForSeconds(immunity_time[(int)sCase.Case]);
immunity[(int)sCase.Case] = false;
}
}
//얼음일때 깨어나기
......
......@@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.IO;
using System.Text;
using UnityEngine;
public class EnemyManager : Singleton<EnemyManager>
{
......@@ -20,6 +20,9 @@ public class EnemyManager : Singleton<EnemyManager>
EpicItem, LegendaryItem, CommonAdd, RareAdd, EpicAdd,
LegendaryAdd }
public enum EnemyData { Health, Weight, Height, Width, DetectRange,
AtkRange, AtkDistance, AtkDelay, PjtSpeed, MoveSpeed,
Damage } //Atk = Attack, Pjt = Projectile(투사체)
public delegate void Action();
......@@ -27,12 +30,14 @@ public class EnemyManager : Singleton<EnemyManager>
// dictionary
public readonly Dictionary<int, Dictionary<ItemType, int>> dropTableByID;
public readonly Dictionary<int, Dictionary<State, Action>> actionDictByID;
public readonly Dictionary<int, float[]> enemyDataByID;
public readonly Dictionary<int, Dictionary<EnemyData, float>> enemyDataByID;
// standard enemy prefab
public GameObject enemyPrefab;
// method
// constructor
protected EnemyManager()
// method
// constructor
protected EnemyManager()
{
string dropTableDataPath = "";
string actionTableDataPath = "";
......@@ -91,10 +96,34 @@ public class EnemyManager : Singleton<EnemyManager>
string[] cellValue = null;
string tableLine = null;
strReader.ReadLine();
Dictionary<EnemyData, float> EnemyInfo = new Dictionary<EnemyData, float>();
while ((tableLine = strReader.ReadLine()) != null)
{
cellValue = tableLine.Split(',');
int enemyID = -1;
float[] enemyData = { 0.0f };
int.TryParse(cellValue[0], out enemyID);
for(int i=0;i<11;i++)
{
float.TryParse(cellValue[i + 1], out enemyData[i]);
}
for(int i=0;i<12;i++)
{
EnemyInfo.Add((EnemyData)i, enemyData[i]);
}
enemyDataByID.Add(enemyID, EnemyInfo);
}
}
// called by gameManager to Spawn enemy
// little temporary. Many change will be exist.
public void SpawnEnemy()
{
Vector2 playerPosition = GameObject.Find("Player").transform.position;
Instantiate(enemyPrefab, playerPosition + new Vector2(7, 0), Quaternion.identity);
}
}
......@@ -19,7 +19,7 @@ public class Player : MonoBehaviour {
// Update is called once per frame
void Update () {
tx = (int)(transform.position.x / 24f);
ty = (int)((transform.position.y-0.9f) / 24f);
ty = (int)(transform.position.y / 24f);
if ((ttx != tx || tty != ty) && MapManager.isRoomFalling != true)
{
MapManager.currentRoom = MapManager.mapGrid[tx, ty];
......
......@@ -6,7 +6,7 @@ using UnityEngine.Tilemaps;
public class PlayerController : MonoBehaviour
{
private Rigidbody2D rb; // RigidBody2D of this game object
private Animator anim;
// Speeds of player
[SerializeField]
private float maxSpeed;
......@@ -59,7 +59,6 @@ public class PlayerController : MonoBehaviour
void Start()
{
rb = gameObject.GetComponent<Rigidbody2D>();
anim = GetComponent<Animator>();
}
// Update is called once per frame
......@@ -81,16 +80,6 @@ public class PlayerController : MonoBehaviour
if (GameManager.gameState == GameManager.GameState.Ingame)
{
anim.SetBool("rope",isInRope);
anim.SetBool("run", isDashing);
anim.SetBool("ground", isGrounded);
anim.SetFloat("vspeed", rb.velocity.y);
anim.SetFloat("speed", Mathf.Abs(rb.velocity.x));
if(isGrounded || isInRope)
{
anim.SetBool("jump", false);
}
if (isGrounded)
isJumpable = true;
......@@ -148,12 +137,10 @@ public class PlayerController : MonoBehaviour
if (isGrounded)
{
vertical = jumpSpeed;
anim.SetBool("jump", true);
}
else if (isJumpable)
{
vertical = doubleJumpSpeed;
anim.SetBool("jump", true);
isJumpable = false;
}
}
......@@ -232,10 +219,10 @@ public class PlayerController : MonoBehaviour
{
if (element.name == "platform")
{
Physics2D.IgnoreCollision(element, transform.GetComponent<Collider2D>(),true);
element.enabled = false;
yield return new WaitForSeconds(0.3f);
while(isInRope) yield return new WaitForSeconds(0.1f);
Physics2D.IgnoreCollision(element, transform.GetComponent<Collider2D>(), false);
element.enabled = true;
isDownPlatform = false;
}
}
......
fileFormatVersion: 2
guid: 9588a72c7c886de4a999bf6cc7948b84
TextureImporter:
fileIDToRecycleName: {}
externalObjects: {}
serializedVersion: 6
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -100
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- serializedVersion: 2
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
- serializedVersion: 2
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
- serializedVersion: 2
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: a056a27b5da67434cbddf45ee2e1113d
vertices: []
indices:
edges: []
weights: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: a6edaaede1a4aea42a1e9fea0eec397e
TextureImporter:
fileIDToRecycleName: {}
externalObjects: {}
serializedVersion: 6
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -100
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- serializedVersion: 2
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
- serializedVersion: 2
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
- serializedVersion: 2
buildTarget: Android
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 381f3859d4182af4fa7972b8e6404c51
vertices: []
indices:
edges: []
weights: []
spritePackingTag: 12
userData:
assetBundleName:
assetBundleVariant:
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment