示例#1
0
        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));
        }
示例#2
0
        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));
        }