コード例 #1
0
ファイル: SpellCasting.cs プロジェクト: SkyFire/Kamilla.Wow
        public void Read(StreamHandler Reader)
        {
            Flags = (SpellCastTargetFlags)Reader.ReadUInt32();

            if ((Flags & (
                SpellCastTargetFlags.Unit   | SpellCastTargetFlags.Unk2 |
                SpellCastTargetFlags.Object |
                SpellCastTargetFlags.Corpse | SpellCastTargetFlags.PvPCorpse
                )) != 0)
                TargetUnit = Reader.ReadPackedGuid();

            if ((Flags & (SpellCastTargetFlags.Item | SpellCastTargetFlags.TradeItem)) != 0)
                TargetItem = Reader.ReadPackedGuid();

            if ((Flags & SpellCastTargetFlags.SourceLocation) != 0)
            {
                SourceTransportGuid = Reader.ReadPackedGuid();
                SourceLocation = Reader.ReadVector3();
            }

            if ((Flags & SpellCastTargetFlags.DestLocation) != 0)
            {
                DestTransportGuid = Reader.ReadPackedGuid();
                DestLocation = Reader.ReadVector3();
            }

            if ((Flags & SpellCastTargetFlags.String) != 0)
                StringTarget = Reader.ReadCString();
        }
コード例 #2
0
        private void PopulatePassive()
        {
            explicitTargetType = SpellExplicitTargetType.Caster;
            damageClass        = SpellDamageClass.None;
            spellDispel        = SpellDispelType.None;
            mechanic           = SpellMechanics.None;

            explicitCastTargets = SpellCastTargetFlags.UnitAlly;
            schoolMask          = 0;
            preventionType      = 0;
            attributes          = SpellAttributes.Passive;
            attributesExtra     = SpellExtraAttributes.DoesNotTriggerGcd | SpellExtraAttributes.IgnoreGcd | SpellExtraAttributes.NotStealable;
            attributesCustom    = SpellCustomAttributes.CastWithoutAnimation;

            targetEntityTypeMask  = EnityTypeMask.Unit;
            rangedFlags           = SpellRangeFlags.Default;
            interruptFlags        = 0;
            castIgnoringMechanics = 0;

            cooldownTime         = 0;
            categoryCooldownTime = 0;
            globalCooldownTime   = 0;
            castTime             = 0;
            minCastTime          = 0;

            minRangeHostile = 0;
            minRangeFriend  = 0;
            maxRangeHostile = 0;
            maxRangeFriend  = 0;
            speed           = 0;
        }
コード例 #3
0
        public void Read(StreamHandler Reader)
        {
            Flags = (SpellCastTargetFlags)Reader.ReadUInt32();

            if ((Flags & (
                     SpellCastTargetFlags.Unit | SpellCastTargetFlags.Unk2 |
                     SpellCastTargetFlags.Object |
                     SpellCastTargetFlags.Corpse | SpellCastTargetFlags.PvPCorpse
                     )) != 0)
            {
                TargetUnit = Reader.ReadPackedGuid();
            }

            if ((Flags & (SpellCastTargetFlags.Item | SpellCastTargetFlags.TradeItem)) != 0)
            {
                TargetItem = Reader.ReadPackedGuid();
            }

            if ((Flags & SpellCastTargetFlags.SourceLocation) != 0)
            {
                SourceTransportGuid = Reader.ReadPackedGuid();
                SourceLocation      = Reader.ReadVector3();
            }

            if ((Flags & SpellCastTargetFlags.DestLocation) != 0)
            {
                DestTransportGuid = Reader.ReadPackedGuid();
                DestLocation      = Reader.ReadVector3();
            }

            if ((Flags & SpellCastTargetFlags.String) != 0)
            {
                StringTarget = Reader.ReadCString();
            }
        }
コード例 #4
0
 public static bool HasFlag(this SpellCastTargetFlags baseFlags, SpellCastTargetFlags flag)
 {
     return((baseFlags & flag) == flag);
 }
コード例 #5
0
 public void SetTargetFlag(SpellCastTargetFlags flag)
 {
     m_targetMask |= flag;
 }
コード例 #6
0
 public void SetTargetMask(SpellCastTargetFlags newMask)
 {
     m_targetMask = newMask;
 }