public override void Enter(DaggerBehaviour dagger, DaggerController controller) { base.Enter(dagger, controller); dagger.IgnoreDaggerCollisions(); dagger.SetPhysics(0, 0.999f); dagger.CreateJoint(); }
public override void Enter(DaggerBehaviour dagger, DaggerController controller) { base.Enter(dagger, controller); dagger.CreateJoint(); dagger.IgnoreDaggerCollisions(); dagger.SetPhysics(0); Catalog.GetData <EffectData>("DaggerSnickFX").Spawn(dagger.transform).Play(); }
public override void Enter(DaggerBehaviour dagger, DaggerController controller) { base.Enter(dagger, controller); dagger.item.rb.velocity = Vector3.zero; dagger.SetPhysics(0); dagger.rb.collisionDetectionMode = CollisionDetectionMode.ContinuousSpeculative; dagger.rb.isKinematic = true; }
public override void Enter(DaggerBehaviour dagger, DaggerController controller) { base.Enter(dagger, controller); dagger.Depenetrate(); dagger.IgnoreDaggerCollisions(); dagger.SetPhysics(0); dagger.CreateJoint(); dagger.item.mainCollisionHandler.OnCollisionStartEvent += CollisionEvent; }
public virtual void Enter(DaggerBehaviour dagger, DaggerController controller) { if (dagger == null) { return; } this.controller = controller; this.dagger = dagger; enterTime = Time.time; }
public override void Load(SpellCaster spellCaster) { base.Load(spellCaster); hasSpawnedDagger = false; isSpawningHandle = false; controller = spellCaster.mana.gameObject.GetOrAddComponent <DaggerController>(); controller.itemId = itemId; controller.daggersOrbitWhenIdle = daggersOrbitWhenIdle; isCasting = false; }
public override void Enter(DaggerBehaviour dagger, DaggerController controller) { base.Enter(dagger, controller); dagger.item.GetMainHandle(Side.Left).SetTouch(false); dagger.item.GetMainHandle(Side.Right).SetTouch(false); dagger.SetPhysics(0); dagger.DisableCollisions(); dagger.IgnoreDaggerCollisions(); dagger.CreateJoint(); }
public override void Enter(DaggerBehaviour dagger, DaggerController controller) { base.Enter(dagger, controller); whooshEffect = Catalog.GetData <EffectData>("ClawsWhoosh").Spawn(dagger.transform); whooshEffect.Play(); dagger.SetPhysics(0); dagger.CreateJoint(); dagger.IgnoreDaggerCollisions(); dagger.item.mainCollisionHandler.OnCollisionStartEvent += CollisionEvent; }
public override void Enter(DaggerBehaviour dagger, DaggerController controller) { base.Enter(dagger, controller); dagger.transform.parent = null; if (dagger.joint) { dagger.DeleteJoint(); } dagger.item.mainCollisionHandler.RemovePhysicModifier(this); dagger.IgnoreDaggerCollisions(); dagger.item.IgnoreRagdollCollision(Player.currentCreature.ragdoll); dagger.item.mainCollisionHandler.SetPhysicModifier(this, 2, 0); }
public override void Enter(DaggerBehaviour dagger, DaggerController controller) { base.Enter(dagger, controller); startedTracking = false; dagger.SetPhysics(0); float modifier = 1; if (dagger.rb.mass < 1) { modifier *= dagger.rb.mass; } else { modifier *= dagger.rb.mass * Mathf.Clamp(dagger.rb.drag, 1, 2); } dagger.rb.AddForce(Vector3.up * 30f * modifier, ForceMode.Acceleration); }
public void Start() { item = GetComponent <Item>(); rb = item.rb; //item.mainCollisionHandler.damagers.ForEach(damager => damager.penetrationExitOnMaxDepth = true); controller = Player.currentCreature.mana.gameObject.GetComponent <DaggerController>(); Catalog.GetData <EffectData>("SlingshotGrabPoint").Spawn(transform).Play(); trailEffect = Catalog.GetData <EffectData>("ShiftTrail").Spawn(transform); trailEffect.SetIntensity(0); trailEffect.Play(); item.OnSnapEvent += holder => { // item.lastHandler?.ClearTouch(); // item.lastHandler = null; IntoState <DefaultState>(); if (item.transform.parent.GetComponentsInChildren <Item>() is Item[] items && items.Count() > 1) { var slotToUse = holder.slots.FirstOrDefault(slot => slot.GetComponentsInChildren <Item>().Count() == 0); if (slotToUse == null) { return; } var holderPoint = item.GetHolderPoint(holder.data.targetAnchor); item.transform.MoveAlign(holderPoint.anchor, slotToUse.transform, slotToUse.transform); } if (holder.GetComponentInParent <Item>() is Item holderItem) { item.IgnoreObjectCollision(holderItem); } }; item.OnUnSnapEvent += holder => { if (holder.GetComponentInParent <Item>() is Item holderItem) { item.IgnoreObjectCollision(holderItem); item.RunNextFrame(() => item.IgnoreObjectCollision(holderItem)); } }; item.OnTelekinesisGrabEvent += (handle, grabber) => { if (!state.Grabbable()) { IntoState <DefaultState>(); } }; item.OnGrabEvent += (handle, hand) => { IntoState <DefaultState>(); foreach (var collider in hand.colliderGroup.colliders) { foreach (var group in item.colliderGroups) { foreach (var otherCollider in group.colliders) { Physics.IgnoreCollision(collider, otherCollider); } } } controller.RunAfter(() => { if (hand.caster?.spellInstance is SpellCastCharge spell) { spell.imbueEnabled = true; } }, 0.5f); }; item.OnUngrabEvent += (handle, hand, throwing) => { var velocity = Player.local.transform.rotation * PlayerControl.GetHand(hand.side).GetHandVelocity(); if (throwing && velocity.magnitude > 3) { lastNoOrbitTime = Time.time; IntoState <DefaultState>(); } }; pidController = new PIDRigidbodyHelper(rb, 5, 1); if (state == null) { IntoState <DefaultState>(); } }
public override void Enter(DaggerBehaviour dagger, DaggerController controller) { base.Enter(dagger, controller); gatherable = true; }
public override void Enter(DaggerBehaviour dagger, DaggerController controller) { base.Enter(dagger, controller); trapEffect = Catalog.GetData <EffectData>("DaggerFloatFX").Spawn(dagger.transform.position, dagger.transform.rotation); dagger.SetPhysics(0); }
public override void Load(Mana mana) { base.Load(mana); controller = Player.currentCreature.mana.gameObject.GetComponent <DaggerController>(); }