public void Danger() { if (CurrentEntityType != SkillBehaviourType.FuriousAttack && CurrentEntityType < SkillBehaviourType.DefendAttack) { if (behaviour < GeneralSkillType.Defend) { behaviour = GeneralSkillType.Defend; } CurrentEntityType = SkillBehaviourType.DefendAttack; } }
public void NoWay() { if (UnityEngine.Random.Range(0, 100) < 50) { if (behaviour >= GeneralSkillType.Control) { behaviour = GeneralSkillType.Buff; } SituationSkill = SkillBehaviourType.FuriousAttack; } else { SituationSkill = SkillBehaviourType.DeefDefend; } }
// Start is called before the first frame update void Start() { slider = GetComponentInChildren <Slider>(true); behaviour = GeneralSkillType.TargetAttack; StartEntityType = SkillBehaviourType.Attack; CurrentEntityType = StartEntityType; SituationSkill = CurrentEntityType; MinBehaviour = SkillBehaviourType.RunAway; slider.maxValue = MaxHP; this.MaxHPChangeTrigger += (y) => { float x = (float)y; slider.maxValue = x; }; this.HPChangeTrigger += (y) => { float x = (float)y; slider.value = x; }; this.MPChangeTrigger += (y) => { float x = (float)y; if (x / this.MaxMP >= 0.8) { ManaSkillFilter = SkillParameterType.Large; return; } if (x / this.MaxMP >= 0.4) { ManaSkillFilter = SkillParameterType.Avarage; return; } if (x / this.MaxMP >= 0.1) { ManaSkillFilter = SkillParameterType.Litle; return; } ManaSkillFilter = SkillParameterType.None; }; this.STChangeTrigger += (y) => { float x = (float)y; if (x / this.MaxST >= 0.8) { StaminaSkillFilter = SkillParameterType.Large; return; } if (x / this.MaxST >= 0.4) { StaminaSkillFilter = SkillParameterType.Avarage; return; } if (x / this.MaxST >= 0.1) { StaminaSkillFilter = SkillParameterType.Litle; return; } StaminaSkillFilter = SkillParameterType.None; }; this.SPChangeTrigger += (y) => { float x = (float)y; if (x / this.MaxSP >= 0.8) { SoulSkillFilter = SkillParameterType.Large; return; } if (x / this.MaxSP >= 0.4) { SoulSkillFilter = SkillParameterType.Avarage; return; } if (x / this.MaxSP >= 0.1) { SoulSkillFilter = SkillParameterType.Litle; return; } SoulSkillFilter = SkillParameterType.None; }; this.HPChangeTrigger += (y) => { float x = (float)y; if (x / MaxHP <= 0.5) { if (behaviour < GeneralSkillType.Heal) { behaviour = GeneralSkillType.Heal; } } if (x / MaxHP >= 0.9) { if (behaviour == GeneralSkillType.Heal) { behaviour = GeneralSkillType.TargetAttack; } if (StartEntityType == SkillBehaviourType.FuriousAttack && SituationSkill == SkillBehaviourType.Attack) { SituationSkill = SkillBehaviourType.FuriousAttack; return; } } if (x / MaxHP >= 0.5) { if (StartEntityType > SkillBehaviourType.Attack) { SituationSkill = SkillBehaviourType.Attack; return; } } if (x / MaxHP >= 0.3) { if (StartEntityType > SkillBehaviourType.DefendAttack) { SituationSkill = SkillBehaviourType.DefendAttack; return; } } if (x / MaxHP >= 0.1) { if (StartEntityType > SkillBehaviourType.DefendAttack) { SituationSkill = SkillBehaviourType.DeefDefend; return; } } SituationSkill = SkillBehaviourType.RunAway; }; this.MaxHP = 200; this.MaxMP = 200; this.MaxSP = 200; this.MaxST = 200; //StatsBar.SetMaxParams(this.MaxHP, 100, MaxST, 100, 100, MaxMP, MaxSP); this.HP = MaxHP; this.MP = MaxMP; this.ST = MaxST; this.SP = MaxSP; this.RegSpeedHP = 3; this.RegSpeedMP = 3; this.RegSpeedSP = 3; this.RegSpeedST = 3; this.SumBaseDamage = 5; this.MagResist = 1; this.PhysResist = 1; this.SoulResist = 1; this.Speed = 1; ChangeTargetTimeout = 10; loader.LoadSkills(); Skills = new List <Skill>(); Skills.Add(loader.Skills[0]); Skills.Add(loader.Skills[1]); Skills.Add(loader.Skills[2]); Skills.Add(loader.Skills[3]); StartCoroutine(Regeneration(1)); StartCoroutine(TargetChanger()); //Debug.LogWarning(loader.Skils.Count); }