public Skill(BJSkill bjskill, int level, int maxLevel, List <int> upgradeCosts) { BJSkill = bjskill; Name = bjskill.Name; Level = level; MaxLevel = maxLevel; UpgradeCosts = upgradeCosts; }
public void AddSkill(BJSkill skill) { BJSkill skillCopy = Instantiate(skill); Skills.Add(skillCopy); skillCopy.CurrentUser = this; OnCreatureMovementFinished += skillCopy.User_OnCreatureMovementFinished; skillCopy.OnSkillFinished += CurrentSkill_OnSkillFinished; }
void Start() { Creature.OnDamageTaken += Creature_OnDamageTaken; Creature.OnDodge += Creature_OnDodge; Creature.OnMiss += Creature_OnMiss; HPSlider.maxValue = Creature.MaxHP; HPSlider.value = Creature.HP; InitialPosition = transform.position; Skills [0].Damage = Creature.BaseDamage; CurrentSkill = Skills [0]; }
void BJSkillButton_OnSkillButtonClicked(GameObject sender) { Tooltip.gameObject.SetActive(true); float dx = (BJGameController.Instance.SkillButtons.IndexOf(sender.GetComponent <Button> ()) == 3) ? -1.0f : 1.0f; Tooltip.transform.position = new Vector3(sender.transform.position.x + dx, sender.transform.position.y + 1.5f, Tooltip.transform.position.z); foreach (var skillButton in BJGameController.Instance.SkillButtons) { if (sender.GetComponent <Button> () == skillButton) { BJSkill skill = BJGameController.Instance.CurrentCreatureObject.Skills [BJGameController.Instance.SkillButtons.IndexOf(sender.GetComponent <Button> ()) + 1]; Tooltip.Header.text = skill.Name; Tooltip.MainText.text = skill.GetInfo(); break; } } }
void FinishTurn(BJSkill sender) { isFinishingTurn = true; if (Creature.HP > 0) { List <BJEffect> effectsToRemove = new List <BJEffect> (); foreach (var effect in Effects) { if (effect.Duration <= effect.CurrentLifetime) { effect.Deactivate(); int index = Effects.IndexOf(effect); if (index >= EffectIcons.Count) { Debug.Log("Something went wrong with " + Name + "'s effects"); } else { Destroy(EffectIcons [index]); EffectIcons.RemoveAt(index); } effectsToRemove.Add(effect); } } for (int i = Effects.Count - 1; i >= 0; i--) { if (effectsToRemove.Contains(Effects [i])) { Destroy(Effects [i].EffectParticles); Destroy(Effects [i]); Effects.Remove(Effects [i]); } } effectsToRemove.Clear(); } if (OnCreatureTurnFinished != null) { if (sender == null || !sender.IsPassive) { OnCreatureTurnFinished(this); } } }
public void UseSkill(BJCreatureObject target, BJSkill skill) { skill.UseSkill(this, target); }
void CurrentSkill_OnSkillFinished(BJSkill sender) { FinishTurn(sender); }