コード例 #1
0
ファイル: OriginalSPGameMode.cs プロジェクト: slb1988/agame
        public virtual LayerMask GetAbilityHitboxTargettingMask(uint ownerID, MixinTargetting targetting)
        {
            ushort    num;
            ushort    enemyCategory;
            LayerMask hitboxLayerMask;

            if ((ownerID == 0x21800001) || (Singleton <RuntimeIDManager> .Instance.ParseCategory(ownerID) == 7))
            {
                num           = 4;
                enemyCategory = 3;
            }
            else
            {
                num = Singleton <RuntimeIDManager> .Instance.ParseCategory(ownerID);

                enemyCategory = this.GetEnemyCategory(num);
            }
            if ((ownerID == 0x21800001) || (Singleton <RuntimeIDManager> .Instance.ParseCategory(ownerID) == 7))
            {
                num           = 4;
                enemyCategory = 3;
            }
            switch (targetting)
            {
            case MixinTargetting.None:
                return(0);

            case MixinTargetting.Allied:
                return(InLevelData.GetHitboxLayerMask(num));

            case MixinTargetting.Enemy:
                hitboxLayerMask = InLevelData.GetHitboxLayerMask(enemyCategory);
                if (num == 3)
                {
                    hitboxLayerMask |= ((int)1) << InLevelData.PROP_HITBOX_LAYER;
                }
                return(hitboxLayerMask);

            case MixinTargetting.All:
                hitboxLayerMask = InLevelData.GetHitboxLayerMask(num) | InLevelData.GetHitboxLayerMask(enemyCategory);
                if (num == 3)
                {
                    hitboxLayerMask |= ((int)1) << InLevelData.PROP_HITBOX_LAYER;
                }
                return(hitboxLayerMask);
            }
            return(0);
        }