private static void Postfix(Tank __instance, Network_Player player, float amount, Item_Base itemType = null) { if (__instance.GetComponent(typeof(Network_Player)) == RAPI.GetLocalPlayer()) { ComponentManager <GlassHoneyUse> .Value.OnModifyTank(player, amount, itemType); } }
IEnumerator OnModLoad() { if (notifyLoad != null) { notifyLoad.Close(); } if (notify == null) { notify = FindObjectOfType <HNotify>(); } yield return(notifyLoad = notify.AddNotification( HNotify.NotificationType.spinning, $"Loading {MOD_NAME}")); var request = AssetBundle.LoadFromMemoryAsync( GetEmbeddedFileBytes("oldworldradio.assets")); yield return(request); assetBundle = request.assetBundle; Info($"Assets loaded to {assetBundle.name}"); var assetNames = new List <string>(assetBundle.GetAllAssetNames()); audioClips = assetNames.FindAll(a => a.EndsWith(".ogg")); player = RAPI.GetLocalPlayer(); CreateRadioItem(); CreateAudioSource(); GiveRadioToPlayer(); SetBroadcastState(true); notifyLoad.Close(); notifyLoad = null; yield return(true); }
static void Postfix(PersonController __instance, ref Network_Player ___playerNetwork, ref Vector3 ___moveDirection) { if (sprintByDefault && !__instance.crouching && !isCrouching) { __instance.normalSpeed = defaultSprintSpeed; __instance.sprintSpeed = defaultNormalSpeed; } else { __instance.normalSpeed = defaultNormalSpeed; __instance.sprintSpeed = defaultSprintSpeed; } if (crouchIsToggle) { if (MyInput.GetButtonUp("Crouch")) { isCrouching = !isCrouching; } __instance.crouching = isCrouching; ___playerNetwork.Animator.anim.SetBool("Crouching", isCrouching); if (!MyInput.GetButton("Crouch") && isCrouching) { float speed = MyInput.GetButton("Sprint") ? __instance.sprintSpeed : __instance.normalSpeed; ___moveDirection /= speed * Stat_WellBeing.groundSpeedMultiplier; } } }
private void Update() { if (_Player == null) { _Player = ComponentManager <Player> .Value; } if (_Network_Player == null) { _Network_Player = ComponentManager <Network_Player> .Value; } if (_AzureSkyController == null) { _AzureSkyController = UnityEngine.Object.FindObjectOfType <AzureSkyController>(); } if (_WeatherManager == null) { _WeatherManager = UnityEngine.Object.FindObjectOfType <WeatherManager>(); } if (_Raft == null) { _Raft = ComponentManager <Raft> .Value; } if (Cheat.fixTimeScale) { Time.timeScale = 0f; } else { if (!visible) { Time.timeScale = 1f; } } if (UnityEngine.Input.GetKeyDown(KeyCode.F3)) { ModAPI.Log.Write("Flying"); Cheat.FlyMode = !Cheat.FlyMode; } // if clicked button if (UnityEngine.Input.GetKeyDown(KeyCode.F1)) { ModAPI.Log.Write("Menü"); if (visible) { // menu is closed _Player.SetMouseLookScripts(true); Helper.SetCursorVisibleAndLockState(false, CursorLockMode.Locked); Time.timeScale = 1f; } else { // menu is open _Player.SetMouseLookScripts(false); Helper.SetCursorVisibleAndLockState(true, CursorLockMode.None); Time.timeScale = 0f; } visible = !visible; } }
protected override void InitPlayer(Network_Player player) { FieldInfo eventRef_swingv = typeof(Spear).GetField("eventRef_swing", BindingFlags.NonPublic | BindingFlags.Instance); Spear spear = player.gameObject.AddComponent <Spear>(); spear.name = fullName; spear.attackMask = player.GetComponentsInChildren <Spear>(true)[0].attackMask; eventRef_swingv.SetValue(spear, eventRef_swingv.GetValue(player.GetComponentsInChildren <Spear>(true)[0])); spear.enabled = false; FieldInfo attackRangev = typeof(Spear).GetField("attackRange", BindingFlags.NonPublic | BindingFlags.Instance); FieldInfo damagev = typeof(Spear).GetField("damage", BindingFlags.NonPublic | BindingFlags.Instance); attackRangev.SetValue(spear, range); damagev.SetValue(spear, damage); System.Console.WriteLine(owner.Metadata.ModName + ": Added weapon " + fullName + "; damage=" + damage + ", range=" + range + ", cooldown=" + cooldown); //The spear probably stores a parented object that represents the actual mesh //foreach (Spear sp in player.GetComponentsInChildren<Spear>()) //{ // System.Console.WriteLine(sp.GetType().ToString()); //} //TODO: Still not useable, find out how it works //TODO: Also things that are already weapons should be added here }
public void OnTriggerStay(Collider other) { CookingStand_Purifier target = other.gameObject.GetComponent <CookingStand_Purifier>(); if (target == null) { target = other.gameObject.transform.parent.gameObject.GetComponent <CookingStand_Purifier>(); } if (target != null) { timer += Time.deltaTime; if (timer > timePerFill) { Item_Base waterCup = ItemManager.GetItemByIndex(40); CookingSlot[] possibleSlots = target.GetCookingSlotsForItem(waterCup); if (possibleSlots != null && possibleSlots.Length > 0) { Network_Player networkPlayer = ComponentManager <Network_Player> .Value; CookingStandManager cookingStandManager = networkPlayer.CookingStandManager; Message_CookingStand_Insert message = new Message_CookingStand_Insert(Messages.CookingStandManager_InsertItem, cookingStandManager, waterCup, target, possibleSlots); if (Semih_Network.IsHost) { networkPlayer.Network.RPC(message, Target.Other, EP2PSend.k_EP2PSendReliable, NetworkChannel.Channel_Game); target.InsertItem(waterCup, possibleSlots, false); // if localPlayer was true, the local player would lose an item } } timer -= timePerFill; } } }
public void Update() { if (Input.GetKeyDown(KeyCode.LeftAlt)) { Debug.Log(CanvasHelper.ActiveMenu); Debug.Log("LeftAlt pressed and menu not open"); currentPlayers.Clear(); var players = FindObjectsOfType <Network_Player>(); var localPlayer = RAPI.GetLocalPlayer(); foreach (var player in players) { if (player != localPlayer) { currentPlayers.Add(player); } } Network_Player thisPlayer = RAPI.GetLocalPlayer(); if (thisPlayer != null) { PlayerPing(thisPlayer); } } }
public override void WorldEvent_WorldLoaded() { base.WorldEvent_WorldLoaded(); player = RAPI.GetLocalPlayer(); CreateAudioSource(); GiveRadioToPlayer(); SetBroadcastState(true); }
public override void WorldEvent_WorldUnloaded() { base.WorldEvent_WorldUnloaded(); TakeRadioFromPlayer(); SetBroadcastState(false); RemoveAudioSource(); player = null; }
public void OnModifyTank(Network_Player player, float amount, Item_Base itemType = null) { if (!itemType || !(itemType.name == "Jar_Honey")) { return; } GiveGlass(); }
public override void WorldEvent_WorldLoaded() { if (playerNetwork == null) { playerNetwork = RAPI.GetLocalPlayer(); } //AddLandmarkToSpawner(); //Debug.Log("The world is loaded!"); }
private static void Prefix(Network_Player __instance) { if (Minimap.Instance.persistence.markers) { if (!Equals(__instance, RAPI.GetLocalPlayer())) { Minimap.AddMarker(__instance.transform, Minimap.MarkerType.PLAYER); } } }
public void Update() { if (CanvasHelper.ActiveMenu == MenuType.Inventory && Input.GetKeyDown(KeyCode.Z)) { Network_Player player = RAPI.GetLocalPlayer(); if (player != null) { SortPlayerInventory(player); } } }
private static bool Prefix ( SteeringWheel __instance, ref bool ___hasBeenPlaced, ref bool ___isDisplayingText, DisplayTextManager ___displayText, ref Network_Player ___localPlayer, ref Semih_Network ___network ) { if (!___hasBeenPlaced) { return(true); } if (MyInput.GetButton("Sprint")) { ___isDisplayingText = true; ___displayText.ShowText("Toggle Engines", MyInput.Keybinds["Interact"].MainKey, 1, "Toggle Engine Direction", MyInput.Keybinds["Rotate"].MainKey, 2); if (MyInput.GetButtonDown("Interact")) { MoreSailsMoreSpeed.ToggleAllEngines(); } if (MyInput.GetButtonDown("Rotate")) { MoreSailsMoreSpeed.ToggleAllEnginesDir(); } } else { ___isDisplayingText = true; ___displayText.ShowText("Hold for more options", MyInput.Keybinds["Sprint"].MainKey, 1, Helper.GetTerm("Game/RotateSmooth2", false), MyInput.Keybinds["Rotate"].MainKey, 2); if (MyInput.GetButtonDown("Rotate")) { ___localPlayer.PlayerScript.SetMouseLookScripts(false); } if (MyInput.GetButtonUp("Rotate")) { ___localPlayer.PlayerScript.SetMouseLookScripts(true); } if (MyInput.GetButton("Rotate")) { float axis = Input.GetAxis("Mouse X"); Message_SteeringWheel_Rotate message = new Message_SteeringWheel_Rotate(Messages.SteeringWheelRotate, ___network.NetworkIDManager, __instance.ObjectIndex, axis); if (Semih_Network.IsHost) { AccessTools.Method("SteeringWheel:Rotate").Invoke(__instance, new object[] { axis }); return(false); } ___network.SendP2P(___network.HostID, message, EP2PSend.k_EP2PSendReliable, NetworkChannel.Channel_Game); } } return(false); }
//Get the local player //If the player doesn't exist (like if you're not ingame), it returns "" public static string GetLocalPlayer() { Semih_Network network = UnityEngine.Object.FindObjectOfType <Semih_Network>(); if (network == null) { return(""); } Network_Player player = network.GetLocalPlayer(); return(player == null ? "" : player.name); }
private void SortPlayerInventory(Network_Player player) { PlayerInventory inv = player.Inventory; // Get all of the inventory slots that are not in the hotbar. List <Slot> nonHotbar = inv.allSlots.GetRange(player.Inventory.hotslotCount, player.Inventory.allSlots.Count - player.Inventory.hotslotCount); Sort(nonHotbar); if (inv.secondInventory != null) { Sort(inv.secondInventory.allSlots); } }
public void OnIsRayed() { if (this.canvas == null) { this.canvas = ComponentManager <CanvasHelper> .Value; } if (this.localPlayer == null) { this.localPlayer = ComponentManager <Network_Player> .Value; } if (CanvasHelper.ActiveMenu != MenuType.None || !Helper.LocalPlayerIsWithinDistance(base.transform.position, Player.UseDistance)) { if (this.showingText) { this.canvas.displayTextManager.HideDisplayTexts(); this.showingText = false; } return; } if (skyController.timeOfDay.hour < 5 || skyController.timeOfDay.hour > 19) { this.canvas.displayTextManager.ShowText("Its the spooky night! The solar panel won't work!", 0, true, 0); this.showingText = true; return; } if (!battery.BatterySlotIsEmpty) { if (battery.GetBatteryInstance().Uses < batteryMaxUses) { float progress = (float)battery.GetBatteryInstance().Uses / (float)batteryMaxUses; this.canvas.displayTextManager.ShowText("The battery is charging... (" + Mathf.Round(progress * 100) + "%)", 0, true, 0); this.showingText = true; } else { this.canvas.displayTextManager.ShowText("The battery is fully charged!", 0, true, 0); this.showingText = true; } } else { this.canvas.displayTextManager.ShowText("No battery, place one to charge it!", 0, true, 0); this.showingText = true; return; } }
public StatData getStatData(Network_Player player, string stat, string action, float amount) { StatData data = new StatData(stat); float val = 1; switch (stat) { case "gravity": val = player.PersonController.gravity; break; case "swim_speed": val = player.PersonController.swimSpeed; break; case "walk_speed": val = player.PersonController.normalSpeed; break; case "jump_speed": val = player.PersonController.jumpSpeed; break; case "thirst": val = player.Stats.stat_thirst.Value; break; case "hunger": val = player.Stats.stat_hunger.Normal.Value; break; case "oxygen": val = player.Stats.stat_oxygen.Value; break; case "health": val = player.Stats.stat_health.Value; break; } data.originalValue = val; data.currentValue = getAdjustedValue(val, action, amount); return(data); }
static bool Prefix(Sail __instance, ref CanvasHelper ___canvas, ref Network_Player ___localPlayer) { if (!MyInput.GetButton("Sprint")) { return(true); } if (Helper.LocalPlayerIsWithinDistance(__instance.transform.position, Player.UseDistance) && CanvasHelper.ActiveMenu == MenuType.None) { if (MyInput.GetButtonDown("Interact")) { if (Semih_Network.IsHost) { if (__instance.open) { MoreSailsMoreSpeedMod.SailsClose(); } else { MoreSailsMoreSpeedMod.SailsOpen(); } } } if (MyInput.GetButton("Rotate")) { if (___localPlayer.PlayerScript.MouseLookIsActive()) { ___localPlayer.PlayerScript.SetMouseLookScripts(false); } MoreSailsMoreSpeedMod.SailsRotate(Input.GetAxis("Mouse X"), __instance); } else if (MyInput.GetButtonUp("Rotate")) { ___localPlayer.PlayerScript.SetMouseLookScripts(true); } return(false); } else { ___canvas.displayTextManager.HideDisplayTexts(); } return(false); }
//Give a player an item //If you don't specify player, it picks local player //If you don't specify count, it assumes full stack public static bool Give(Item item, string player = "", int count = 0) { Network_Player p = GetPlayer(player); if (p == null || item == null || item.baseItem == null) { return(false); } PlayerInventory playerInventory = (PlayerInventory)typeof(Network_Player).GetField("inventory", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(p); if (playerInventory == null) { return(false); } playerInventory.AddItem(item.baseItem.UniqueName, count); return(true); }
public void setStatVal(Network_Player player, string stat, float amount) { switch (stat) { case "gravity": player.PersonController.gravity = amount; break; case "swim_speed": player.PersonController.swimSpeed = amount; break; case "walk_speed": player.PersonController.normalSpeed = amount; break; case "jump_speed": player.PersonController.jumpSpeed = amount; break; case "thirst": Traverse.Create(player.Stats.stat_thirst).Field("drinking").SetValue(false); player.Stats.stat_thirst.Value = amount; break; case "hunger": Traverse.Create(player.Stats.stat_hunger.Normal).Field("digesting").SetValue(false); player.Stats.stat_hunger.Normal.Value = amount; break; case "oxygen": player.Stats.stat_oxygen.Value = amount; break; case "health": player.Stats.stat_health.Value = amount; break; } }
private static void Postfix(ref Item_Base __result) { if (__result != null) { Network_Player player = RAPI.GetLocalPlayer(); Item_Base currentItemInHand = player.PlayerItemManager.useItemController.GetCurrentItemInHand(); System.Random rand = new System.Random(); string oldItem = __result.UniqueName; if (oldItem == "Placeable_ScrapMechanic" || oldItem == "Placeable_LuckyCat" || oldItem == "Placeable_Cropplot_Shoe" || oldItem == "Placeable_GlassCandle") { Debug.Log("Item Randomizer Activated!"); if (currentItemInHand.UniqueName == "FishingRod" && rand.Next(0, 10) > 7) { __result = FishingRod_Dropper.GetRandomItem(); } else if (currentItemInHand.UniqueName == "FishingRod_Metal" && rand.Next(0, 10) < 8) { __result = FishingRod_Dropper.GetRandomItem(); } } } }
public void setStatVal(Network_Player player, string stat, float amount) { switch (stat) { case "gravity": player.PersonController.gravity = amount; break; case "swim_speed": player.PersonController.swimSpeed = amount; break; case "walk_speed": player.PersonController.normalSpeed = amount; break; case "jump_speed": player.PersonController.jumpSpeed = amount; break; case "thirst": player.Stats.stat_thirst.Value = amount; break; case "hunger": player.Stats.stat_hunger.Normal.Value = amount; break; case "oxygen": player.Stats.stat_oxygen.Value = amount; break; case "health": player.Stats.stat_health.Value = amount; break; } }
private void PlayerPing(Network_Player player) { OnGUI(); }
protected virtual void InitPlayer(Network_Player player) { }
private static bool Prefix ( Sail __instance, ref bool ___blockPlaced, ref Network_Player ___localPlayer, ref CanvasHelper ___canvas, ref bool ___isRotating, ref GameObject ___paintCollider, ref Semih_Network ___network ) { if (!___blockPlaced) { return(false); } if (___canvas == null || ___canvas.displayTextManager == null || ___localPlayer == null) { return(false); } if (Helper.LocalPlayerIsWithinDistance(__instance.transform.position, Player.UseDistance) && CanvasHelper.ActiveMenu == MenuType.None) { bool mod = MyInput.GetButton("Sprint"); if (!__instance.open) { if (mod) { ___canvas.displayTextManager.ShowText("Open Sails", MyInput.Keybinds["Interact"].MainKey, 1, "Rotate Sails", MyInput.Keybinds["Rotate"].MainKey, 2); } else { ___canvas.displayTextManager.ShowText("Hold for more options", MyInput.Keybinds["Sprint"].MainKey, 1, "Open", MyInput.Keybinds["Interact"].MainKey, 2, 0, true); ___canvas.displayTextManager.ShowText("Rotate", MyInput.Keybinds["Rotate"].MainKey, 3, 0, false); } } else { if (mod) { ___canvas.displayTextManager.ShowText("Close Sails", MyInput.Keybinds["Interact"].MainKey, 1, "Rotate Sails", MyInput.Keybinds["Rotate"].MainKey, 2); } else { ___canvas.displayTextManager.ShowText("Hold for more options", MyInput.Keybinds["Sprint"].MainKey, 1, "Close", MyInput.Keybinds["Interact"].MainKey, 2, 0, true); ___canvas.displayTextManager.ShowText("Rotate", MyInput.Keybinds["Rotate"].MainKey, 3, 0, false); } } if (MyInput.GetButtonDown("Interact")) { Message_NetworkBehaviour message = new Message_NetworkBehaviour(__instance.open ? Messages.Sail_Close : Messages.Sail_Open, __instance); if (Semih_Network.IsHost) { if (__instance.open) { if (mod) { MoreSailsMoreSpeed.SailsClose(); } else { AccessTools.Method("Sail:Close").Invoke(__instance, null); } } else { if (mod) { MoreSailsMoreSpeed.SailsOpen(); } else { AccessTools.Method("Sail:Open").Invoke(__instance, null); } } ___network.RPC(message, Target.Other, EP2PSend.k_EP2PSendReliable, NetworkChannel.Channel_Game); } else { ___network.SendP2P(___network.HostID, message, EP2PSend.k_EP2PSendReliable, NetworkChannel.Channel_Game); } } if (MyInput.GetButton("Rotate")) { ___localPlayer.PlayerScript.SetMouseLookScripts(false); ___isRotating = true; } else if (MyInput.GetButtonUp("Rotate")) { if (mod) { MoreSailsMoreSpeed.RotateSailsTo(__instance); } ___localPlayer.PlayerScript.SetMouseLookScripts(true); ___isRotating = false; } if (MyInput.GetButtonUp("Sprint") && ___isRotating) { MoreSailsMoreSpeed.RotateSailsTo(__instance); ___localPlayer.PlayerScript.SetMouseLookScripts(true); ___isRotating = false; return(false); } bool button = MyInput.GetButton("Rotate"); if (button) { float axis = Input.GetAxis("Mouse X"); if (Semih_Network.IsHost) { AccessTools.Method("Sail:Rotate").Invoke(__instance, new object[] { axis }); } else { Message_Sail_Rotate message2 = new Message_Sail_Rotate(Messages.Sail_Rotate, __instance, axis); ___network.SendP2P(___network.HostID, message2, EP2PSend.k_EP2PSendReliable, NetworkChannel.Channel_Game); } } ___paintCollider.SetActiveSafe(!button); return(false); } if (___isRotating) { ___isRotating = false; ___localPlayer.PlayerScript.SetMouseLookScripts(true); } ___canvas.displayTextManager.HideDisplayTexts(); return(false); }
// The Update() method is being called every frame. Have fun! public void Update() { DateTime currentTime = DateTime.UtcNow; Network_Player player = RAPI.getLocalPlayer(); Network_Host_Entities nhe = ComponentManager <Network_Host_Entities> .Value; Raft raft = ComponentManager <Raft> .Value; Rigidbody body = Traverse.Create(raft).Field("body").GetValue() as Rigidbody; RewardData reward; if (rewardsQueue.TryDequeue(out reward)) { switch (reward.action) { case "sound": system.playSound(sounds[reward.args[0]], channels, false, out newChannel); break; case "message": chat.SendChatMessage(string.Join(" ", reward.args), SteamUser.GetSteamID()); break; case "item": Item_Base item = ItemManager.GetItemByName(reward.args[0]); int amount = 1; int.TryParse(reward.args[1], out amount); Helper.DropItem(new ItemInstance(item, amount, item.MaxUses), player.transform.position, player.CameraTransform.forward, player.transform.ParentedToRaft()); break; case "inventory_bomb": chat.SendChatMessage("Inventory Bomb!", SteamUser.GetSteamID()); foreach (Slot s in player.Inventory.allSlots) { player.Inventory.DropItem(s); } foreach (Slot s in player.Inventory.equipSlots) { player.Inventory.DropItem(s); } break; case "stat_edit": //TODO //player.PersonController.gravity = 20; //player.PersonController.swimSpeed = 2; //player.PersonController.normalSpeed = 3; //player.PersonController.jumpSpeed = 8; //player.Stats.stat_thirst.Value -= 5; string action = reward.args[0]; string stat = reward.args[1]; float changeAmount = 1; float.TryParse(reward.args[2], out changeAmount); int duration = 1; int.TryParse(reward.args[3], out duration); bool contained = false; foreach (StatData data in statsEdited) { if (data.stat.Equals(stat)) { data.duration += duration; contained = true; } } if (!contained) { StatData data = getStatData(player, stat, action, changeAmount); data.duration = duration * 1000; data.timeStarted = DateTime.UtcNow; setStatVal(player, stat, data.currentValue); if (duration != -1) { statsEdited.Add(data); } } break; case "move": push = true; pushData = new PushData(new Vector3(-4, 0, -4.3f), currentTime, 250); break; case "spawn_entity": Vector3 pos = player.FeetPosition; float scale = 1; if (reward.args.Length > 1) { float.TryParse(reward.args[1], out scale); } int amountFromEntries = 1; if (reward.args.Length > 2) { int.TryParse(reward.args[2], out amountFromEntries); } int spawnDuration = 1; if (reward.args.Length > 3) { int.TryParse(reward.args[3], out spawnDuration); } TempEntity tempEnt; uint objIndex = SaveAndLoad.GetUniqueObjectIndex(); for (int index = 0; index < amountFromEntries; ++index) { switch (reward.args[0]) { case "stone_bird": tempEnt = new TempEntity(nhe.CreateAINetworkBehaviour(AI_NetworkBehaviourType.StoneBird, pos, scale, objIndex, SaveAndLoad.GetUniqueObjectIndex(), null)); break; case "puffer_fish": tempEnt = new TempEntity(nhe.CreateAINetworkBehaviour(AI_NetworkBehaviourType.PufferFish, pos, scale, objIndex, SaveAndLoad.GetUniqueObjectIndex(), null)); break; case "llama": tempEnt = new TempEntity(nhe.CreateAINetworkBehaviour(AI_NetworkBehaviourType.Llama, pos, scale, objIndex, SaveAndLoad.GetUniqueObjectIndex(), null)); (tempEnt.ent as AI_NetworkBehaviour_Domestic).QuickTameLate(); break; case "goat": tempEnt = new TempEntity(nhe.CreateAINetworkBehaviour(AI_NetworkBehaviourType.Goat, pos, scale, objIndex, SaveAndLoad.GetUniqueObjectIndex(), null)); (tempEnt.ent as AI_NetworkBehaviour_Domestic).QuickTameLate(); break; case "chicken": tempEnt = new TempEntity(nhe.CreateAINetworkBehaviour(AI_NetworkBehaviourType.Chicken, pos, scale, objIndex, SaveAndLoad.GetUniqueObjectIndex(), null)); (tempEnt.ent as AI_NetworkBehaviour_Domestic).QuickTameLate(); break; case "boar": tempEnt = new TempEntity(nhe.CreateAINetworkBehaviour(AI_NetworkBehaviourType.Boar, pos, scale, objIndex, SaveAndLoad.GetUniqueObjectIndex(), null)); break; case "rat": tempEnt = new TempEntity(nhe.CreateAINetworkBehaviour(AI_NetworkBehaviourType.Rat, pos, scale, objIndex, SaveAndLoad.GetUniqueObjectIndex(), null)); break; case "shark": tempEnt = new TempEntity(nhe.CreateAINetworkBehaviour(AI_NetworkBehaviourType.Shark, pos, scale, objIndex, SaveAndLoad.GetUniqueObjectIndex(), null)); break; case "bear": tempEnt = new TempEntity(nhe.CreateAINetworkBehaviour(AI_NetworkBehaviourType.Bear, pos, scale, objIndex, SaveAndLoad.GetUniqueObjectIndex(), null)); break; case "mama_bear": tempEnt = new TempEntity(nhe.CreateAINetworkBehaviour(AI_NetworkBehaviourType.MamaBear, pos, scale, objIndex, SaveAndLoad.GetUniqueObjectIndex(), null)); break; case "seagull": //TODO: It's not like the others for some reason..... tempEnt = null; break; default: tempEnt = null; break; } if (tempEnt != null && spawnDuration != -1) { Semih_Network network = ComponentManager <Semih_Network> .Value; Message_CreateAINetworkBehaviour networkBehaviour2 = new Message_CreateAINetworkBehaviour(Messages.CreateAINetworkBehaviour, network.NetworkIDManager, objIndex, pos, tempEnt.ent, null); if (network == null) { network = ComponentManager <Semih_Network> .Value; } network.RPC(networkBehaviour2, Target.Other, EP2PSend.k_EP2PSendReliable, NetworkChannel.Channel_Game); tempEnt.spawned = DateTime.UtcNow; tempEnt.duration = spawnDuration * 1000; tempEntities.Add(tempEnt); } } break; case "set_weather": string weatherName = reward.args[0]; bool instant; bool.TryParse(reward.args[1], out instant); WeatherManager wm = ComponentManager <WeatherManager> .Value; Randomizer weather = Traverse.Create(ComponentManager <WeatherManager> .Value).Field("weatherConnections").GetValue() as Randomizer; Weather w = null; foreach (Weather we in weather.GetAllItems <Weather>()) { if (we.name.Equals(weatherName)) { w = we; } } if (w != null) { wm.StopAllCoroutines(); wm.StartCoroutine(wm.StartNewWeather(w, instant)); } break; case "set_time": AzureSkyController skyController = ComponentManager <AzureSkyController> .Value; int hours = 1; int.TryParse(reward.args[0], out hours); int minutes = 1; int.TryParse(reward.args[1], out minutes); skyController.timeOfDay.GotoTime(hours, minutes); break; case "pickup_trash": WaterFloatSemih2[] floatingObjects = FindObjectsOfType <WaterFloatSemih2>(); float radius = 100; float.TryParse(reward.args[0], out radius); foreach (WaterFloatSemih2 trash in floatingObjects) { try { if (!trash.GetComponent <PickupItem>().isDropped&& Vector3.Distance(trash.transform.position, player.FeetPosition) < radius) { PickupItem_Networked pickup = trash.GetComponentInParent <PickupItem_Networked>(); PickupObjectManager.RemovePickupItemNetwork(pickup, SteamUser.GetSteamID()); } } catch { } } break; case "command": RConsole console = Traverse.Create(typeof(RConsole)).Field("ConsoleInstance").GetValue() as RConsole; console.sendCommand(string.Join(" ", reward.args)); break; case "meteor_shower": int meteorsToSpawn = 1; if (reward.args.Length > 0) { int.TryParse(reward.args[0], out meteorsToSpawn); } int spawnRadius = 1; if (reward.args.Length > 1) { int.TryParse(reward.args[1], out spawnRadius); } int meteorDamage = 1; if (reward.args.Length > 2) { int.TryParse(reward.args[2], out meteorDamage); } if (stoneDropPrefab == null) { AI_NetworkBehaviour_StoneBird ainbsb = (AI_NetworkBehaviour_StoneBird)nhe.CreateAINetworkBehaviour(AI_NetworkBehaviourType.StoneBird, player.FeetPosition, 0, SaveAndLoad.GetUniqueObjectIndex(), SaveAndLoad.GetUniqueObjectIndex(), null); stoneDropPrefab = Traverse.Create(ainbsb.stateMachineStoneBird.dropStoneState).Field("stoneDropPrefab").GetValue() as StoneDrop; ainbsb.Kill(); } for (int i = 0; i < meteorsToSpawn; i++) { Vector3 dropPosition = player.FeetPosition + new Vector3(UnityEngine.Random.Range(-spawnRadius, spawnRadius), 200, UnityEngine.Random.Range(-spawnRadius, spawnRadius)); meteors.Add(new Meteor(dropPosition, meteorDamage)); } break; case "push_raft": float pushForce; float.TryParse(reward.args[0], out pushForce); body.AddForce(getBoundedRandVector(0.5f, 1) * pushForce, ForceMode.Impulse); break; case "rotate_raft": float rotationForce; float.TryParse(reward.args[0], out rotationForce); body.AddTorque(new Vector3(0, rotationForce, 0), ForceMode.Impulse); break; } } for (int i = statsEdited.Count - 1; i >= 0; i--) { StatData data = statsEdited[i]; if ((currentTime - data.timeStarted).TotalMilliseconds > data.duration) { setStatVal(player, data.stat, data.originalValue); statsEdited.RemoveAt(i); chat.SendChatMessage(data.stat + " back to normal!", SteamUser.GetSteamID()); } } for (int i = tempEntities.Count - 1; i >= 0; i--) { TempEntity ent = tempEntities[i]; if ((currentTime - ent.spawned).TotalMilliseconds > ent.duration) { if (ent.ent != null) { Network_Entity entity = ent.ent.networkEntity; entity.Button_Kill(); AI_StateMachine stateMachine = ent.ent.GetComponent <AI_StateMachine>(); if (stateMachine is AI_StateMachine_Animal) { Traverse.Create((stateMachine as AI_StateMachine_Animal).deadState).Method("RemoveBody").GetValue(); } } tempEntities.RemoveAt(i); } } if (meteors.Count > 0) { meteorDelay--; if (meteorDelay <= 0) { meteorDelay = meteorDelayTot; StoneDrop stone = Instantiate(stoneDropPrefab, meteors.ElementAt(0).pos, Quaternion.identity); float scale = UnityEngine.Random.Range(0.5f, 4f); stone.rigidBody.transform.localScale = new Vector3(scale, scale, scale); stone.rigidBody.AddForce(Vector3.down * meteors.ElementAt(0).damage, ForceMode.Impulse); meteors.RemoveAt(0); } } if (Input.GetKeyDown(KeyCode.Keypad1)) { //Item_Base item = ItemManager.GetItemByName("Watermelon"); //Helper.DropItem(new ItemInstance(item, 10, item.MaxUses), player.transform.position, player.CameraTransform.forward, player.transform.ParentedToRaft()); } else if (Input.GetKeyDown(KeyCode.Keypad2)) { } if (push) { player.PersonController.controller.SimpleMove(pushData.push); if ((currentTime - pushData.startTime).TotalMilliseconds > pushData.duration) { pushData.left--; if (pushData.left == 0) { push = false; } else { pushData.startTime = currentTime; pushData.push = getBoundedRandVector(3, 5); } } } }
public IEnumerator spawner(Network_Player player) { yield return(new WaitForSeconds(0.05f)); Instantiate(FindObjectOfType <AI_NetworkBehavior_Shark>().transform.gameObject, FindObjectOfType <Network_Player>().transform.position, player.transform.rotation); }
public override void WorldEvent_WorldLoaded() { loaded = true; player = RAPI.GetLocalPlayer(); canvas = ComponentManager <CanvasHelper> .Value; }
public void Update() { Network_Player player = RAPI.getLocalPlayer(); }