protected override GameObject ThrowItem(ItemRepresentation rep, IThrowableItem item, Vector3 origin, Vector3 forward, NetworkViewID owner)
    {
        forward.Normalize();
        Vector3 velocity = (Vector3)(forward * 20f);
        Vector3 position = origin + ((Vector3)(forward * 0.5f));

        return(this.SpawnThrowItem(owner, base.throwObjectPrefab, position, Quaternion.LookRotation(Vector3.up), velocity));
    }
示例#2
0
    protected virtual GameObject ThrowItem(ItemRepresentation rep, IThrowableItem item, Vector3 origin, Vector3 forward, uLink.NetworkViewID owner)
    {
        Vector3    velocity = (Vector3)(forward * item.heldThrowStrength);
        Vector3    position = origin + ((Vector3)(forward * 1f));
        Quaternion rotation = Quaternion.LookRotation(Vector3.up);

        return(this.SpawnThrowItem(owner, this.throwObjectPrefab, position, rotation, velocity));
    }
 public override void PrimaryAttack(ViewModel vm, ItemRepresentation itemRep, IThrowableItem itemInstance, ref HumanController.InputSample sample)
 {
     base.PrimaryAttack(vm, itemRep, itemInstance, ref sample);
     vm.Play("pull_pin");
     this.pullPinSound.Play();
     this.GetHandGrenadeItemInstance(itemInstance).nextPrimaryAttackTime   = Time.time + 1000f;
     this.GetHandGrenadeItemInstance(itemInstance).nextSecondaryAttackTime = Time.time + 1000f;
 }
    protected override GameObject ThrowItem(ItemRepresentation rep, IThrowableItem item, Vector3 origin, Vector3 forward, uLink.NetworkViewID owner)
    {
        forward.Normalize();
        Vector3 vector3  = forward * 20f;
        Vector3 vector31 = origin + (forward * 0.5f);

        return(this.SpawnThrowItem(owner, this.throwObjectPrefab, vector31, Quaternion.LookRotation(Vector3.up), vector3));
    }
示例#5
0
    public override void PrimaryAttack(ViewModel vm, ItemRepresentation itemRep, IThrowableItem itemInstance, ref HumanController.InputSample sample)
    {
        ITorchItem torchInstance = this.GetTorchInstance(itemInstance);

        if (!torchInstance.isLit)
        {
            if (vm != null)
            {
                vm.Play("ignite");
            }
            torchInstance.realIgniteTime          = Time.time + 0.8f;
            torchInstance.nextPrimaryAttackTime   = Time.time + 1.5f;
            torchInstance.nextSecondaryAttackTime = Time.time + 1.5f;
        }
    }
    public override void AttackReleased(ViewModel vm, ItemRepresentation itemRep, IThrowableItem itemInstance, ref HumanController.InputSample sample)
    {
        Debug.Log("Attack released!!!");
        vm.Play("throw");
        vm.PlayQueued("deploy");
        this.GetHandGrenadeItemInstance(itemInstance).nextPrimaryAttackTime   = Time.time + 1f;
        this.GetHandGrenadeItemInstance(itemInstance).nextSecondaryAttackTime = Time.time + 1f;
        Character component  = PlayerClient.GetLocalPlayer().controllable.GetComponent <Character>();
        Vector3   eyesOrigin = component.eyesOrigin;
        Vector3   forward    = component.eyesAngles.forward;
        BitStream stream     = new BitStream(false);

        stream.WriteVector3(eyesOrigin);
        stream.WriteVector3((Vector3)(forward * this.GetHandGrenadeItemInstance(itemInstance).heldThrowStrength));
        Debug.Log("Throw strength is : " + this.GetHandGrenadeItemInstance(itemInstance).heldThrowStrength);
        this.GetHandGrenadeItemInstance(itemInstance).EndHoldingBack();
        itemRep.ActionStream(1, RPCMode.Server, stream);
    }
示例#7
0
    public override void SecondaryAttack(ViewModel vm, ItemRepresentation itemRep, IThrowableItem itemInstance, ref HumanController.InputSample sample)
    {
        ITorchItem torchInstance = this.GetTorchInstance(itemInstance);

        if (!torchInstance.isLit)
        {
            this.PrimaryAttack(vm, itemRep, itemInstance, ref sample);
            torchInstance.forceSecondaryTime = Time.time + 1.51f;
            return;
        }
        if (vm)
        {
            vm.Play("throw");
        }
        torchInstance.realThrowTime           = Time.time + 0.5f;
        torchInstance.nextPrimaryAttackTime   = Time.time + 1.5f;
        torchInstance.nextSecondaryAttackTime = Time.time + 1.5f;
    }
示例#8
0
    public virtual void DoActualThrow(ItemRepresentation itemRep, IThrowableItem itemInstance, ViewModel vm)
    {
        Character component  = PlayerClient.GetLocalPlayer().controllable.GetComponent <Character>();
        Vector3   eyesOrigin = component.eyesOrigin;
        Vector3   forward    = component.eyesAngles.forward;

        if (vm != null)
        {
            vm.PlayQueued("deploy");
        }
        int count = 1;

        if (itemInstance.Consume(ref count))
        {
            itemInstance.inventory.RemoveItem(itemInstance.slot);
        }
        uLink.BitStream argument = new uLink.BitStream(false);
        argument.WriteVector3(eyesOrigin);
        argument.WriteVector3(forward);
        itemRep.Action <uLink.BitStream>(1, uLink.RPCMode.Server, argument);
    }
    public virtual void DoActualThrow(ItemRepresentation itemRep, IThrowableItem itemInstance, ViewModel vm)
    {
        Character component = PlayerClient.GetLocalPlayer().controllable.GetComponent <Character>();
        Vector3   vector3   = component.eyesOrigin;
        Vector3   vector31  = component.eyesAngles.forward;

        if (vm)
        {
            vm.PlayQueued("deploy");
        }
        int num = 1;

        if (itemInstance.Consume(ref num))
        {
            itemInstance.inventory.RemoveItem(itemInstance.slot);
        }
        uLink.BitStream bitStream = new uLink.BitStream(false);
        bitStream.WriteVector3(vector3);
        bitStream.WriteVector3(vector31);
        itemRep.Action <uLink.BitStream>(1, uLink.RPCMode.Server, bitStream);
    }
示例#10
0
    public override void DoActualThrow(ItemRepresentation itemRep, IThrowableItem itemInstance, ViewModel vm)
    {
        Character component  = PlayerClient.GetLocalPlayer().controllable.GetComponent <Character>();
        Vector3   eyesOrigin = component.eyesOrigin;
        Vector3   forward    = component.eyesAngles.forward;

        if (vm != null)
        {
            vm.PlayQueued("deploy");
        }
        this.GetTorchInstance(itemInstance).Extinguish();
        int count = 1;

        if (itemInstance.Consume(ref count))
        {
            itemInstance.inventory.RemoveItem(itemInstance.slot);
        }
        BitStream stream = new BitStream(false);

        stream.WriteVector3(eyesOrigin);
        stream.WriteVector3(forward);
        itemRep.ActionStream(1, RPCMode.Server, stream);
    }
示例#11
0
 public virtual void SecondaryAttack(ViewModel vm, ItemRepresentation itemRep, IThrowableItem itemInstance, ref HumanController.InputSample sample)
 {
 }
示例#12
0
 public virtual void PrimaryAttack(ViewModel vm, ItemRepresentation itemRep, IThrowableItem itemInstance, ref HumanController.InputSample sample)
 {
     this.GetThrowableInstance(itemInstance).BeginHoldingBack();
 }
示例#13
0
 public virtual void AttackReleased(ViewModel vm, ItemRepresentation itemRep, IThrowableItem itemInstance, ref HumanController.InputSample sample)
 {
     Debug.Log("Throwable attack released");
 }
示例#14
0
 public ITorchItem GetTorchInstance(IThrowableItem itemInstance)
 {
     return(itemInstance as ITorchItem);
 }
示例#15
0
 public void DoActualIgnite(ItemRepresentation itemRep, IThrowableItem itemInstance, ViewModel vm)
 {
     this.Ignite(vm, itemRep, this.GetTorchInstance(itemInstance));
     itemRep.Action(2, uLink.RPCMode.Server);
 }