public init ( int effectId, GameObject SpellCaster ) : void | ||
effectId | int | |
SpellCaster | GameObject | |
return | void |
public override void init(int effectId, GameObject SpellCaster)
{
base.init (effectId,SpellCaster);
switch (effectId)
{
case SpellEffect.UW1_Spell_Effect_Paralyze:
case SpellEffect.UW1_Spell_Effect_Paralyze_alt01:
counter=4; break;
case SpellEffect.UW1_Spell_Effect_Ally:
case SpellEffect.UW1_Spell_Effect_Ally_alt01:
counter=5; break;
case SpellEffect.UW1_Spell_Effect_Confusion:
case SpellEffect.UW1_Spell_Effect_Confusion_alt01:
counter=3; break;
case SpellEffect.UW1_Spell_Effect_CauseFear:
case SpellEffect.UW1_Spell_Effect_CauseFear_alt01:
counter=4; break;
case SpellEffect.UW1_Spell_Effect_Telekinesis:
case SpellEffect.UW1_Spell_Effect_Telekinesis_alt01:
case SpellEffect.UW1_Spell_Effect_Telekinesis_alt02:
counter=2; break;
case SpellEffect.UW1_Spell_Effect_MazeNavigation:
counter=4; break;
case SpellEffect.UW1_Spell_Effect_Hallucination:
counter=4; break;
case SpellEffect.UW1_Spell_Effect_RoamingSight:
case SpellEffect.UW1_Spell_Effect_RoamingSight_alt01:
case SpellEffect.UW1_Spell_Effect_RoamingSight_alt02:
counter=2; break;
case SpellEffect.UW1_Spell_Effect_FreezeTime:
case SpellEffect.UW1_Spell_Effect_FreezeTime_alt01:
case SpellEffect.UW1_Spell_Effect_FreezeTime_alt02:
counter=4; break;
case SpellEffect.UW1_Spell_Effect_DetectMonster:
case SpellEffect.UW1_Spell_Effect_DetectMonster_alt01:
BaseDamage=5;//range of the detection
break;
}
impactFrameStart=40;
impactFrameEnd=44;
}
/// <summary> /// Cast Confusion /// </summary> /// <param name="caster">Caster.</param> /// <param name="EffectID">Effect ID of the spell</param> void Cast_VasAnWis(GameObject caster, int EffectID) { //Confusion. RaycastHit hit= new RaycastHit(); NPC npc = GetNPCTargetRandom(caster, ref hit); if (npc != null) { SpellProp_Mind mindspell = new SpellProp_Mind(); mindspell.init (EffectID,caster); //Apply a impact effect to the npc Impact.SpawnHitImpact(npc.transform.name + "_impact",npc.GetImpactPoint(),mindspell.impactFrameStart,mindspell.impactFrameEnd); if (npc.gameObject.GetComponent<SpellEffectConfusion>()!=null) {//Npc already has this effect. Only allow one cast. npc.gameObject.GetComponent<SpellEffectConfusion>().counter=5;//Restart the counter } else {//A new cast int EffectSlot = CheckPassiveSpellEffectNPC(npc.gameObject); if (EffectSlot!=-1) { SpellEffectConfusion sec= (SpellEffectConfusion)SetSpellEffect(npc.gameObject, npc.NPCStatusEffects, EffectSlot, EffectID); sec.counter=mindspell.counter; sec.Go (); } } } }