/// <summary> /// Casts curse (generic) /// </summary> /// <param name="caster">Caster.</param> /// <param name="EffectID">Effect ID of the spell</param> void Cast_Curse(GameObject caster, int EffectID) { //Curse other. RaycastHit hit= new RaycastHit(); NPC npc = GetNPCTargetRandom(caster, ref hit); if (npc != null) { //Debug.Log(npc.name); SpellProp_Curse curse = new SpellProp_Curse(); curse.init (EffectID,caster); //Apply a impact effect to the npc Impact.SpawnHitImpact(npc.transform.name + "_impact",npc.GetImpactPoint(),curse.impactFrameStart,curse.impactFrameEnd); int EffectSlot = CheckPassiveSpellEffectNPC(npc.gameObject); if (EffectSlot!=-1) { SpellEffectCurse sep= (SpellEffectCurse)SetSpellEffect(npc.gameObject, npc.NPCStatusEffects, EffectSlot, EffectID); sep.isNPC=true; sep.Go (); } } }
/// <summary> /// Casts the cursed item spell (generic) /// </summary> /// <param name="caster">Caster.</param> /// <param name="ActiveSpellArray">Active spell array.</param> /// <param name="EffectID">Effect ID of the spell</param> /// <param name="EffectSlot">Effect slot.</param> public void Cast_CursedItem(GameObject caster, SpellEffect[] ActiveSpellArray, int EffectID, int EffectSlot) { //Cursed SpellProp_Curse curse = new SpellProp_Curse(); curse.init (EffectID,caster); SpellEffectCurse sep = (SpellEffectCurse)SetSpellEffect (caster, ActiveSpellArray,EffectSlot,EffectID); sep.counter=curse.counter; //It will run for x ticks. if (caster.name!=GameWorldController.instance.playerUW.name) { sep.isNPC=true; } sep.Go (); }