Ejemplo n.º 1
0
 public void Setup(BaseAbilityActor owner, float speed, MixinTargetting targetting, bool ignoreTimeScale, float aliveDuration = -1)
 {
     this._owner = owner;
     this.triggerBullet.SetCollisionMask(Singleton <EventManager> .Instance.GetAbilityHitboxTargettingMask(this._owner.runtimeID, targetting));
     this.triggerBullet.speed           = speed;
     this.triggerBullet.speedAdd        = Vector3.zero;
     this.triggerBullet.AliveDuration   = aliveDuration;
     this.triggerBullet.IgnoreTimeScale = ignoreTimeScale;
 }
Ejemplo n.º 2
0
        public void Setup(BaseAbilityActor owner, float uniformScale, MixinTargetting targetting, bool followOwner = false)
        {
            this._owner = owner;
            this.triggerField.SetCollisionMask(Singleton <EventManager> .Instance.GetAbilityTargettingMask(this._owner.runtimeID, targetting));
            Vector3 vector = (Vector3)(Vector3.one * uniformScale);

            vector.y = 1f;
            this.triggerField.transform.localScale = vector;
            this._isFieldFollowOwner = followOwner;
        }
Ejemplo n.º 3
0
        public override LayerMask GetAbilityTargettingMask(uint ownerID, MixinTargetting targetting)
        {
            switch (Singleton <RuntimeIDManager> .Instance.ParseCategory(ownerID))
            {
            case 3:
                return(((((int)1) << InLevelData.AVATAR_LAYER) | (((int)1) << InLevelData.MONSTER_LAYER)) | (((int)1) << InLevelData.PROP_LAYER));

            case 4:
                return((((int)1) << InLevelData.AVATAR_LAYER) | (((int)1) << InLevelData.MONSTER_LAYER));

            case 7:
                return((((int)1) << InLevelData.AVATAR_LAYER) | (((int)1) << InLevelData.MONSTER_LAYER));
            }
            return(0);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
 public LayerMask GetAbilityTargettingMask(uint ownerID, MixinTargetting targetting)
 {
     return(Singleton <LevelManager> .Instance.gameMode.GetAbilityTargettingMask(ownerID, targetting));
 }
Ejemplo n.º 6
0
        public AbilityTriggerField CreateAbilityTriggerField(Vector3 initPos, Vector3 initDir, BaseAbilityActor owner, float uniformScale, MixinTargetting targetting, uint runtimeID, bool followOwner = false)
        {
            MonoTriggerField    entity = this.CreateDynamicObjectEntityInstance <MonoTriggerField>(owner.runtimeID, "UnitField", initPos, initDir, runtimeID);
            AbilityTriggerField field2 = Singleton <EventManager> .Instance.CreateActor <AbilityTriggerField>(entity);

            field2.Setup(owner, uniformScale, targetting, followOwner);
            return(field2);
        }
Ejemplo n.º 7
0
        public AbilityTriggerBullet CreateAbilityLinearTriggerBullet(string bulletType, BaseAbilityActor owner, float speed, MixinTargetting targetting, bool ignoreTimeScale, uint runtimeID, float aliveDuration = -1)
        {
            MonoTriggerBullet    entity  = this.CreateDynamicObjectEntityInstance <MonoTriggerBullet>(owner.runtimeID, bulletType, runtimeID);
            AbilityTriggerBullet bullet2 = Singleton <EventManager> .Instance.CreateActor <AbilityTriggerBullet>(entity);

            bullet2.Setup(owner, speed, targetting, ignoreTimeScale, aliveDuration);
            return(bullet2);
        }