Example #1
0
    public void InitializeHitObject(Character _Owner, ItemSkill _SourceItemSkill, SkillEffect[] _SkillEffects, bool[] AllowTargets, float[] SkillThreat, bool UseLevelAtActivationMoment)
    {
        // Link Skill User and Skill:
        Owner                 = _Owner;
        SourceItemSkill       = _SourceItemSkill;
        HitObjectSkillEffects = _SkillEffects;
        _audioSource          = GetComponent <AudioSource>();


        if (UseLevelAtActivationMoment)
        {
            FixedLevel = SourceItemSkill.GetSkillLevel();
        }
        else
        {
            FixedLevel = -1;
        }

        // Calculate which Team(s) the HitObject can hit:
        int counter = 0;

        if (AllowTargets[0])
        {
            counter += (int)(Owner.GetAlignment());
        }

        if (AllowTargets[1])
        {
            counter += ((int)(Owner.GetAlignment()) % 2) + 1;
        }

        HitObjectAlignment = (Character.TeamAlignment)(counter);

        // Living Time:
        if (MaxTimeAlive <= 0)
        {
            SourceItemSkill.AddEffectSkillHitObject(this);
        }

        if (TickTime > 0)
        {
            CurrentTickTime = TickTime;
        }

        // Parenting:
        if (HitObjectIsChildOfOwner)
        {
            transform.SetParent(Owner.transform);
        }

        if (AlwaysHitOwner)
        {
            HitTarget(Owner);
        }

        // Threat:
        Threat = SkillThreat;

        // Force Impulse:
        if (UseForceImpulse)
        {
            ApplyForceImpulse();
        }

        // Spawn Particle System:
        if (ParticlesPrefab)
        {
            ParticlesInstance = Instantiate(ParticlesPrefab, ParticlesSpawnParent.transform);
        }

        if (UseFixedTerrainHeight)
        {
            TerrHeightLayerMask = 1 << TerrHeightLayerMask;
        }
    }
Example #2
0
    public virtual void InitializeHitObject(Character _Owner, ItemSkill _SourceItemSkill, SkillType _SourceSkill, bool UseLevelAtActivationMoment)
    {
        // Link Skill User and Skill:
        Owner           = _Owner;
        SourceSkill     = _SourceSkill;
        SourceItemSkill = _SourceItemSkill;
        _audioSource    = GetComponent <AudioSource>();


        if (UseLevelAtActivationMoment)
        {
            FixedLevel = SourceItemSkill.GetSkillLevel();
        }
        else
        {
            FixedLevel = -1;
        }

        // Calculate which Team(s) the HitObject can hit:
        int counter = 0;

        if (SourceSkill.GetAllowTargetFriendly())
        {
            counter += (int)(Owner.GetAlignment());
        }

        if (SourceSkill.GetAllowTargetEnemy())
        {
            counter += ((int)(Owner.GetAlignment()) % 2) + 1;
        }

        HitObjectAlignment = (Character.TeamAlignment)(counter);

        // Living Time:
        if (MaxTimeAlive <= 0)
        {
            SourceItemSkill.AddEffectSkillHitObject(this);
        }

        if (TickTime > 0)
        {
            CurrentTickTime = TickTime;
        }

        // Parenting:
        if (HitObjectIsChildOfOwner)
        {
            transform.SetParent(Owner.transform);
        }

        if (AlwaysHitOwner)
        {
            HitTarget(Owner);
        }

        // Threat:
        Threat = SourceSkill.GetThreat();

        // Force Impulse:
        if (UseForceImpulse)
        {
            ApplyForceImpulse();
        }

        if (UseFixedTerrainHeight)
        {
            TerrHeightLayerMask = 1 << TerrHeightLayerMask;
        }
    }