public override object Call(params object[] args) { try { string code = args[0].ToString(); switch (code) { case "SwarmActive": return(SwarmActive); case "AddSummon": if (summonTracker.SummonsFinalized) { throw new Exception($"Call Error: Summons must be added before AddRecipes"); } summonTracker.AddSummon( Convert.ToSingle(args[1]), args[2] as string, args[3] as string, args[4] as Func <bool>, Convert.ToInt32(args[5]) ); break; case "AddEventSummon": if (summonTracker.SummonsFinalized) { throw new Exception($"Call Error: Event summons must be added before AddRecipes"); } summonTracker.AddEventSummon( Convert.ToSingle(args[1]), args[2] as string, args[3] as string, args[4] as Func <bool>, Convert.ToInt32(args[5]) ); break; case "GetDownedEnemy": if (FargoWorld.DownedBools.ContainsKey(args[1] as string) && FargoWorld.DownedBools[args[1] as string]) { return(true); } return(false); } } catch (Exception e) { Logger.Error("Call Error: " + e.StackTrace + e.Message); } return(base.Call(args)); }
public override object Call(params object[] args) { try { string code = args[0].ToString(); switch (code) { case "SwarmActive": return(SwarmActive); case "AddSummon": if (summonTracker.SummonsFinalized) { throw new Exception($"Call Error: Summons must be added before AddRecipes"); } summonTracker.AddSummon( Convert.ToSingle(args[1]), args[2] as string, args[3] as string, args[4] as Func <bool>, Convert.ToInt32(args[5]) ); break; case "AddEventSummon": if (summonTracker.SummonsFinalized) { throw new Exception($"Call Error: Event summons must be added before AddRecipes"); } summonTracker.AddEventSummon( Convert.ToSingle(args[1]), args[2] as string, args[3] as string, args[4] as Func <bool>, Convert.ToInt32(args[5]) ); break; case "GetDownedEnemy": if (FargoWorld.DownedBools.ContainsKey(args[1] as string) && FargoWorld.DownedBools[args[1] as string]) { return(true); } return(false); case "AddDevianttHelpDialogue": dialogueTracker.AddDialogue( args[1] as string, (byte)args[2], args[3] as Predicate <string> ); break; case "LowRenderProj": ((Projectile)args[1]).GetGlobalProjectile <FargoGlobalProjectile>().lowRender = true; break; } } catch (Exception e) { Logger.Error("Call Error: " + e.StackTrace + e.Message); } return(base.Call(args)); }