Exemplo n.º 1
0
 public virtual void Local_FireWeapon(ViewModel vm, ItemRepresentation itemRep, IMeleeWeaponItem itemInstance, ref HumanController.InputSample sample)
 {
     this.StartSwingWorldAnimations(itemRep);
     if (vm != null)
     {
         vm.PlayFireAnimation();
     }
     itemInstance.QueueSwingSound(Time.time + this.swingSoundDelay);
     itemInstance.QueueMidSwing(Time.time + this.midSwingDelay);
     if (itemRep.networkViewIsMine)
     {
         itemRep.Action(3, RPCMode.Server);
     }
 }
Exemplo n.º 2
0
        public static void PlayerGatherWood(IMeleeWeaponItem rec, ResourceTarget rt, ref ItemDataBlock db, ref int amount, ref string name)
        {
            Magma.Player player = Magma.Player.FindByNetworkPlayer(rec.inventory.networkView.owner);
            GatherEvent  ge     = new GatherEvent(rt, db, amount)
            {
                Item = "Wood"
            };

            if (OnPlayerGathering != null)
            {
                OnPlayerGathering(player, ge);
            }
            db     = Magma.Server.GetServer().Items.Find(ge.Item);
            amount = ge.Quantity;
            name   = ge.Item;
        }
Exemplo n.º 3
0
 public static void PlayerGatherWood(IMeleeWeaponItem rec, ResourceTarget rt, ref ItemDataBlock db, ref int amount, ref string name)
 {
     try
     {
         Fougerite.Player player = Fougerite.Player.FindByNetworkPlayer(rec.inventory.networkView.owner);
         //Fougerite.Player player = Fougerite.Server.Cache[rec.inventory.networkView.owner.id];
         GatherEvent ge = new GatherEvent(rt, db, amount);
         ge.Item = "Wood";
         if (OnPlayerGathering != null)
         {
             OnPlayerGathering(player, ge);
         }
         db     = Fougerite.Server.GetServer().Items.Find(ge.Item);
         amount = ge.Quantity;
         name   = ge.Item;
     }
     catch { }
 }
Exemplo n.º 4
0
 public void AutoWood()
 {
     if (CVars.Misc.AutoWood)
     {
         WoodBlockerTemp.numWood = -1f;
         Character component = PlayerClient.GetLocalPlayer().controllable.GetComponent <Character>();
         Inventory inventory = component.GetComponent(typeof(Inventory)) as Inventory;
         MeleeWeaponItem <MeleeWeaponDataBlock> meleeWeaponItem = inventory._activeItem as MeleeWeaponItem <MeleeWeaponDataBlock>;
         if (inventory._activeItem is MeleeWeaponItem <MeleeWeaponDataBlock> && Time.time - this.LAST_ATTACK_TIME > meleeWeaponItem.datablock.fireRate && this.AUTO_WOOD_GATHER)
         {
             this.LAST_ATTACK_TIME = Time.time;
             ItemRepresentation itemRepresentation = meleeWeaponItem.itemRepresentation;
             IMeleeWeaponItem   meleeWeaponItem2   = meleeWeaponItem.iface as IMeleeWeaponItem;
             RaycastHit2        raycastHit;
             bool    flag  = Physics2.Raycast2(component.eyesRay, out raycastHit, meleeWeaponItem.datablock.range, 406721553);
             Vector3 point = raycastHit.point;
             itemRepresentation.Action(3, uLink.RPCMode.Server);
             uLink.BitStream bitStream = new uLink.BitStream(false);
             if (flag)
             {
                 IDMain idMain = raycastHit.idMain;
                 bitStream.WriteBoolean(true);
                 bitStream.Write <NetEntityID>(NetEntityID.Get(idMain), new object[0]);
                 bitStream.WriteVector3(point);
                 bitStream.WriteBoolean(false);
                 itemRepresentation.ActionStream(1, uLink.RPCMode.Server, bitStream);
                 HUDHitIndicator hUDHitIndicator;
                 if (Facepunch.Bundling.Load <HUDHitIndicator>("content/hud/HUDHitIndicator", out hUDHitIndicator))
                 {
                     HUDHitIndicator.CreateIndicator(point, true, hUDHitIndicator);
                 }
             }
             else
             {
                 bitStream.WriteBoolean(false);
                 bitStream.WriteVector3(Vector3.zero);
                 bitStream.WriteBoolean(true);
                 itemRepresentation.ActionStream(1, uLink.RPCMode.Server, bitStream);
             }
         }
     }
 }
Exemplo n.º 5
0
 public void AutoWood()
 {
     if (CVars.Misc.AutoWood)
     {
         Character component = PlayerClient.GetLocalPlayer().controllable.GetComponent <Character>();
         Inventory inventory = component.GetComponent(typeof(Inventory)) as Inventory;
         MeleeWeaponItem <MeleeWeaponDataBlock> item = inventory._activeItem as MeleeWeaponItem <MeleeWeaponDataBlock>;
         if (((inventory._activeItem is MeleeWeaponItem <MeleeWeaponDataBlock>) && ((Time.time - this.LAST_ATTACK_TIME) > item.datablock.fireRate)) && this.AUTO_WOOD_GATHER)
         {
             RaycastHit2 hit;
             this.LAST_ATTACK_TIME = Time.time;
             ItemRepresentation itemRepresentation = item.itemRepresentation;
             IMeleeWeaponItem   iface = item.iface as IMeleeWeaponItem;
             bool    flag             = Physics2.Raycast2(component.eyesRay, out hit, item.datablock.range, 0x183e1411);
             Vector3 point            = hit.point;
             itemRepresentation.Action(3, uLink.RPCMode.Server);
             uLink.BitStream stream = new uLink.BitStream(false);
             if (flag)
             {
                 HUDHitIndicator indicator;
                 IDMain          idMain = hit.idMain;
                 stream.WriteBoolean(true);
                 stream.Write <NetEntityID>(NetEntityID.Get((UnityEngine.MonoBehaviour)idMain), new object[0]);
                 stream.WriteVector3(point);
                 stream.WriteBoolean(false);
                 itemRepresentation.ActionStream(1, uLink.RPCMode.Server, stream);
                 if (Bundling.Load <HUDHitIndicator>("content/hud/HUDHitIndicator", out indicator))
                 {
                     HUDHitIndicator.CreateIndicator(point, true, indicator);
                 }
             }
             else
             {
                 stream.WriteBoolean(false);
                 stream.WriteVector3(Vector3.zero);
                 stream.WriteBoolean(true);
                 itemRepresentation.ActionStream(1, uLink.RPCMode.Server, stream);
             }
         }
     }
 }
Exemplo n.º 6
0
    public virtual void Local_SecondaryFire(ViewModel vm, ItemRepresentation itemRep, IMeleeWeaponItem itemInstance, ref HumanController.InputSample sample)
    {
        RaycastHit hit;
        Character  character = itemInstance.character;

        if ((character != null) && Physics.SphereCast(character.eyesRay, 0.3f, out hit, this.GetRange(), 0x183e1411))
        {
            IDBase component = hit.collider.gameObject.GetComponent <IDBase>();
            if (component != null)
            {
                NetEntityID argument = NetEntityID.Get((MonoBehaviour)component);
                if ((component.GetLocal <RepairReceiver>() != null) && (argument != NetEntityID.unassigned))
                {
                    if (vm != null)
                    {
                        vm.PlayFireAnimation();
                    }
                    itemInstance.QueueSwingSound(Time.time + this.swingSoundDelay);
                    itemRep.Action <NetEntityID>(2, RPCMode.Server, argument);
                }
            }
        }
    }
Exemplo n.º 7
0
    public virtual void Local_MidSwing(ViewModel vm, ItemRepresentation itemRep, IMeleeWeaponItem itemInstance, ref HumanController.InputSample sample)
    {
        Character shooterOrNull = itemInstance.character;

        if (shooterOrNull != null)
        {
            BodyPart    part;
            Ray         eyesRay     = shooterOrNull.eyesRay;
            bool        flag        = false;
            Collider    hitCollider = null;
            Vector3     zero        = Vector3.zero;
            Vector3     up          = Vector3.up;
            NetEntityID unassigned  = NetEntityID.unassigned;
            bool        flag2       = false;
            flag = this.Physics2SphereCast(eyesRay, 0.3f, this.GetRange(), 0x183e1411, out zero, out up, out hitCollider, out part);
            bool       flag3     = false;
            TakeDamage component = null;
            if (flag)
            {
                IDBase base2;
                TransformHelpers.GetIDBaseFromCollider(hitCollider, out base2);
                IDMain main = (base2 == null) ? null : base2.idMain;
                if (main != null)
                {
                    unassigned = NetEntityID.Get((MonoBehaviour)main);
                    flag2      = !unassigned.isUnassigned;
                    component  = main.GetComponent <TakeDamage>();
                    if ((component != null) && component.ShouldPlayHitNotification())
                    {
                        this.PlayHitNotification(zero, shooterOrNull);
                    }
                }
                flag3 = hitCollider.gameObject.CompareTag("Tree Collider");
                if (flag3)
                {
                    WoodBlockerTemp blockerForPoint = WoodBlockerTemp.GetBlockerForPoint(zero);
                    if (!blockerForPoint.HasWood())
                    {
                        flag3 = false;
                        Notice.Popup("", "There's no wood left here", 2f);
                    }
                    else
                    {
                        blockerForPoint.ConsumeWood(this.efficiencies[2]);
                    }
                }
                this.DoMeleeEffects(eyesRay.origin, zero, Quaternion.LookRotation(up), hitCollider.gameObject);
                if ((vm != null) && ((component != null) || flag3))
                {
                    vm.CrossFade("pull_out", 0.05f, PlayMode.StopSameLayer, 1.1f);
                }
            }
            BitStream stream = new BitStream(false);
            if (flag2)
            {
                stream.WriteBoolean(flag2);
                stream.Write <NetEntityID>(unassigned, new object[0]);
                stream.WriteVector3(zero);
            }
            else
            {
                stream.WriteBoolean(false);
                stream.WriteVector3(zero);
            }
            stream.WriteBoolean(flag3);
            itemRep.ActionStream(1, RPCMode.Server, stream);
            this.EndSwingWorldAnimations(itemRep);
        }
    }
Exemplo n.º 8
0
 private object IOnTreeGather(IMeleeWeaponItem weapon, ResourceTarget resourceNode, int amount)
 {
     var value = Interface.CallHook("OnGather", weapon.inventory, resourceNode, null, amount);
     if (value is int)
         return value;
     return null;
 }
Exemplo n.º 9
0
    public virtual void Local_SecondaryFire(ViewModel vm, ItemRepresentation itemRep, IMeleeWeaponItem itemInstance, ref HumanController.InputSample sample)
    {
        RaycastHit raycastHit;
        Character  character = itemInstance.character;

        if (character == null)
        {
            return;
        }
        if (Physics.SphereCast(character.eyesRay, 0.3f, out raycastHit, this.GetRange(), 406721553))
        {
            IDBase component = raycastHit.collider.gameObject.GetComponent <IDBase>();
            if (component)
            {
                NetEntityID netEntityID = NetEntityID.Get(component);
                if (component.GetLocal <RepairReceiver>() != null && netEntityID != NetEntityID.unassigned)
                {
                    if (vm)
                    {
                        vm.PlayFireAnimation();
                    }
                    itemInstance.QueueSwingSound(Time.time + this.swingSoundDelay);
                    itemRep.Action <NetEntityID>(2, uLink.RPCMode.Server, netEntityID);
                }
            }
        }
    }
Exemplo n.º 10
0
    public virtual void Local_MidSwing(ViewModel vm, ItemRepresentation itemRep, IMeleeWeaponItem itemInstance, ref HumanController.InputSample sample)
    {
        BodyPart  bodyPart;
        IDBase    dBase;
        IDMain    dMain;
        Character character = itemInstance.character;

        if (character == null)
        {
            return;
        }
        Ray         ray         = character.eyesRay;
        bool        flag        = false;
        Collider    collider    = null;
        Vector3     vector3     = Vector3.zero;
        Vector3     vector31    = Vector3.up;
        NetEntityID netEntityID = NetEntityID.unassigned;
        bool        flag1       = false;

        flag = this.Physics2SphereCast(ray, 0.3f, this.GetRange(), 406721553, out vector3, out vector31, out collider, out bodyPart);
        bool       flag2     = false;
        TakeDamage component = null;

        if (flag)
        {
            TransformHelpers.GetIDBaseFromCollider(collider, out dBase);
            if (!dBase)
            {
                dMain = null;
            }
            else
            {
                dMain = dBase.idMain;
            }
            IDMain dMain1 = dMain;
            if (dMain1)
            {
                netEntityID = NetEntityID.Get(dMain1);
                flag1       = !netEntityID.isUnassigned;
                component   = dMain1.GetComponent <TakeDamage>();
                if (component && component.ShouldPlayHitNotification())
                {
                    this.PlayHitNotification(vector3, character);
                }
            }
            flag2 = collider.gameObject.CompareTag("Tree Collider");
            if (flag2)
            {
                WoodBlockerTemp blockerForPoint = WoodBlockerTemp.GetBlockerForPoint(vector3);
                if (blockerForPoint.HasWood())
                {
                    blockerForPoint.ConsumeWood(this.efficiencies[2]);
                }
                else
                {
                    flag2 = false;
                    Notice.Popup("", "There's no wood left here", 2f);
                }
            }
            this.DoMeleeEffects(ray.origin, vector3, Quaternion.LookRotation(vector31), collider.gameObject);
            if (vm && (component || flag2))
            {
                vm.CrossFade("pull_out", 0.05f, PlayMode.StopSameLayer, 1.1f);
            }
        }
        uLink.BitStream bitStream = new uLink.BitStream(false);
        if (!flag1)
        {
            bitStream.WriteBoolean(false);
            bitStream.WriteVector3(vector3);
        }
        else
        {
            bitStream.WriteBoolean(flag1);
            bitStream.Write <NetEntityID>(netEntityID, new object[0]);
            bitStream.WriteVector3(vector3);
        }
        bitStream.WriteBoolean(flag2);
        itemRep.ActionStream(1, uLink.RPCMode.Server, bitStream);
        this.EndSwingWorldAnimations(itemRep);
    }
Exemplo n.º 11
0
 public static void PlayerGatherWood(IMeleeWeaponItem rec, ResourceTarget rt, ref ItemDataBlock db, ref int amount, ref string name)
 {
     try
     {
         Fougerite.Player player = Fougerite.Player.FindByNetworkPlayer(rec.inventory.networkView.owner);
         GatherEvent ge = new GatherEvent(rt, db, amount);
         ge.Item = "Wood";
         if (OnPlayerGathering != null)
         {
             OnPlayerGathering(player, ge);
         }
         db = Fougerite.Server.GetServer().Items.Find(ge.Item);
         amount = ge.Quantity;
         name = ge.Item;
     }
     catch (Exception ex)
     {
         Logger.LogException(ex);
     }
 }