public void Init(Character.Stats stats) { _playerStats = stats; _bookAnimationComponent = new BookAnimationComponent(this.transform.GetComponent <Animator>(), this.transform, new string[] { "Bottom", "Top", "Side" }); }
private void OnTriggerEnter(Collider col) { if (col.CompareTag("Player") || col.CompareTag("Hero")) { switch (_MonsterBulletKind) { case MonsterBulletKind.RADIATE: _monsterstats = this.transform.parent.GetComponent <RadialBullet>()._monsterstats; break; case MonsterBulletKind.MUCUS: _monsterstats = this.transform.parent.GetComponent <SpitBullet>()._monsterstats; break; case MonsterBulletKind.RADIATEMUCUS: _monsterstats = this.transform.parent.GetComponent <RadialSpitBullet>()._monsterstats; break; } if (col.CompareTag("Player")) { col.GetComponent <PlayerController>().Damaged(Vector3.zero, _monsterstats.Damage, StatusEffectKind.kNoStatusEffect); } else if (col.CompareTag("Hero")) { col.GetComponentInChildren <Hero>().DoWork(HeroComponentKind.DAMAGED, this.transform.parent); } ExplosionBullet(); } }
public override void SuperArmor(Character.Stats monsterstats, Transform monster) { //슈퍼아머 monsterstats.HeatPoint += 2; monsterstats.MaxHeatPoint += 2; monster.GetComponent <Rigidbody>().mass += 1000; }
public override void Rapid(Character.Stats monsterstats) { //날렵한 : 공속, 탄속+ monsterstats.ShootSpeed += 0.5f; monsterstats.BulletSpeed += 0.5f; monsterstats.CheckNegative(); }
public override void LearnWaterSkill(Character.Stats monsterStats, Transform monster) { if (this.ActiveSkills == null) { this.ActiveSkills = new int[3]; } if (this.AcquiredSkills == null) { this.AcquiredSkills = new List <int>(); } ////랜덤으로 수속성 스킬 습득(패시브면 1번만 쓰고 사라짐 액티브면 저장) /// int randomSkillnum = Random.Range(0, 2); switch (randomSkillnum) { case 0: // default Skills LearnDefaultSkill(monsterStats, monster); break; case 1: switch (Random.Range(SkillKind.kSlow, SkillKind.kSlow + 1)) //추후 수정 //WaterSkills - Active { case SkillKind.kSlow: this.ActiveSkills[SkillCount] = SkillKind.kSlow; this.SkillCount++; AcquiredSkills.Add(SkillKind.kSlow); Debug.Log("슬로우를 배웠습니다"); break; } break; } CheckOverlap(SkillKind.kSlow, SkillKind.kSlow);//추후 수정 }
public override void LearnDarknessSkill(Character.Stats monsterStats, Transform monster) { if (this.ActiveSkills == null) { this.ActiveSkills = new int[3]; } if (this.AcquiredSkills == null) { this.AcquiredSkills = new List <int>(); } ////랜덤으로 암속성 스킬 습득(패시브면 1번만 쓰고 사라짐 액티브면 저장) int randomSkillnum = Random.Range(0, 2); switch (randomSkillnum) { case 0: // default Skills LearnDefaultSkill(monsterStats, monster); break; case 1: switch (Random.Range(SkillKind.kDarkNessTmp1, SkillKind.kDarkNessTmp1 + 1)) //추후 수정 { //DarknessSkills - Active case SkillKind.kDarkNessTmp1: this.ActiveSkills[SkillCount] = SkillKind.kDarkNessTmp1; this.SkillCount++; AcquiredSkills.Add(SkillKind.kDarkNessTmp1); Debug.Log("어둠속성 스킬을 배웠습니다"); break; } break; } CheckOverlap(SkillKind.kDarkNessTmp1, SkillKind.kDarkNessTmp1); //추후 수정 }
public override void Volant(Character.Stats monsterstats) { //날쌘 : 이속, 공속+ monsterstats.MoveSpeed += 0.5f; monsterstats.ShootSpeed += 1f; monsterstats.CheckNegative(); }
//======================================================================================= // Muzzle Event //======================================================================================= #region private void Single(Transform[] axes, Character.Stats stats, Transform pos) { Bullet bullet = BulletPoolManager.Instance.Pop(stats).GetComponent <Bullet>(); bullet.Fire(axes[2].position, stats.BulletSpeed, Utility.LookAt(MainCamController.MousePosition, pos.position)); }
Character.Stats TasteToStats.tasteToStats(Food food) { Character.Stats statsToReturn = new Character.Stats(); statsToReturn.MaxHP += food.foodTaste.umami; statsToReturn.AttackSpeed += food.foodTaste.bitter; statsToReturn.MovementSpeed += food.foodTaste.bitter; return statsToReturn; }
public override void Sonic(Character.Stats monsterstats) { //소닉 : 이속, 공속+ 공격력 감소 monsterstats.MoveSpeed += 0.5f; monsterstats.ShootSpeed += 2f; monsterstats.Damage -= 10; monsterstats.CheckNegative(); }
public override void Smash(Character.Stats monsterstats, Transform player) { //강격 //isSmashed = true; //_player = player; //targetpos = player.transform.position; monsterstats.CheckNegative(); }
public void Set(Character.Stats stats, DamageAttribute attribute) { _bulletInfo.Damage = stats.Damage; _range = stats.Range; _bulletInfo.PushPower = stats.PushPower; _bulletInfo.Attribute = attribute; this.transform.localScale = Vector3.one * 0.1f * _bulletInfo.Damage; }
Character.Stats TasteToStats.tasteToStats(Food food) { Character.Stats statsToReturn = new Character.Stats(); statsToReturn.MaxHP += food.foodTaste.umami; statsToReturn.CurrHP += food.foodTaste.spicy; statsToReturn.AttackDamage += food.foodTaste.spicy; statsToReturn.AttackSpeed += food.foodTaste.spicy; statsToReturn.MovementSpeed += food.foodTaste.spicy; return statsToReturn; }
public override void Giant(Character.Stats monsterstats, Transform monster) { //거대한 : 이속,공속 - 몸크기+ 체력+ monsterstats.MoveSpeed -= 0.5f; monsterstats.ShootSpeed = monsterstats.ShootSpeed * 0.5f; monsterstats.HeatPoint += 50; monsterstats.MaxHeatPoint += 50; monster.transform.localScale += new Vector3(0.5f, 0.5f, 0.5f); monsterstats.CheckNegative(); }
public override void TwiceAttack(Character.Stats monsterstats) { //난한번에 두번때려 Debug.Log(monsterstats.Damage); // _playerController.Damaged(Vector3.zero, monsterstats.Damage, StatusEffectKind.kNoStatusEffect); Debug.Log("원펀치"); // _playerController.Damaged(Vector3.zero, monsterstats.Damage, StatusEffectKind.kNoStatusEffect); Debug.Log("투펀치"); monsterstats.CheckNegative(); }
public static void SpawnCharacter(Character.Type characterType, BattleHandler.LanePosition lanePosition, bool isPlayerTeam, Character.Stats stats) { Transform characterTransform = Object.Instantiate(GameAssets.i.pfCharacterBattle, GetPosition(lanePosition, isPlayerTeam), Quaternion.identity); CharacterBattle characterBattle = characterTransform.GetComponent <CharacterBattle>(); characterBattle.Setup(characterType, lanePosition, GetPosition(lanePosition, isPlayerTeam), isPlayerTeam, stats); _instance.characterBattleList.Add(characterBattle); }
public void Fire(Character.Stats monsterstats, Transform monster) { this.gameObject.SetActive(true); _monsterstats = monsterstats; //총알세팅 _range = monsterstats.Range; _bulletInfo.Damage = _monsterstats.Damage; _bulletInfo.PushPower = _monsterstats.PushPower; _bulletInfo.Attribute = DamageAttribute.FREEZING; _isFired = true; StartCoroutine(FireBullet(_bulletNum, monster)); }
public GameObject Pop(Character.Stats stats) { GameObject bullet = _bullets.Count == 0 ? SupplyBullet() : _bullets[0]; _bullets.RemoveAt(0); // 기초 세팅 // 마테리얼 임시 적용 DamageAttribute ba = _bulletAttributeMgr.GetAttribute(); bullet.GetComponent <Bullet>().Set(stats, ba); bullet.GetComponent <SpriteRenderer>().color = _AtributeColors[(int)ba]; return(bullet); }
/// <summary> /// Applies the party's set of enhancements to itsself. /// </summary> public static void applyEnhancements(Party party) { foreach(Enhancement enh in party.equippedEnhancements) { if(enh == null) continue; Character.Stats allStatDelta = new Character.Stats(); if(enh == Enhancements.mhp_plus_100) allStatDelta.mhp = 100; if(enh == Enhancements.str_plus_10) allStatDelta.strength = 10; if(enh == Enhancements.premonition) party.enhUnsurprisable = true; //in case we need to apply something to each character applyToEachCharacter(party, allStatDelta); } }
public void CalcStats(ref Character.Stats currentStats, ref float hp, ref float armor, CharacterInfo info) { for (int i = 0; i < 3; i++) { if (equipment[i] != null && equipment[i].type == info.loadoutSlotType[i]) { currentStats += equipment[i].rawStats; } } for (int i = 0; i < 3; i++) { if (equipment[i] != null && equipment[i].type == info.loadoutSlotType[i]) { equipment[i].effect.CalcStats(ref currentStats, ref hp, ref armor); } } }
public override void LearnKingSlimeSkill(Character.Stats monsterStats, Transform monster) { if (this.ActiveSkills == null) { this.ActiveSkills = new int[4] { -1, -1, -1, -1 } } ; if (this.AcquiredSkills == null) { this.AcquiredSkills = new List <int>(); } for (int i = 0; i < 4; i++) { this.ActiveSkills[i] = i; this.SkillCount++; AcquiredSkills.Add(i); } }
public override void LearnFlameSkill(Character.Stats monsterStats, Transform monster) { if (this.ActiveSkills == null) { this.ActiveSkills = new int[3] { -1, -1, -1 } } ; if (this.AcquiredSkills == null) { this.AcquiredSkills = new List <int>(); } ////랜덤으로 화염스킬 습득(패시브면 1번만 쓰고 사라짐 액티브면 저장) /// int randomSkillnum = Random.Range(0, 2); switch (randomSkillnum) { case 0: // default Skills LearnDefaultSkill(monsterStats, monster); break; case 1: switch (Random.Range(SkillKind.kLava, SkillKind.kFlameColak + 1)) { //FlameSkills - Active case SkillKind.kLava: this.ActiveSkills[SkillCount] = SkillKind.kLava; this.SkillCount++; AcquiredSkills.Add(SkillKind.kLava); Debug.Log("라바를 배웠습니다"); break; case SkillKind.kFlameColak: this.ActiveSkills[SkillCount] = SkillKind.kFlameColak; this.SkillCount++; AcquiredSkills.Add(SkillKind.kFlameColak); Debug.Log("호염망토를 배웠습니다"); break; } break; } CheckOverlap(SkillKind.kLava, SkillKind.kFlameColak); }
public override void Healty(Character.Stats monsterstats) { //건강한 : 채력+ monsterstats.HeatPoint += 5; monsterstats.CheckNegative(); }
//King Slime public virtual void LearnKingSlimeSkill(Character.Stats monsterStats, Transform monster) { }
public override void HeadHunter(Character.Stats monsterstats, PlayerController _playerController) //헤드헌터 //나중에 플레이어 or 히어로로 바꿔야함 //_playerController.Damaged(Vector3.zero, monsterstats.Damage * 2, StatusEffectKind.kNoStatusEffect); { monsterstats.CheckNegative(); }
public virtual void LateCalcStats(ref Character.Stats stats, ref float hp, ref float armor) { }
public void SetStatsUI() { Character.Stats stats = _playerController.GetStats(); _BasicCanvas.transform.Find("Common/Status/MaxHeatPoint/HeatPointBar").GetComponent <HeatPointBar>().Init(stats); _BasicCanvas.transform.Find("Common/Status/MaxManaPoint/ManaPointBar").GetComponent <ManaPointBar>().Init(stats); }
//Darkness Skills public virtual void LearnDarknessSkill(Character.Stats monsterStats, Transform monster) { }
public void Setup(Character.Type characterType, BattleHandler.LanePosition lanePosition, Vector3 startingPosition, bool isPlayerTeam, Character.Stats stats) { this.characterType = characterType; this.lanePosition = lanePosition; this.startingPosition = startingPosition; this.isPlayerTeam = isPlayerTeam; this.stats = stats; hitUnitAnimType = GameAssets.UnitAnimTypeEnum.dBareHands_Hit; slideLeftUnitAnim = UnitAnim.GetUnitAnim("dBareHands_SlideLeft"); slideRightUnitAnim = UnitAnim.GetUnitAnim("dBareHands_SlideRight"); Vector3 healthWorldBarLocalPosition = new Vector3(0, 10); switch (characterType) { case Character.Type.Player: material.mainTexture = GameAssets.i.t_Player; playerBase.GetAnimatedWalker().SetAnimations(GameAssets.UnitAnimTypeEnum.dSwordTwoHandedBack_Idle, GameAssets.UnitAnimTypeEnum.dSwordTwoHandedBack_Walk, 1f, 1f); attackUnitAnimType = GameAssets.UnitAnimTypeEnum.dSwordTwoHandedBack_Sword; if (GameData.GetCharacter(Character.Type.Player).hasFtnDewArmor) { Texture2D newSpritesheetTexture = new Texture2D(material.mainTexture.width, material.mainTexture.height, TextureFormat.ARGB32, true); newSpritesheetTexture.SetPixels((material.mainTexture as Texture2D).GetPixels()); Color[] ftnDewArmorPixels = GameAssets.i.t_FtnDewArmor.GetPixels(0, 0, 512, 128); newSpritesheetTexture.SetPixels(0, 256, 512, 128, ftnDewArmorPixels); newSpritesheetTexture.Apply(); material.mainTexture = newSpritesheetTexture; } if (GameData.GetCharacter(Character.Type.Player).hasSwordThousandTruths) { Texture2D newSpritesheetTexture = new Texture2D(material.mainTexture.width, material.mainTexture.height, TextureFormat.ARGB32, true); newSpritesheetTexture.SetPixels((material.mainTexture as Texture2D).GetPixels()); Color[] swordThousandTruthsPixels = GameAssets.i.t_SwordThousandTruths.GetPixels(0, 0, 128, 128); newSpritesheetTexture.SetPixels(0, 128, 128, 128, swordThousandTruthsPixels); newSpritesheetTexture.Apply(); material.mainTexture = newSpritesheetTexture; } break; case Character.Type.Tank: material.mainTexture = GameAssets.i.t_Tank; playerBase.GetAnimatedWalker().SetAnimations(GameAssets.UnitAnimTypeEnum.dSwordShield_Idle, GameAssets.UnitAnimTypeEnum.dSwordShield_Walk, 1f, 1f); attackUnitAnimType = GameAssets.UnitAnimTypeEnum.dSwordShield_Attack; transform.localScale = Vector3.one * 1.2f; break; case Character.Type.Healer: material.mainTexture = GameAssets.i.t_Healer; playerBase.GetAnimatedWalker().SetAnimations(GameAssets.UnitAnimTypeEnum.dDualDagger_Idle, GameAssets.UnitAnimTypeEnum.dDualDagger_Walk, 1f, 1f); attackUnitAnimType = GameAssets.UnitAnimTypeEnum.dDualDagger_Attack; transform.localScale = Vector3.one * 1.0f; break; case Character.Type.EvilMonster: case Character.Type.EvilMonster_2: case Character.Type.EvilMonster_3: material.mainTexture = GameAssets.i.t_EvilMonster; playerBase.GetAnimatedWalker().SetAnimations(GameAssets.UnitAnimTypeEnum.dBareHands_Idle, GameAssets.UnitAnimTypeEnum.dBareHands_Walk, 1f, 1f); attackUnitAnimType = GameAssets.UnitAnimTypeEnum.dBareHands_Punch; transform.localScale = Vector3.one * 1.8f; healthWorldBarLocalPosition.y = 9.5f; break; case Character.Type.Enemy_MinionOrange: material.mainTexture = GameAssets.i.t_EnemyMinionOrange; playerBase.GetAnimatedWalker().SetAnimations(GameAssets.UnitAnimTypeEnum.dMinion_Idle, GameAssets.UnitAnimTypeEnum.dMinion_Walk, 1f, 1f); attackUnitAnimType = GameAssets.UnitAnimTypeEnum.dMinion_Attack; break; case Character.Type.Enemy_MinionRed: material.mainTexture = GameAssets.i.t_EnemyMinionRed; playerBase.GetAnimatedWalker().SetAnimations(GameAssets.UnitAnimTypeEnum.dMinion_Idle, GameAssets.UnitAnimTypeEnum.dMinion_Walk, 1f, 1f); attackUnitAnimType = GameAssets.UnitAnimTypeEnum.dMinion_Attack; break; case Character.Type.Enemy_Ogre: material.mainTexture = GameAssets.i.t_Ogre; playerBase.GetAnimatedWalker().SetAnimations(GameAssets.UnitAnimTypeEnum.dOgre_Idle, GameAssets.UnitAnimTypeEnum.dOgre_Walk, 1f, 1f); attackUnitAnimType = GameAssets.UnitAnimTypeEnum.dOgre_Attack; hitUnitAnimType = UnitAnimType.GetUnitAnimType("dOgre_Hit"); slideLeftUnitAnim = UnitAnim.GetUnitAnim("dOgre_SlideLeft"); slideRightUnitAnim = UnitAnim.GetUnitAnim("dOgre_SlideRight"); healthWorldBarLocalPosition.y = 12; break; case Character.Type.Enemy_Zombie: material.mainTexture = GameAssets.i.t_Zombie; playerBase.GetAnimatedWalker().SetAnimations(GameAssets.UnitAnimTypeEnum.dZombie_Idle, GameAssets.UnitAnimTypeEnum.dZombie_Walk, 1f, 1f); attackUnitAnimType = GameAssets.UnitAnimTypeEnum.dZombie_Attack; break; } transform.Find("Body").GetComponent <MeshRenderer>().material = material; healthSystem = new HealthSystem(stats.healthMax); healthSystem.SetHealthAmount(stats.health); healthWorldBar = new World_Bar(transform, healthWorldBarLocalPosition, new Vector3(12 * (stats.healthMax / 100f), 1.6f), Color.grey, Color.red, healthSystem.GetHealthPercent(), UnityEngine.Random.Range(1000, 2000), new World_Bar.Outline { color = Color.black, size = .6f }); healthSystem.OnHealthChanged += HealthSystem_OnHealthChanged; healthSystem.OnDead += HealthSystem_OnDead; PlayIdleAnim(); }
public void UseSpell(Character.Stats stats) { _muzzle(WepaonAxis, stats, this.transform); }
public override void Sharp(Character.Stats monsterstats) { //날카로운 : 데미지+ monsterstats.Damage += 5; monsterstats.CheckNegative(); }
public override void Haste(Character.Stats monsterstats) { //신속한 : 이속+ monsterstats.MoveSpeed += 0.5f; monsterstats.CheckNegative(); }
void OnGUI() { Type targetType; charScript = AssetDatabase.LoadAssetAtPath<MonoScript>("Assets/Scripts/Character/Character.cs"); if (jsonSerializer == null) { Start(); } targetType = charScript.GetClass(); EditorGUILayout.BeginVertical(EditorStyles.helpBox); EditorGUILayout.LabelField("id: ", database.Count.ToString()); if (reorderableList == null) { reorderableList = new ReorderableList(charAbilities, typeof(int), false, true, true, true); reorderableList.drawElementCallback = (Rect rect, int index, bool isActive, bool isFocused) => { var element = reorderableList.list[index]; rect.y += 2; reorderableList.list[index] = EditorGUI.IntField( new Rect(rect.x, rect.y, 60, EditorGUIUtility.singleLineHeight), (int)element); }; } reorderableList.DoLayoutList(); foreach (FieldInfo info in targetType.GetFields(flags)) { Type fieldType = info.FieldType; if (fieldType == typeof(int)) { info.SetValue(tempChar, EditorGUILayout.IntField(info.Name, (int)info.GetValue(tempChar))); } else if (fieldType == typeof(string)) { info.SetValue(tempChar, EditorGUILayout.TextField(info.Name, (string)info.GetValue(tempChar))); } else if (fieldType == typeof(float)) { info.SetValue(tempChar, EditorGUILayout.FloatField(info.Name, (float)info.GetValue(tempChar))); } else if (fieldType == typeof(Character.Stats)) //struct { EditorGUILayout.Space(); EditorGUILayout.BeginVertical(EditorStyles.helpBox); if (tempStruct == null) { tempStruct = new Character.Stats(); info.SetValue(tempChar, (Character.Stats)tempStruct); } foreach (FieldInfo infoInStruct in fieldType.GetFields(flags)) { Type fieldTypeInStruct = infoInStruct.FieldType; if (fieldTypeInStruct == typeof(float)) { infoInStruct.SetValue(tempStruct, EditorGUILayout.FloatField(infoInStruct.Name, (float)infoInStruct.GetValue(info.GetValue(tempChar)) )); } } info.SetValue(tempChar, (Character.Stats)tempStruct); EditorGUILayout.EndVertical(); EditorGUILayout.Space(); } else if (fieldType == typeof(TasteToStats))//object { var dirPath = new DirectoryInfo("Assets/Scripts/Character/TasteTranslation"); FileInfo[] fileInfo = dirPath.GetFiles(); List<string> fileNames = new List<string>(); for (int i = 0; i < fileInfo.Length; i++) { if (!fileInfo[i].Name.Contains("meta") && !fileInfo[i].Name.Equals("TasteToStats.cs")) { fileNames.Add(fileInfo[i].Name); } } tasteToStats = EditorGUILayout.Popup("Ability:", tasteToStats, fileNames.ToArray()); MonoScript derp = AssetDatabase.LoadAssetAtPath<MonoScript>("Assets/Scripts/Character/TasteTranslation/"+ fileNames[tasteToStats]); info.SetValue(tempChar, Activator.CreateInstance(derp.GetClass())); } else if (fieldType == typeof(List<int>)) { info.SetValue(tempChar, charAbilities); } } EditorGUILayout.EndVertical(); if (GUILayout.Button("submit")) { textWriter = new StreamWriter(Application.dataPath + itemFileName); jsonWriter = new JsonTextWriter(textWriter); database.Add(tempChar); String text = JsonConvert.SerializeObject(database, Formatting.Indented, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Objects, TypeNameAssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Simple }); textWriter.Write(text); textWriter.Close(); textWriter.Dispose(); jsonWriter.Close(); tempChar = new Character(); tempStruct = null; reorderableList = null; charAbilities = new List<int>(); } }
protected void LearnDefaultSkill(Character.Stats monsterStats, Transform monster) { switch (Random.Range(0, SkillKind.defaultSkillCount)) { //DefaultSkills - Passive case SkillKind.kHaste: Haste(monsterStats); AcquiredSkills.Add(SkillKind.kHaste); Debug.Log("신속함을 배웠습니다"); break; case SkillKind.kRapid: Rapid(monsterStats); AcquiredSkills.Add(SkillKind.kRapid); Debug.Log("날렵한을 배웠습니다"); break; case SkillKind.kSharp: Sharp(monsterStats); AcquiredSkills.Add(SkillKind.kSharp); Debug.Log("날카로움를 배웠습니다"); break; case SkillKind.kHealty: Healty(monsterStats); AcquiredSkills.Add(SkillKind.kHealty); Debug.Log("건강함을 배웠습니다"); break; case SkillKind.kVolant: Volant(monsterStats); AcquiredSkills.Add(SkillKind.kVolant); Debug.Log("날쌘을 배웠습니다"); break; case SkillKind.kSonic: Sonic(monsterStats); AcquiredSkills.Add(SkillKind.kSonic); Debug.Log("소닉을 배웠습니다"); break; case SkillKind.kSuperArmor: SuperArmor(monsterStats, monster); AcquiredSkills.Add(SkillKind.kSuperArmor); Debug.Log("슈퍼아머를 배웠습니다"); break; case SkillKind.kGiant: Giant(monsterStats, monster); AcquiredSkills.Add(SkillKind.kGiant); Debug.Log("거대한을 배웠습니다"); break; //DefaultSkills - Active case SkillKind.kHeadHunter: this.ActiveSkills[SkillCount] = SkillKind.kHeadHunter; this.SkillCount++; AcquiredSkills.Add(SkillKind.kHeadHunter); Debug.Log("머리노리기를 배웠습니다"); break; case SkillKind.kSmash: this.ActiveSkills[SkillCount] = SkillKind.kSmash; this.SkillCount++; AcquiredSkills.Add(SkillKind.kSmash); Debug.Log("강격을 배웠습니다"); break; case SkillKind.kTwiceAttack: this.ActiveSkills[SkillCount] = SkillKind.kTwiceAttack; this.SkillCount++; AcquiredSkills.Add(SkillKind.kTwiceAttack); Debug.Log("난 한번에 두번 때려를 배웠습니다"); break; } }