Commit 50408057 authored by 18류지석's avatar 18류지석

애드온 색칠해놓은거 효과는 다 구현함. 이제 그림만 있으면 됨

parent 5b77dbee
......@@ -347,9 +347,12 @@ MonoBehaviour:
m_EditorClassIdentifier:
damage: 2
knockBackMultiplier: 1
debuffNum: 0
debuffType:
debuffTime: 00000000000000000000000000000000000000000000000000000000000000000000000000000000
debuffTime:
- 0
- 0
- 0
- 0
- 0
--- !u!114 &114880704145925944
MonoBehaviour:
m_ObjectHideFlags: 1
......@@ -364,6 +367,7 @@ MonoBehaviour:
attack: 000000
cancel: 0
playingSkill: 0
originComboTime: 1
comboTime: 1
time: {fileID: 0}
combo: {fileID: 0}
......@@ -375,7 +379,6 @@ MonoBehaviour:
- {fileID: 7400000, guid: b1bf5cd583e214e448b83335f6c2d7a6, type: 2}
- {fileID: 7400000, guid: b7ca0c87c2a73cb4e939b4d06abd4217, type: 2}
- {fileID: 7400000, guid: 9133e696bcae7294c86f6702b20b4ae7, type: 2}
inventoryManager: {fileID: 0}
lifeStoneManager: {fileID: 0}
--- !u!114 &114906702720267008
MonoBehaviour:
......
......@@ -997,6 +997,11 @@ Prefab:
propertyPath: m_Enabled
value: 1
objectReference: {fileID: 0}
- target: {fileID: 114880704145925944, guid: 3d077a5f727dd1e4780e9265ed26e036,
type: 2}
propertyPath: originComboTime
value: 1
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 3d077a5f727dd1e4780e9265ed26e036, type: 2}
m_IsPrefabAsset: 0
......
......@@ -7,6 +7,7 @@ public class PlayerAttack : MonoBehaviour {
public bool cancel;
public bool playingSkill;
private bool comboEndDelay = true;
public float originComboTime;
public float comboTime;
public Text time, combo;
public string comboArray;
......@@ -116,6 +117,7 @@ public class PlayerAttack : MonoBehaviour {
IEnumerator SkillEndCoroutine()
{
comboEndTime = Time.time + comboTime;
comboTime = originComboTime;
comboTimeOn = true;
while (Time.time < comboEndTime && comboTimeOn && !playingSkill)
{
......
......@@ -253,7 +253,7 @@ public class PlayerController : MonoBehaviour
downKeyDown = false;
jump = false;
}
bool IsGrounded() // Is player grounded?
public bool IsGrounded() // Is player grounded?
{
RaycastHit2D hit = Physics2D.BoxCast(transform.position, new Vector2(Player.X, boxHeight), 0, Vector2.down, Player.Y / 2f, groundLayer);
Debug.DrawLine(transform.position + new Vector3(0, -Player.Y / 2f) + new Vector3(-Player.X, -boxHeight, 0) / 2,
......
......@@ -24,34 +24,57 @@ public abstract class Addon {
highlight = null;
sizeInventory = new Vector2(0, 0);
}
public virtual float DamageAdder(PlayerAttackInfo attackInfo, Enemy enemInfo, string combo)
public virtual float DamageAdder(PlayerAttackInfo attackInfo, Enemy enemyInfo, string combo)
{
return 0f;
}
public virtual float DamageMultiplier(PlayerAttackInfo attackInfo, Enemy enemInfo, string combo)
public virtual float DamageMultiplier(PlayerAttackInfo attackInfo, Enemy enemyInfo, string combo)
{
return 1f;
}
public virtual float[] DebuffAdder(PlayerAttackInfo attackInfo, Enemy enemInfo, string combo)
public virtual float DamageFinalAdder(PlayerAttackInfo attackInfo, Enemy enemyInfo, string combo)
{
return 0f;
}
public virtual float[] DebuffAdder(PlayerAttackInfo attackInfo, Enemy enemyInfo, string combo)
{
float[] varArray = new float[(int)EnemyDebuffCase.END_POINTER];
for (int i = 0; i < (int)EnemyDebuffCase.END_POINTER; i++) varArray[i] = 0f;
return varArray;
}
public virtual float[] DebuffMultiplier(PlayerAttackInfo attackInfo, Enemy enemInfo, string combo)
public virtual float[] DebuffMultiplier(PlayerAttackInfo attackInfo, Enemy enemyInfo, string combo)
{
float[] varArray = new float[(int)EnemyDebuffCase.END_POINTER];
for (int i = 0; i < (int)EnemyDebuffCase.END_POINTER; i++) varArray[i] = 1f;
return varArray;
}
public virtual float KnockBackAdder(PlayerAttackInfo attackInfo, Enemy enemInfo, string combo)
public virtual float[] DebuffFinalAdder(PlayerAttackInfo attackInfo, Enemy enemyInfo, string combo)
{
float[] varArray = new float[(int)EnemyDebuffCase.END_POINTER];
for (int i = 0; i < (int)EnemyDebuffCase.END_POINTER; i++) varArray[i] = 0f;
return varArray;
}
public virtual float KnockBackAdder(PlayerAttackInfo attackInfo, Enemy enemyInfo, string combo)
{
return 0f;
}
public virtual float KnockBackMultiplier(PlayerAttackInfo attackInfo, Enemy enemInfo, string combo)
public virtual float KnockBackMultiplier(PlayerAttackInfo attackInfo, Enemy enemyInfo, string combo)
{
return 1f;
}
public virtual float KnockBackFinalAdder(PlayerAttackInfo attackInfo, Enemy enemyInfo, string combo)
{
return 0f;
}
public virtual void OtherEffect(PlayerAttackInfo attackInfo, Enemy enemyInfo, string combo)
{
}
public virtual void OtherEffect(string combo)
{
}
}
......@@ -2,18 +2,18 @@
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 애드온명: 기사의 등자
/// 번호: 8
/// 애드온명: 대장장이의 브롯치
/// 번호: 9
/// </summary>
public class KnightsStirrup : Addon
public class BlacksmithsBrooch : Addon
{
public override void Declare()
{
id = 8; name = "Knight's stirrup";
quality = ItemQuality.Study;
id = 9; name = "대장장이의 브롯치";
quality = ItemQuality.Ordinary;
type = AddonType.Prop;
sprite = Resources.Load<Sprite>("Sprites/Addons/Knight's stirrup"); ;
highlight = Resources.Load<Sprite>("Sprites/Addons/Knight's stirrup"); ;
sprite = Resources.Load<Sprite>("Sprites/Addons/Coolly Pride"); ;
highlight = Resources.Load<Sprite>("Sprites/Addons/Coolly Pride"); ;
sizeInventory = new Vector2(80, 80);
}
}
fileFormatVersion: 2
guid: ffe4f09c9db1a3a4693857c6195e8965
guid: 88d2d49b8f25be348858b3b79604ff7a
MonoImporter:
externalObjects: {}
serializedVersion: 2
......
......@@ -9,11 +9,21 @@ public class CoollyPride : Addon
{
public override void Declare()
{
id = 10; name = "Coolly Pride";
id = 10; name = "차갑게 식은 긍지";
quality = ItemQuality.Ordinary;
type = AddonType.Theory;
sprite = Resources.Load<Sprite>("Sprites/Addons/Coolly Pride"); ;
highlight = Resources.Load<Sprite>("Sprites/Addons/Coolly Pride"); ;
sizeInventory = new Vector2(80, 80);
}
public override float[] DebuffAdder(PlayerAttackInfo attackInfo, Enemy enemyInfo, string combo)
{
float[] varArray = new float[(int)EnemyDebuffCase.END_POINTER];
for (int i = 0; i < (int)EnemyDebuffCase.END_POINTER; i++) varArray[i] = 0f;
if (attackInfo.damage < 4) varArray[(int)EnemyDebuffCase.ice] = 2f;
return varArray;
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 애드온명: 라거의 문양
/// 번호: 26
/// </summary>
public class DesignofRagur : Addon
{
public override void Declare()
{
id = 26; name = "라거의 문양";
quality = ItemQuality.Superior;
type = AddonType.Prop;
sprite = Resources.Load<Sprite>("Sprites/Addons/Glowing Herb"); ;
highlight = Resources.Load<Sprite>("Sprites/Addons/Glowing Herb"); ;
sizeInventory = new Vector2(80, 80);
}
public override float DamageMultiplier(PlayerAttackInfo attackInfo, Enemy enemyInfo, string combo)
{
int aNum = 0;
for (int i = 0; i < combo.Length; i++)
if (combo[i] == 'A')
aNum++;
return 1f + aNum * 0.4f;
}
}
fileFormatVersion: 2
guid: c704b40000832e742a1b53c5956dfb7d
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 애드온명: 레아의 깃털
/// 번호: 21
/// </summary>
public class FeatherofRheA : Addon
{
public override void Declare()
{
id = 21; name = "레아의 깃털";
quality = ItemQuality.Ordinary;
type = AddonType.Matter;
sprite = Resources.Load<Sprite>("Sprites/Addons/Glowing Herb"); ;
highlight = Resources.Load<Sprite>("Sprites/Addons/Glowing Herb"); ;
sizeInventory = new Vector2(80, 80);
}
public override float DamageMultiplier(PlayerAttackInfo attackInfo, Enemy enemyInfo, string combo)
{
if (!GameObject.Find("Player").GetComponent<PlayerController>().IsGrounded())
return 1.75f;
else
return 1f;
}
}
fileFormatVersion: 2
guid: 009f7b84f96f63d4bacf2f7128392109
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
......@@ -9,11 +9,21 @@ public class GlowingHerb : Addon
{
public override void Declare()
{
id = 14; name = "Glowing Herb";
id = 14; name = "이글거리는 약초";
quality = ItemQuality.Ordinary;
type = AddonType.Matter;
sprite = Resources.Load<Sprite>("Sprites/Addons/Glowing Herb"); ;
highlight = Resources.Load<Sprite>("Sprites/Addons/Glowing Herb"); ;
sizeInventory = new Vector2(80, 80);
}
public override float[] DebuffAdder(PlayerAttackInfo attackInfo, Enemy enemyInfo, string combo)
{
float[] varArray = new float[(int)EnemyDebuffCase.END_POINTER];
for (int i = 0; i < (int)EnemyDebuffCase.END_POINTER; i++) varArray[i] = 0f;
varArray[(int)EnemyDebuffCase.fire] = 3f;
return varArray;
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 애드온명: 식탐
/// 번호: 17
/// </summary>
public class Gluttony : Addon
{
public override void Declare()
{
id = 17; name = "식탐";
quality = ItemQuality.Ordinary;
type = AddonType.Theory;
sprite = Resources.Load<Sprite>("Sprites/Addons/parchment piece"); ;
highlight = Resources.Load<Sprite>("Sprites/Addons/parchment piece"); ;
sizeInventory = new Vector2(80, 80);
}
public override void OtherEffect(PlayerAttackInfo attackInfo, Enemy enemyInfo, string combo)
{
if(attackInfo.damage > enemyInfo.currHealth)
{
//생명석 2개 회복
}
}
}
\ No newline at end of file
fileFormatVersion: 2
guid: 007eade4476db14499fe59f20d9d5160
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 애드온명: 야누스의 동전
/// 번호: 24
/// </summary>
public class JanusCoin : Addon
{
public override void Declare()
{
id = 24; name = "야누스의 동전";
quality = ItemQuality.Superior;
type = AddonType.Prop;
sprite = Resources.Load<Sprite>("Sprites/Addons/parchment piece"); ;
highlight = Resources.Load<Sprite>("Sprites/Addons/parchment piece"); ;
sizeInventory = new Vector2(80, 80);
}
public override float DamageFinalAdder(PlayerAttackInfo attackInfo, Enemy enemyInfo, string combo)
{
LifeStoneManager lifeStoneManager = GameObject.Find("LifeStoneUI").GetComponent<LifeStoneManager>();
if(Random.Range(0,2) == 0)
{
lifeStoneManager.DestroyStone(2);
return 0;
}
else
{
return enemyInfo.currHealth * 0.25f;
}
}
}
\ No newline at end of file
fileFormatVersion: 2
guid: 67b828e35a61f6842977ef133d81975b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
......@@ -9,11 +9,16 @@ public class ParchmentPiece : Addon
{
public override void Declare()
{
id = 2; name = "parchment piece";
id = 2; name = "양피지 조각";
quality = ItemQuality.Study;
type = AddonType.Prop;
sprite = Resources.Load<Sprite>("Sprites/Addons/parchment piece"); ;
highlight = Resources.Load<Sprite>("Sprites/Addons/parchment piece"); ;
sizeInventory = new Vector2(80, 80);
}
public override float DamageMultiplier(PlayerAttackInfo attackInfo, Enemy enemyInfo, string combo)
{
if (attackInfo.damage < 3) return 2f;
else return 1f;
}
}
\ No newline at end of file
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 애드온명: 모래 주머니
/// 번호: 29
/// </summary>
public class Sandbag : Addon
{
public override void Declare()
{
id = 29; name = "모래 주머니";
quality = ItemQuality.Superior;
type = AddonType.Prop;
sprite = Resources.Load<Sprite>("Sprites/Addons/parchment piece"); ;
highlight = Resources.Load<Sprite>("Sprites/Addons/parchment piece"); ;
sizeInventory = new Vector2(80, 80);
}
public override void OtherEffect(string combo)
{
GameObject.Find("Player").GetComponent<PlayerAttack>().comboTime *= 0.5f;
}
public override float DamageMultiplier(PlayerAttackInfo attackInfo, Enemy enemyInfo, string combo)
{
return 2f;
}
}
\ No newline at end of file
fileFormatVersion: 2
guid: 007d4fcc831b5f14a9ffc1cc3a52f49e
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 애드온명: 소형 렌즈
/// 번호: 18
/// </summary>
public class SmallLens : Addon
{
public override void Declare()
{
id = 18; name = "소형 렌즈";
quality = ItemQuality.Ordinary;
type = AddonType.Component;
sprite = Resources.Load<Sprite>("Sprites/Addons/parchment piece"); ;
highlight = Resources.Load<Sprite>("Sprites/Addons/parchment piece"); ;
sizeInventory = new Vector2(80, 80);
}
public override void OtherEffect(string combo)
{
GameObject.Find("Player").GetComponent<PlayerAttack>().comboTime *= 1.75f;
}
}
\ No newline at end of file
fileFormatVersion: 2
guid: 8340e16c6db504548a803272ee93a223
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 애드온명: 시간 톱니바퀴
/// 번호: 32
/// </summary>
public class ToothedWheelofTime : Addon
{
public override void Declare()
{
id = 32; name = "시간 톱니바퀴";
quality = ItemQuality.Superior;
type = AddonType.Component;
sprite = Resources.Load<Sprite>("Sprites/Addons/parchment piece"); ;
highlight = Resources.Load<Sprite>("Sprites/Addons/parchment piece"); ;
sizeInventory = new Vector2(80, 80);
}
}
\ No newline at end of file
fileFormatVersion: 2
guid: ae352da159db1ed439c6451c957125b0
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
......@@ -226,8 +226,7 @@ public class InventoryManager : Singleton<InventoryManager> {
itemList.Add(item);
ui.SetOnPosition(itemList, addonList);
Debug.Log(itemList[0].combo[0] + " " + itemList[0].combo[1]);
return true;
}
/// <summary>
......
......@@ -24,6 +24,16 @@ public abstract class Item {
if (i == 0) PlaySkill1();
else if (i == 1) PlaySkill2();
else if (i == 2) PlaySkill3();
OtherEffect(currentCombo);
for (int j = 0; j < attachable.Length; j++)
{
if (attachable[j] && addons[j] != null)
{
addons[j].OtherEffect(currentCombo);
}
}
return true;
}
}
......@@ -69,11 +79,13 @@ public abstract class Item {
PlayerAttackInfo originInfo = new PlayerAttackInfo(attackInfo);
float[] tmpArray;
//Adder
attackInfo.damage += DamageAdder(originInfo, enemyInfo, combo);
attackInfo.knockBackMultiplier += KnockBackAdder(originInfo, enemyInfo, combo);
tmpArray = DebuffAdder(originInfo, enemyInfo, combo);
for (int i = 0; i < (int)EnemyDebuffCase.END_POINTER; i++)
attackInfo.debuffTime[i] += tmpArray[i];
for (int j = 0; j < attachable.Length; j++)
{
......@@ -87,6 +99,7 @@ public abstract class Item {
}
}
//Multiplier
attackInfo.damage *= DamageMultiplier(originInfo, enemyInfo, combo);
attackInfo.knockBackMultiplier *= KnockBackMultiplier(originInfo, enemyInfo, combo);
tmpArray = DebuffMultiplier(originInfo, enemyInfo, combo);
......@@ -104,35 +117,87 @@ public abstract class Item {
attackInfo.debuffTime[i] *= tmpArray[i];
}
}
//FinalAdder
attackInfo.damage += DamageFinalAdder(originInfo, enemyInfo, combo);
attackInfo.knockBackMultiplier += KnockBackFinalAdder(originInfo, enemyInfo, combo);
tmpArray = DebuffFinalAdder(originInfo, enemyInfo, combo);
for (int i = 0; i < (int)EnemyDebuffCase.END_POINTER; i++)
attackInfo.debuffTime[i] += tmpArray[i];
for (int j = 0; j < attachable.Length; j++)
{
if (attachable[j] && addons[j] != null)
{
attackInfo.damage += addons[j].DamageFinalAdder(originInfo, enemyInfo, combo);
attackInfo.knockBackMultiplier += addons[j].KnockBackFinalAdder(originInfo, enemyInfo, combo);
tmpArray = addons[j].DebuffFinalAdder(originInfo, enemyInfo, combo);
for (int i = 0; i < (int)EnemyDebuffCase.END_POINTER; i++)
attackInfo.debuffTime[i] += tmpArray[i];
}
}
//OtherEffect
OtherEffect(attackInfo, enemyInfo, combo);
for (int j = 0; j < attachable.Length; j++)
{
if (attachable[j] && addons[j] != null)
{
addons[j].OtherEffect(attackInfo, enemyInfo, combo);
}
}
}
public virtual float DamageAdder(PlayerAttackInfo attackInfo, Enemy enemInfo, string combo)
public virtual float DamageAdder(PlayerAttackInfo attackInfo, Enemy enemyInfo, string combo)
{
return 0f;
}
public virtual float DamageMultiplier(PlayerAttackInfo attackInfo, Enemy enemInfo, string combo)
public virtual float DamageMultiplier(PlayerAttackInfo attackInfo, Enemy enemyInfo, string combo)
{
return 1f;
}
public virtual float[] DebuffAdder(PlayerAttackInfo attackInfo, Enemy enemInfo, string combo)
public virtual float DamageFinalAdder(PlayerAttackInfo attackInfo, Enemy enemyInfo, string combo)
{
return 0f;
}
public virtual float[] DebuffAdder(PlayerAttackInfo attackInfo, Enemy enemyInfo, string combo)
{
float[] varArray = new float[(int)EnemyDebuffCase.END_POINTER];
for (int i = 0; i< (int)EnemyDebuffCase.END_POINTER; i++) varArray[i] = 0f;
return varArray;
}
public virtual float[] DebuffMultiplier(PlayerAttackInfo attackInfo, Enemy enemInfo, string combo)
public virtual float[] DebuffMultiplier(PlayerAttackInfo attackInfo, Enemy enemyInfo, string combo)
{
float[] varArray = new float[(int)EnemyDebuffCase.END_POINTER];
for (int i = 0; i < (int)EnemyDebuffCase.END_POINTER; i++) varArray[i] = 1f;
return varArray;
}
public virtual float KnockBackAdder(PlayerAttackInfo attackInfo, Enemy enemInfo, string combo)
public virtual float[] DebuffFinalAdder(PlayerAttackInfo attackInfo, Enemy enemyInfo, string combo)
{
float[] varArray = new float[(int)EnemyDebuffCase.END_POINTER];
for (int i = 0; i < (int)EnemyDebuffCase.END_POINTER; i++) varArray[i] = 0f;
return varArray;
}
public virtual float KnockBackAdder(PlayerAttackInfo attackInfo, Enemy enemyInfo, string combo)
{
return 0f;
}
public virtual float KnockBackMultiplier(PlayerAttackInfo attackInfo, Enemy enemInfo, string combo)
public virtual float KnockBackMultiplier(PlayerAttackInfo attackInfo, Enemy enemyInfo, string combo)
{
return 1f;
}
public virtual float KnockBackFinalAdder(PlayerAttackInfo attackInfo, Enemy enemyInfo, string combo)
{
return 0f;
}
public virtual void OtherEffect(PlayerAttackInfo attackInfo, Enemy enemyInfo, string combo)
{
}
public virtual void OtherEffect(string combo)
{
}
}
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