private static void RunLights(ScriptActionsStore dataObj) { foreach (var lightData in dataObj.lights) { Map.TurnOffAllLights(lightData.time, lightData.HCZOnly); } }
public void Add(ScriptActionsStore data) { this.teleportIds.AddRange(data.teleportIds); this.broadcast.AddRange(data.broadcast); this.hint.AddRange(data.hint); this.lights.AddRange(data.lights); }
public static ScriptActionsStore GetDelay(int delay) { if (!delays.ContainsKey(delay)) { delays[delay] = new ScriptActionsStore(); } return(delays[delay]); }
private static void RunHints(ScriptActionsStore dataObj) { foreach (var hintData in dataObj.hint) { foreach (var player in hintData.role.GetMembers()) { player.ShowHint(hintData.message, hintData.duration); } } }
private static void RunBroadcasts(ScriptActionsStore dataObj) { foreach (var broadcastData in dataObj.broadcast) { foreach (var player in broadcastData.role.GetMembers()) { player.Broadcast((ushort)broadcastData.duration, broadcastData.message); } } }
private static void SetRoles(ScriptActionsStore dataObj) { var players = Player.List.ToList(); players.Shuffle(); var playersTemp = players.Clone(); foreach (var data in dataObj.classIds) { var num = 0; for (var i = 0; i < playersTemp.Count; i++) { if (random.Next(0, 101) > data.chance && num > data.min) { continue; } playersTemp[i].SetRole(data.role.GetRole()); CustomRoles.ChangeRole(playersTemp[i], data.role.GetCustomRole()); players.RemoveAll(player => player.Id == playersTemp[i].Id); num++; } players.Shuffle(); playersTemp = players.Clone(); } playersTemp = players.Clone(); var spawnData = dataObj.classIds.Where(data => data.chance == 100).ToList(); if (spawnData.Count > 0) { for (var i = 0; i < playersTemp.Count; i++) { playersTemp[i].SetRole(spawnData[0].role.GetRole()); CustomRoles.ChangeRole(playersTemp[i], spawnData[0].role.GetCustomRole()); players.RemoveAll(player => player.Id == playersTemp[i].Id); } } if (dataObj.finalClass != null && players.Count > 0 && dataObj.finalClass.classId != -1) { var role = dataObj.finalClass.GetRole(); var customRole = dataObj.finalClass.GetCustomRole(); foreach (var player in players) { player.SetRole(role); CustomRoles.ChangeRole(player, customRole); } } }
private static void RunCassie(ScriptActionsStore dataObj) { foreach (var cassieData in dataObj.cassie) { Cassie.Message(cassieData.message, false, false); if (cassieData.role.roleID == "all") { dataObj.cassie.Remove(cassieData); } } }
private static void SetSize(ScriptActionsStore dataObj) { foreach (var data in dataObj.sizeData) { var list = data.role.GetMembers(); foreach (var player in list) { player.Scale = data.scale; } } }
private static void SetHP(ScriptActionsStore dataObj) { foreach (var data in dataObj.hpData) { var list = data.role.GetMembers(); foreach (var player in list) { player.Health = data.amount; } } }
private static void GiveItems(ScriptActionsStore dataObj) { foreach (var itemData in dataObj.giveData) { var list = itemData.role.GetMembers(); foreach (var player in list) { player.Inventory.AddNewItem(itemData.item); } } }
private static void ClearItems(ScriptActionsStore dataObj) { foreach (var clearItemsData in dataObj.clearItems) { var list = clearItemsData.GetMembers(); foreach (var player in list) { player.ClearInventory(); } } }
private static void Teleport(ScriptActionsStore dataObj) { foreach (var data in dataObj.teleportIds) { var players = data.role.GetMembers(); foreach (var player in players) { player.Position = data.pos; } } }
private static IEnumerator <float> RoundStart(ScriptActionsStore dataObj, bool main) { yield return(Timing.WaitForSeconds(1f)); if (dataObj.classIds != null && dataObj.classIds.Count > 0) { SetRoles(dataObj); yield return(Timing.WaitForSeconds(1f)); } try { Teleport(dataObj); ClearItems(dataObj); GiveItems(dataObj); SetHP(dataObj); SetSize(dataObj); RunCassie(dataObj); RunBroadcasts(dataObj); RunHints(dataObj); RunLights(dataObj); if (dataObj.detonate) { AlphaWarheadController.Host.StartDetonation(); } if (main) { foreach (var delay in delays.Keys) { Timing.RunCoroutine(DoDelayedAction(delay)); } } else { scriptData.Add(dataObj); } } catch (Exception e) { Log.Error(e); } }
public static void Reset() { foreach (var coroutine in coroutines) { Timing.KillCoroutines(coroutine); } CustomRoles.roles = new Dictionary <string, CustomRole>(); CustomRoles.users = new Dictionary <string, string>(); CustomRoles.roles.Add("all", new CustomRole("all", 2)); scriptData = new ScriptActionsStore(); delays = new Dictionary <int, ScriptActionsStore>(); Timing.CallDelayed(10f, () => { try { AdvancedSubclassing.PopulateCustomRoles(); if (EasyEvents.Singleton.Config.Events.Count > 0) { var selected = EasyEvents.Singleton.Config.Events.PickRandom().Trim().ToLower().Replace(" ", ""); if (selected == "none") { return; } if (!ScriptStore.Scripts.ContainsKey(selected)) { throw new EventNotFoundException("The event \"" + selected + "\" was not found while attempting to automatically run an event."); } ScriptHandler.RunScript(ScriptStore.Scripts[selected]); } } catch (Exception e) { Log.Error(e); } }); }
public static void SetCustomSpawn(List <SpawnData> _classIds, RoleInfo _finalClass, int line, ScriptActionsStore data) { if (data.classIds != null) { throw new CommandErrorException("Error running command \"spawn\" at line " + line + ": Custom spawns have already been set. Only run the \"spawn\" command once."); } data.classIds = _classIds; data.finalClass = _finalClass; }