public override IEnumerable <Gizmo> CompGetGizmosExtra() { GizmoAmmoStatus ammoStatusGizmo = new GizmoAmmoStatus { compAmmo = this }; yield return(ammoStatusGizmo); var mannableComp = turret?.GetMannable(); if ((IsEquippedGun && Wielder.Faction == Faction.OfPlayer) || (turret != null && turret.Faction == Faction.OfPlayer && (mannableComp != null || UseAmmo))) { Action action = null; if (IsEquippedGun) { action = TryStartReload; } else if (mannableComp != null) { action = turret.TryForceReload; } // Check for teaching opportunities string tag; if (turret == null) { if (HasMagazine) { tag = "CE_Reload"; // Teach reloading weapons with magazines } else { tag = "CE_ReloadNoMag"; // Teach about mag-less weapons } } else { if (mannableComp == null) { tag = "CE_ReloadAuto"; // Teach about auto-turrets } else { tag = "CE_ReloadManned"; // Teach about reloading manned turrets } } LessonAutoActivator.TeachOpportunity(ConceptDef.Named(tag), turret, OpportunityType.GoodToKnow); Command_Reload reloadCommandGizmo = new Command_Reload { compAmmo = this, action = action, defaultLabel = HasMagazine ? (string)"CE_ReloadLabel".Translate() : "", defaultDesc = "CE_ReloadDesc".Translate(), icon = CurrentAmmo == null ? ContentFinder <Texture2D> .Get("UI/Buttons/Reload", true) : selectedAmmo.IconTexture(), tutorTag = tag }; yield return(reloadCommandGizmo); } }
public override IEnumerable <Gizmo> CompGetGizmosExtra() { GizmoAmmoStatus ammoStatusGizmo = new GizmoAmmoStatus { compAmmo = this }; yield return(ammoStatusGizmo); if ((wielder != null && wielder.Faction == Faction.OfPlayer) || (turret != null && turret.Faction == Faction.OfPlayer)) { Action action = null; if (wielder != null) { action = TryStartReload; } else if (turret != null && turret.GetMannableComp() != null) { action = turret.OrderReload; } Command_Reload reloadCommandGizmo = new Command_Reload { compAmmo = this, action = action, defaultLabel = hasMagazine ? "CE_ReloadLabel".Translate() : "", defaultDesc = "CE_ReloadDesc".Translate(), icon = currentAmmo == null ? ContentFinder <Texture2D> .Get("UI/Buttons/Reload", true) : Def_Extensions.IconTexture(selectedAmmo) }; yield return(reloadCommandGizmo); } }