Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
tetra-tower
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Oenos
tetra-tower
Commits
8a6d3447
Commit
8a6d3447
authored
Feb 18, 2019
by
15김민규
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
일정 체력 분기 때 넉백 하는 것 구현. 저 은퇴해도 되나요
parent
cfa04ecd
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
36 additions
and
28 deletions
+36
-28
Goblin Stunned.anim
Assets/Animation/Enemy/Goblin/Goblin Stunned.anim
+1
-8
Goblin.prefab
Assets/Prefabs/Characters/Enemy/Goblin.prefab
+7
-6
testEnemy.unity
Assets/Scenes/testEnemy.unity
+6
-1
Enemy.cs
Assets/Scripts/Characters/Enemy/Enemy.cs
+22
-13
No files found.
Assets/Animation/Enemy/Goblin/Goblin Stunned.anim
View file @
8a6d3447
...
...
@@ -65,11 +65,4 @@ AnimationClip:
m_HasGenericRootTransform
:
0
m_HasMotionFloatCurves
:
0
m_GenerateMotionCurves
:
0
m_Events
:
-
time
:
0
functionName
:
aaa
data
:
objectReferenceParameter
:
{
fileID
:
0
}
floatParameter
:
0
intParameter
:
0
messageOptions
:
0
m_Events
:
[]
Assets/Prefabs/Characters/Enemy/Goblin.prefab
View file @
8a6d3447
...
...
@@ -289,17 +289,18 @@ MonoBehaviour:
m_Script
:
{
fileID
:
11500000
,
guid
:
2d73d07fdab522c4aa045e1cb6a92e8c
,
type
:
3
}
m_Name
:
m_EditorClassIdentifier
:
debuffState
:
fireDuration
:
0
monsterID
:
117
maxHealth
:
55
maxHealth
:
10
weight
:
10
patrolRange
:
2
noticeRange
:
2
attackRange
:
1
patrolSpeed
:
1.5
trackSpeed
:
2.5
currHealth
:
0
knockbackPercentage
:
-
0.75
-
0.5
-
0.25
---
!u!114
&114173716467154830
MonoBehaviour
:
m_ObjectHideFlags
:
1
...
...
@@ -311,7 +312,7 @@ MonoBehaviour:
m_Script
:
{
fileID
:
11500000
,
guid
:
31d57aad92e0a1940b2258c8b7537027
,
type
:
3
}
m_Name
:
m_EditorClassIdentifier
:
pushForce
:
0
.01
pushForce
:
0
---
!u!114
&114468655689627186
MonoBehaviour
:
m_ObjectHideFlags
:
1
...
...
@@ -323,7 +324,7 @@ MonoBehaviour:
m_Script
:
{
fileID
:
11500000
,
guid
:
908a1b16b9926f747807d321c5ecc8af
,
type
:
3
}
m_Name
:
m_EditorClassIdentifier
:
damage
:
4
damage
:
3
---
!u!114
&114851997656688694
MonoBehaviour
:
m_ObjectHideFlags
:
1
...
...
Assets/Scenes/testEnemy.unity
View file @
8a6d3447
...
...
@@ -1870,7 +1870,7 @@ Prefab:
-
target
:
{
fileID
:
114402380471012178
,
guid
:
3d077a5f727dd1e4780e9265ed26e036
,
type
:
2
}
propertyPath
:
debuffTime.Array.data[2]
value
:
3
value
:
0
objectReference
:
{
fileID
:
0
}
m_RemovedComponents
:
[]
m_SourcePrefab
:
{
fileID
:
100100000
,
guid
:
3d077a5f727dd1e4780e9265ed26e036
,
type
:
2
}
...
...
@@ -2411,6 +2411,11 @@ Prefab:
propertyPath
:
m_RootOrder
value
:
14
objectReference
:
{
fileID
:
0
}
-
target
:
{
fileID
:
114468655689627186
,
guid
:
a164c147037e89448820f7387c724c42
,
type
:
2
}
propertyPath
:
damage
value
:
3
objectReference
:
{
fileID
:
0
}
m_RemovedComponents
:
[]
m_SourcePrefab
:
{
fileID
:
100100000
,
guid
:
a164c147037e89448820f7387c724c42
,
type
:
2
}
m_IsPrefabAsset
:
0
Assets/Scripts/Characters/Enemy/Enemy.cs
View file @
8a6d3447
...
...
@@ -5,12 +5,12 @@ using Random = UnityEngine.Random;
public
class
Enemy
:
MonoBehaviour
{
// data
// data
// debuff
float
[]
immunity_time
=
new
float
[(
int
)
EnemyDebuffCase
.
END_POINTER
]
{
0.0f
,
3.0f
,
6.0f
,
6.0f
,
6.0f
};
public
DebuffState
[]
debuffState
;
public
float
fireDuration
=
0.0f
;
readonly
float
[]
immunity_time
=
new
float
[(
int
)
EnemyDebuffCase
.
END_POINTER
]
{
0.0f
,
3.0f
,
6.0f
,
6.0f
,
6.0f
};
DebuffState
[]
debuffState
;
float
fireDuration
=
0.0f
;
// stat
public
int
monsterID
;
...
...
@@ -21,9 +21,8 @@ public class Enemy : MonoBehaviour {
public
float
attackRange
;
public
float
patrolSpeed
;
public
float
trackSpeed
;
private
float
playerMaxHealth
;
//다른 스크립트에 있는 플레이어 최대체력 가져와야함
public
float
currHealth
;
public
float
[]
knockbackPercentage
;
public
float
currHealth
{
get
;
private
set
;
}
// manager
private
InventoryManager
inventoryManager
;
...
...
@@ -37,7 +36,6 @@ public class Enemy : MonoBehaviour {
public
bool
MovementLock
{
get
;
private
set
;
}
public
bool
KnockbackLock
{
get
;
private
set
;
}
public
float
PlayerDistance
{
get
;
private
set
;
}
private
readonly
float
knockbackCritPoint
=
0.25f
;
public
int
MoveDir
{
get
;
private
set
;
}
public
bool
[]
WallTest
{
get
;
private
set
;
}
...
...
@@ -63,6 +61,9 @@ public class Enemy : MonoBehaviour {
AnimationClip
[]
clips
=
animator
.
runtimeAnimatorController
.
animationClips
;
foreach
(
var
clip
in
clips
)
{
if
(
clip
.
name
.
Contains
(
"Damaged"
))
{
damagedAnimLength
=
clip
.
length
;
}
}
Array
.
Sort
(
knockbackPercentage
);
Array
.
Reverse
(
knockbackPercentage
);
}
private
void
Start
()
...
...
@@ -71,7 +72,6 @@ public class Enemy : MonoBehaviour {
currHealth
=
maxHealth
;
Invisible
=
MovementLock
=
false
;
dropTable
=
enemyManager
.
DropTableByID
[
monsterID
];
//Physics2D.IgnoreCollision(enemyManager.Player.gameObject.GetComponent<Collider2D>(), transform.parent.GetComponent<Collider2D>());
PlayerDistance
=
Vector2
.
Distance
(
enemyManager
.
Player
.
transform
.
position
,
transform
.
parent
.
position
);
}
...
...
@@ -151,7 +151,7 @@ public class Enemy : MonoBehaviour {
bool
[]
lockArray
=
new
bool
[]
{
false
,
KnockbackLock
};
int
knockbackDir
=
(
enemyManager
.
Player
.
transform
.
position
.
x
-
transform
.
parent
.
position
.
x
>=
0
)
?
-
1
:
1
;
float
knockbackVelocity
=
knockbackDir
*
knockbackDist
/
knockbackTime
;
ChangeDir_lock
(
knockbackDir
*
-
1
,
lockArray
);
ChangeDir_lock
(
knockbackDir
*
-
1
,
new
bool
[]
{
MovementLock
,
KnockbackLock
}
);
ChangeVelocityX_lock
(
knockbackVelocity
,
lockArray
);
for
(
float
timer
=
0
;
timer
<=
knockbackTime
;
timer
+=
Time
.
deltaTime
)
...
...
@@ -173,6 +173,7 @@ public class Enemy : MonoBehaviour {
// - Calculate value & Arrange information
public
void
GetDamaged
(
PlayerAttackInfo
attack
)
{
float
prevHealth
=
currHealth
;
currHealth
-=
attack
.
damage
;
if
(
currHealth
<=
0
)
{
...
...
@@ -186,15 +187,23 @@ public class Enemy : MonoBehaviour {
float
knockbackDist
=
attack
.
damage
*
attack
.
knockBackMultiplier
/
weight
;
float
knockbackTime
=
(
knockbackDist
>=
0.5f
)
?
0.5f
:
knockbackDist
;
if
(
MovementLock
)
if
(
MovementLock
)
// 넉백이 진행 중
{
StopCoroutine
(
"Knockback"
);
}
StartCoroutine
(
Knockback
(
knockbackDist
,
knockbackTime
));
if
(
knockbackDist
>=
knockbackCritPoint
)
float
currHealthPercentage
=
currHealth
/
maxHealth
;
float
prevHealthPercentage
=
prevHealth
/
maxHealth
;
foreach
(
float
percentage
in
knockbackPercentage
)
{
animator
.
SetTrigger
(
"DamagedTrigger"
);
if
(
currHealthPercentage
>
percentage
)
{
break
;
}
if
(
prevHealthPercentage
>
percentage
)
{
animator
.
SetTrigger
(
"DamagedTrigger"
);
break
;
}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment