示例#1
0
 public ItemRepairEvent(RepairBench repairBench, BaseEntity.RPCMessage msg)
 {
     _repairBench = repairBench;
     _player      = Server.GetPlayer(msg.player);
     _item        = new InvItem(repairBench.inventory.GetSlot(0));
     _msg         = msg;
 }
示例#2
0
 public ItemRepairEvent(RepairBench repairBench, BaseEntity.RPCMessage msg)
 {
     _repairBench = repairBench;
     _player = Server.GetPlayer(msg.player);
     _item = new InvItem(repairBench.inventory.GetSlot(0));
     _msg = msg;
 }
示例#3
0
 private void onEntitySpawned(BaseNetworkable ent)
 {
     if (ent is RepairBench)
     {
         //Update newly placed repair benches...
         RepairBench entity = ent as RepairBench;
         entity.maxConditionLostOnRepair = conditionLost;
     }
 }
示例#4
0
        public RepairEvent(RepairBench rb, Inventory inv)
        {
            _rb  = rb;
            _inv = inv;
            var netUser = _inv.GetComponent <Character>().netUser;

            if (netUser != null)
            {
                _pl = Fougerite.Server.Cache[netUser.userID];
            }
        }
示例#5
0
                public new void Enter(IemStateManager.StateManager sm)
                {
                    TargetPracticeStateManager gsm = (TargetPracticeStateManager)sm;

                    gsm.partition = new IemObjectPlacement.CopyPastePlacement(
                        "tp_v1_" + gsm.eg.difficultyLevel, gsm.location);

                    ResearchTable researchtable = IemUtils.FindComponentNearestToLocation <ResearchTable>(
                        gsm.location, 50);
                    Vector3 playerstart = researchtable.transform.position;

                    researchtable.Kill(BaseNetworkable.DestroyMode.None);
                    RepairBench repairbench = IemUtils.FindComponentNearestToLocation <RepairBench>(
                        gsm.location, 50);
                    Vector3 playerlook = repairbench.transform.position;

                    repairbench.Kill(BaseNetworkable.DestroyMode.None);

                    me.Puts("player start location is " + playerstart);
                    me.Puts("player look location is " + playerlook);
                    me.Puts("swutcged " + IemUtils.SwitchTypesToTarget <BaseOven>(gsm.location));

                    gsm.eg.player.inventory.Strip();

                    EntitiesTakingDamage += gsm.eg.PlayerImmortal;

                    IemUtils.MovePlayerToTeamLocation(gsm.eg.player,
                                                      playerstart);

                    Vector3    relativePos = playerstart - playerlook;
                    Quaternion rotation    = Quaternion.LookRotation(relativePos);

                    gsm.eg.player.transform.rotation = rotation;

                    IemUtils.SetMetabolismValues(gsm.eg.player);
                    IemUtils.ClearInventory(gsm.eg.player);

                    IemUI.CreateGameBanner(gsm.eg.player, "GAME LOBBY");

                    IemUtils.PlaySound(gsm.eg.player);

                    gsm.eg.returnZone = new IemUtils.ReturnZone(playerstart, gsm.eg.player);

                    IemUI.Confirm(gsm.eg.player, $"Weclome to target practice\n" +
                                  $"Knock down the targets to proceed to the next level.\n" +
                                  $"each level timer will start when you fire the first shot", "Start Shootin'",
                                  gsm.proceedAction);

                    gsm.eg.targets = IemUtils.FindComponentsNearToLocation <ReactiveTarget>(gsm.location, 50);
                    me.Puts("targets count is " + gsm.eg.targets.Count());
                }
示例#6
0
    public void RPC_RepairItem(RPCMessage msg)
    {
        BasePlayer player = msg.player;
        uint       num    = msg.read.UInt32();

        if (!(player == null))
        {
            Item vehicleItem = carOccupant.GetVehicleItem(num);
            if (vehicleItem != null)
            {
                RepairBench.RepairAnItem(vehicleItem, player, this, 0f, false);
            }
            else
            {
                Debug.LogError(GetType().Name + ": Couldn't get item to repair, with ID: " + num);
            }
        }
    }
 public override void SetLootable(LootableObject lootable, bool doInit)
 {
     base.SetLootable(lootable, doInit);
     this._bench = lootable.GetComponent <RepairBench>();
 }
示例#8
0
 /// <summary>
 /// Called from <c>RepairBench.RepairItem(BaseEntity.RPCMessage)</c> .
 /// </summary>
 public static void On_ItemRepaired(RepairBench rb, BaseEntity.RPCMessage msg) => OnNext("On_ItemRepaired", new ItemRepairEvent(rb, msg));
示例#9
0
 public InternalTarget(CraftSystem craftSystem, RepairBench rb)
     : base(2, false, TargetFlags.None)
 {
     m_CraftSystem = craftSystem;
     m_RepairBench = rb;
 }
示例#10
0
 public static void Do(Mobile from, CraftSystem craftSystem, RepairBench rb)
 {
     from.Target = new InternalTarget(craftSystem, rb);
     from.SendLocalizedMessage(500436);             // Select item to repair.
 }
示例#11
0
文件: Hooks.cs 项目: Viproz/Pluton
 public static void ItemRepaired(RepairBench rb, BaseEntity.RPCMessage msg)
 {
     OnItemRepaired.OnNext(new ItemRepairEvent(rb, msg));
 }
示例#12
0
 public override void SetLootable(LootableObject lootable, bool doInit)
 {
     base.SetLootable(lootable, doInit);
     this._bench = lootable.GetComponent<RepairBench>();
 }
示例#13
0
 public static void On_ItemRepaired(RepairBench rb, BaseEntity.RPCMessage msg)
 {
     OnNext("On_ItemRepaired", new ItemRepairEvent(rb, msg));
 }