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 "DebuffDisplay": // ModContent.GetInstance<FargoConfig>().DebuffDisplay = (bool)args[1]; // break; 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]), Convert.ToInt32(args[2]), 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)); }