public ManagedVerb(Verb verb, VerbSource source, AdditionalVerbProps props, VerbManager man)
        {
            Verb     = verb;
            Source   = source;
            Props    = props;
            this.man = man;
            if (Props != null && Props.draw && !Base.Features.Drawing)
            {
                Log.Error(
                    "[MVCF] Found a verb marked to draw while that feature is not enabled. Enabling now. This is not recommend.");
                Base.Features.Drawing = true;
                Base.ApplyPatches();
            }

            if (Props != null && Props.canFireIndependently && !Base.Features.IndependentFire)
            {
                Log.Error(
                    "[MVCF] Found a verb marked to fire independently while that feature is not enabled. Enabling now. This is not recommend.");
                Base.Features.IndependentFire = true;
                Base.ApplyPatches();
            }

            if (Props != null && !Props.separateToggle && !Base.Features.IntegratedToggle)
            {
                Log.Error(
                    "[MVCF] Found a verb marked for an integrated toggle while that feature is not enabled. Enabling now. This is not recommend.");
                Base.Features.IntegratedToggle = true;
                Base.ApplyPatches();
            }
        }
Exemple #2
0
 public ManagedVerb(Verb verb, VerbSource source, AdditionalVerbProps props, VerbManager man)
 {
     Verb     = verb;
     Source   = source;
     Props    = props;
     this.man = man;
 }
Exemple #3
0
        public void AddVerb(Verb verb, VerbSource source, AdditionalVerbProps props)
        {
            ManagedVerb mv;

            if (props != null && props.canFireIndependently)
            {
                var tv = new TurretVerb(verb, source, props, this);
                if (tickVerbs.Count == 0)
                {
                    NeedsTicking = true;
                    WorldComponent_MVCF.GetComp().TickManagers.Add(new System.WeakReference <VerbManager>(this));
                }

                tickVerbs.Add(tv);
                mv = tv;
            }
            else
            {
                mv = new ManagedVerb(verb, source, props, this);
            }

            if (props != null && props.draw)
            {
                drawVerbs.Add(mv);
            }

            verbs.Add(mv);
            RecalcSearchVerb();
        }
        public void AddVerb(Verb verb, VerbSource source, AdditionalVerbProps props)
        {
            if (debugOpts.VerbLogging)
            {
                Log.Message("Adding " + verb + " from " + source + " with props " + props);
            }
            if (AllVerbs.Contains(verb))
            {
                if (debugOpts.VerbLogging)
                {
                    Log.Warning("Added duplicate verb " + verb);
                }
                return;
            }

            ManagedVerb mv;

            if (props != null && props.canFireIndependently)
            {
                TurretVerb tv;
                if (props.managedClass != null)
                {
                    tv = (TurretVerb)Activator.CreateInstance(props.managedClass, verb, source, props, this);
                }
                else
                {
                    tv = new TurretVerb(verb, source, props, this);
                }
                if (tickVerbs.Count == 0)
                {
                    NeedsTicking = true;
                    WorldComponent_MVCF.GetComp().TickManagers.Add(new System.WeakReference <VerbManager>(this));
                }

                tickVerbs.Add(tv);
                mv = tv;
            }
            else
            {
                if (props?.managedClass != null)
                {
                    mv = (ManagedVerb)Activator.CreateInstance(props.managedClass, verb, source, props, this);
                }
                else
                {
                    mv = new ManagedVerb(verb, source, props, this);
                }
            }

            if (props != null && props.draw)
            {
                drawVerbs.Add(mv);
            }

            verbs.Add(mv);
            RecalcSearchVerb();
        }
Exemple #5
0
 public TurretVerb(Verb verb, VerbSource source, AdditionalVerbProps props, VerbManager man) : base(verb, source,
                                                                                                    props, man)
 {
     dummyCaster = new DummyCaster(man.Pawn, this);
     dummyCaster.Tick();
     dummyCaster.SpawnSetup(man.Pawn.Map, false);
     verb.caster = dummyCaster;
     verb.castCompleteCallback = () => cooldownTicksLeft = Verb.verbProps.AdjustedCooldownTicks(Verb, man.Pawn);
 }
Exemple #6
0
 public TurretVerb(Verb verb, VerbSource source, AdditionalVerbProps props, VerbManager man) : base(verb, source,
                                                                                                    props, man)
 {
     verb.castCompleteCallback = () => cooldownTicksLeft = Verb.verbProps.AdjustedCooldownTicks(Verb, man.Pawn);
 }