public static Skill GetWeakenOffense() { if (weakenOffense == null) { weakenOffense = new Skill(); weakenOffense.name = "Weaken\nOffense"; weakenOffense.icon = Resources.Load <Sprite> ("SpellIcons/weakenOffense"); weakenOffense.description = "Weakens your enemy's attacking power"; weakenOffense.basePower = 1; weakenOffense.aoe = 0; weakenOffense.range = 5; weakenOffense.manaCost = user => 1; weakenOffense.cooldown = 0; weakenOffense.damageType = Skill.DamageType.DAMAGE; weakenOffense.targetType = Skill.TargetType.ENEMY; weakenOffense.OnTarget = (user, target, args) => { target.AddEffect(EffectFactory.GetWeakenOffenseEffect(), 3); }; weakenOffense.GenerateTasks = (user, tile, args) => { foreach (Unit target in weakenOffense.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/MEDIC/medic projectile prefab"), 3)); GameManager.instance.tasks.Add(new Task_PlaySound(Resources.Load <AudioClip>("SE/Ice2"))); GameManager.instance.tasks.Add(new Task_ShowParticleAnimation((GameObject)Resources.Load("SpellVisuals/MEDIC/WEAKEN OFFENSE/weaken offense prefab"), target.transform.position + Vector3.up, 1)); GameManager.instance.tasks.Add(new Task_Trigger_Animation(target, "Hit")); } weakenOffense.EnqueueExecuteTask(user, tile, args); }; } return(weakenOffense); }