public static Skill getAcidBlade() { if (acidBlade == null) { acidBlade = new Skill(); acidBlade.name = "Acid\nBlade"; acidBlade.icon = Resources.Load <Sprite>("SpellVisuals/ASSASSIN/ACID BLADE/acid blade"); acidBlade.description = "Weaker than Shiv but corrodes your enemy's armor!"; acidBlade.basePower = 3; acidBlade.aoe = 0; acidBlade.range = 1; acidBlade.manaCost = user => 0; acidBlade.cooldown = 3; acidBlade.damageType = Skill.DamageType.DAMAGE; acidBlade.targetType = Skill.TargetType.ENEMY; acidBlade.OnTarget = (user, target, args) => { float amt = user.DamageMultiplier * acidBlade.basePower; target.TakeDamage(amt, user); target.AddEffect(EffectFactory.GetWeakenDefenseEffect(), 3); }; acidBlade.GenerateTasks = (user, tile, args) => { List <Unit> list = acidBlade.gatherTargets(user, tile); GameManager.instance.tasks.Add(new Task_Face_Eachother(user, tile.unit)); GameManager.instance.tasks.Add(new Task_Trigger_Animation(user, "Punch")); GameManager.instance.tasks.Add(new Task_Wait(0.3f)); GameManager.instance.tasks.Add(new Task_PlaySound(Resources.Load <AudioClip>("SE/Sward4"))); GameManager.instance.tasks.Add(new Task_ShowParticleAnimation((GameObject)Resources.Load("SpellVisuals/ASSASSIN/shiv/shiv prefab"), tile.transform.position, 1)); GameManager.instance.tasks.Add(new Task_Trigger_Animation(tile.unit, "Hit")); acidBlade.EnqueueExecuteTask(user, tile, args); }; } return(acidBlade); }
public static Skill GetWeakenDefense() { if (weakenDefense == null) { weakenDefense = new Skill(); weakenDefense.name = "Weaken\nDefense"; weakenDefense.icon = Resources.Load <Sprite>("SpellIcons/weakenDefense"); weakenDefense.description = "Weakens the armor of your target"; weakenDefense.basePower = 2; weakenDefense.manaCost = user => 1; weakenDefense.aoe = 3; weakenDefense.range = 4; weakenDefense.cooldown = 0; weakenDefense.damageType = Skill.DamageType.DAMAGE; weakenDefense.targetType = Skill.TargetType.ENEMY; weakenDefense.OnTarget = (user, target, args) => { target.AddEffect(EffectFactory.GetWeakenDefenseEffect(), -1); }; weakenDefense.GenerateTasks = (user, tile, args) => { foreach (Unit target in weakenDefense.gatherTargets(user, tile)) { GameManager.instance.tasks.Add(new Task_Face_Eachother(user, target)); GameManager.instance.tasks.Add(new Task_Trigger_Animation(user, "Punch")); GameManager.instance.tasks.Add(new Task_Wait(0.3f)); GameManager.instance.tasks.Add(new Task_Fire_Projectile(user.transform.position + Vector3.up, target.tile.transform.position + Vector3.up, (GameObject)Resources.Load("SpellVisuals/TANK/tank projectile prefab"), 3)); GameManager.instance.tasks.Add(new Task_PlaySound(Resources.Load <AudioClip>("SE/Damage2"))); GameManager.instance.tasks.Add(new Task_ShowParticleAnimation((GameObject)Resources.Load("SpellVisuals/TANK/WEAKEN DEFENSE/WeakenDefense prefab"), target.transform.position, 1)); GameManager.instance.tasks.Add(new Task_Trigger_Animation(target, "Hit")); } weakenDefense.EnqueueExecuteTask(user, tile, args); }; } return(weakenDefense); }