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; }
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; }
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); }
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); }
public LayerMask GetAbilityTargettingMask(uint ownerID, MixinTargetting targetting) { return(Singleton <LevelManager> .Instance.gameMode.GetAbilityTargettingMask(ownerID, targetting)); }
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); }
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); }