public override void MergeWith(Gizmo other)
        {
            base.MergeWith(other);
            VEF_Gizmo_SwitchRangedVerb switchRangedVerb = other as VEF_Gizmo_SwitchRangedVerb;

            if (switchRangedVerb == null)
            {
                Log.ErrorOnce("Tried to merge Command_VerbTarget with unexpected type", 73406263, false);
                return;
            }
            if (this.groupedVerbs == null)
            {
                this.groupedVerbs = new List <Verb>();
            }
            this.groupedVerbs.Add(switchRangedVerb.verb);
            if (switchRangedVerb.groupedVerbs != null)
            {
                this.groupedVerbs.AddRange(switchRangedVerb.groupedVerbs);
            }
            List <object> selectedPawns = Find.Selector.SelectedObjectsListForReading.FindAll(o => o.GetType() == typeof(Pawn));
        }
        private Command_VerbTarget CreateVerbTargetCommand(Verb verb)
        {
            VEF_Gizmo_SwitchRangedVerb command_VerbTarget = new VEF_Gizmo_SwitchRangedVerb(Pawn)
            {
                tutorTag = "VerbTarget",
                hotKey   = KeyBindingDefOf.Misc5,
                icon     = BaseContent.BadTex,
                order    = +1f,
                verb     = verb
            };

            if (verb != null && verb.IsStillUsableBy(Pawn))
            {
                if (verb.caster.Faction != Faction.OfPlayer)
                {
                    command_VerbTarget.Disable("CannotOrderNonControlled".Translate());
                }
                else if (verb.CasterIsPawn)
                {
                    // Disables Conditions
                    if (verb.CasterPawn.story.WorkTagIsDisabled(WorkTags.Violent))
                    {
                        command_VerbTarget.Disable("IsIncapableOfViolence".Translate(verb.CasterPawn.LabelShort, verb.CasterPawn));
                    }
                    else if (!verb.CasterPawn.drafter.Drafted)
                    {
                        command_VerbTarget.Disable("IsNotDrafted".Translate(verb.CasterPawn.LabelShort, verb.CasterPawn));
                    }

                    // Visible Conditions
                    if (verb == null || (rangedVerbs.Count == 1 && verb.EquipmentSource != null && verb.EquipmentSource == verb.CasterPawn.equipment.Primary) || (verb.CasterPawn.story.WorkTagIsDisabled(WorkTags.Violent) && !verb.CasterPawn.Drafted) || VEF_Comp_Pawn_RangedVerbs.ShouldUseSquadAttackGizmo())
                    {
                        this.visible = false;
                    }
                    else
                    {
                        this.visible = true;
                    }

                    //Description, Icon and Label Conditions
                    Texture2D tempIcon = BaseContent.BadTex;
                    if (CurRangedVerb.EquipmentSource != null)
                    {
                        command_VerbTarget.defaultDesc = (verb.verbProps.label == verb.EquipmentSource.def.label) ? verb.EquipmentSource.LabelCap + ": " + verb.EquipmentSource.def.description.CapitalizeFirst() : verb.verbProps.label + " :: " + verb.EquipmentSource.LabelCap + ": " + verb.EquipmentSource.def.description.CapitalizeFirst();
                        tempIcon = CurRangedVerb.EquipmentSource.def.uiIcon;
                        if (tempIcon != BaseContent.BadTex || tempIcon != null)
                        {
                            command_VerbTarget.icon = tempIcon;
                        }
                    }
                    else if (verb.verbProps.LaunchesProjectile)
                    {
                        if (verb.HediffCompSource != null)
                        {
                            command_VerbTarget.defaultDesc = (verb.verbProps.label == verb.HediffSource.def.label) ? verb.HediffSource.def.LabelCap + ": " + verb.HediffSource.def.description.CapitalizeFirst() : verb.verbProps.label + " :: " + verb.HediffSource.LabelCap + ": " + verb.HediffSource.def.description.CapitalizeFirst();
                        }
                        else
                        {
                            command_VerbTarget.defaultDesc = (verb.verbProps.label == verb.CasterPawn.def.label) ? "Biological weapon of " + verb.CasterPawn.def.label + ": " + verb.CasterPawn.def.description.CapitalizeFirst() : CurRangedVerb.verbProps.label.CapitalizeFirst() + " :: Biological weapon of " + verb.CasterPawn.def.label + ": " + verb.CasterPawn.def.description.CapitalizeFirst();
                        }
                        tempIcon = verb.GetProjectile().uiIcon;
                        if (tempIcon != null)
                        {
                            command_VerbTarget.icon = tempIcon;
                        }
                    }
                    else
                    {
                        if (verb.HediffSource != null)
                        {
                            command_VerbTarget.defaultDesc = (verb.verbProps.label == verb.HediffSource.def.label) ? verb.HediffSource.def.LabelCap + ": " + verb.HediffSource.def.description.CapitalizeFirst() : verb.verbProps.label + " :: " + verb.HediffSource.LabelCap + ": " + verb.HediffSource.def.description.CapitalizeFirst();
                            if (verb.HediffSource.def.spawnThingOnRemoved.uiIcon != null)
                            {
                                tempIcon = verb.HediffSource.def.spawnThingOnRemoved.uiIcon;
                            }
                        }
                        else
                        {
                            command_VerbTarget.defaultDesc = (verb.verbProps.label == verb.CasterPawn.def.label) ? "Biological weapon of " + verb.CasterPawn.def.label + ": " + verb.CasterPawn.def.description.CapitalizeFirst() : CurRangedVerb.verbProps.label.CapitalizeFirst() + " :: Biological weapon of " + verb.CasterPawn.def.label + ": " + verb.CasterPawn.def.description.CapitalizeFirst();
                            if (verb.CasterIsPawn && verb.CasterPawn.def.uiIcon != null)
                            {
                                tempIcon = verb.CasterPawn.def.uiIcon;
                            }
                        }
                        if (tempIcon != null)
                        {
                            command_VerbTarget.icon = tempIcon;
                        }
                    }
                }
            }
            else
            {
                this.visible = false;
                command_VerbTarget.Disable();
            }
            return(command_VerbTarget);
        }