Skill Magma_Debuff(int Order, float[] Parameter) { int[] Value = { 2, 50 };//2턴간 50의 데미지(기본값). float LoofLength = Value.Length > Parameter.Length ? Parameter.Length : Value.Length; for (int i = 0; i < LoofLength; i++) { Value[i] = (int)Parameter[i]; } StackSkill Magma = new StackSkill(Value[0], base.Number.ToString()); Magma.SetCharacter(Order); Magma.AddPassive( delegate(Skill skil) { Debug.Log("출혈 디버프 들어옴?"); if (!Magma.StackMinus()) { gameManager.ins.UserSlot[Order].DebuffList.Remove(skil); return; } CharacterStatus OrderStat = gameManager.ins.UserStatus[Order]; OrderStat.HpDown_Debuff(Value[1]); }, "Decision"); return(Magma); }
public Skill Fencing_Passive(int Order) { //연속 3회성공시 다음공격 치명타 StackSkill EagleEyes = new StackSkill(3, "EagleEyes"); SkillSlot OrderSlot; EagleEyes.SetCharacter(Order); EagleEyes.StackSet(0); EagleEyes.AddPassive( delegate(Skill skil) { CharacterStatus OrderStat = skil.GetOrder(); Debug.Log("펜싱맨 스킬 들어옴"); if (!OrderStat.Guard) { EagleEyes.StackSet(0); } }, "Hit"); EagleEyes.AddPassive( delegate(Skill skil) { Skill sk = SkillManager.ins.GetSkill(Order, "Critical"); CharacterStatus EnemyStat = skil.GetEnemy(); Debug.Log("펜싱맨 스킬 들어옴"); if (!EnemyStat.Guard) { EagleEyes.StackPlus(); if (EagleEyes.TempStack == 2) { Debug.Log("펜싱선수 패시브 발동"); sk.PassiveCount["Critical"] = 100; } } }, "Attack"); EagleEyes.AddPassive( delegate(Skill skil) { if (EagleEyes.TempStack == 2) { EagleEyes.StackPlus(); } }, "Start"); EagleEyes.AddPassive( delegate(Skill skil) { Skill sk = SkillManager.ins.GetSkill(Order, "Critical"); if (EagleEyes.TempStack == EagleEyes.MaxStack) { Debug.Log("펜싱선수 패시브 종료"); sk.PassiveCount["Critical"] = sk.PassiveCount["MaxCritical"]; EagleEyes.StackSet(0); } }, "End"); return(EagleEyes); }
public Skill Gauntlet_Passive(int Order) { //가드시 화력한칸소모해서 다음스킬 데미지 화력만큼 증가 StackSkill OverCharge = new StackSkill(2, "OverCharge"); OverCharge.SetCharacter(Order); OverCharge.StackSet(0); OverCharge.AddPassive( delegate(Skill skil) { CharacterStatus OrderStat = skil.GetOrder(); Debug.Log("건틀릿 스킬 들어옴"); if (OrderStat.Guard) { OverCharge.StackSet(1); } }, "Hit"); OverCharge.AddPassive( delegate(Skill skil) { CharacterStatus OrderStat = skil.GetOrder(); Debug.Log("건틀릿 스킬 들어옴"); if (OverCharge.TempStack == OverCharge.MaxStack) { DamageCalculator.ins.AddDamage(DamageCalculator.PLUS_s, DamageData.Strong, "OverCharge"); } }, "Attack"); OverCharge.AddPassive( delegate(Skill skil) { if (OverCharge.TempStack == OverCharge.MaxStack) { OverCharge.TempStack = 0; } else if (OverCharge.TempStack != 0) { OverCharge.StackPlus(); } }, "End"); return(OverCharge); }
public Skill Batting_Passive(int Order) { //압박 3회 성공즉시 화력데미지만큼 추가 데미지 StackSkill ThreeOut = new StackSkill(3, "ThreeOut");// ThreeOut.SetCharacter(Order); ThreeOut.AddPassive( delegate(Skill skil) { CharacterStatus EnemyStat = skil.GetEnemy(); if (!EnemyStat.Guard) { if (UnityEngine.Random.Range(0, 2) == 0) //50% { WallManager.ins.Move((int)((float)WallManager.ins.PivotMove * 3f * gameManager.ins.TimingWeight[skil.Order])); } } }, "Attack"); ; return(ThreeOut); }