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(); } }
public ManagedVerb(Verb verb, VerbSource source, AdditionalVerbProps props, VerbManager man) { Verb = verb; Source = source; Props = props; this.man = man; }
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(); }
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); }
public TurretVerb(Verb verb, VerbSource source, AdditionalVerbProps props, VerbManager man) : base(verb, source, props, man) { verb.castCompleteCallback = () => cooldownTicksLeft = Verb.verbProps.AdjustedCooldownTicks(Verb, man.Pawn); }