private static Boolean OnHoverPrefix(Action action, HoverData hoverData, GameModeProcessor __instance) { if (!(__instance is PeaceModeProcessor)) { return(HarmonyPrefix.CallOriginal); } Boolean flag = action.Data.IsPossible(); if (flag) { if (action.Ability != null) { hoverData.CursorType = action.Data.GetCursor(action.BlockReasons); } else if (action.Tool != null) { hoverData.CursorType = CursorType.Variants; } } SetSilhouette(hoverData, action.Data); if (action.TargetEntity != null) { SetBadge(hoverData, action.TargetEntity); if (flag && action.Ability != null) { hoverData.AddCommand(ActionTooltipBuilder.GetBanner(action, RestrictionStrategy.DefaultTooltip)); } } return(HarmonyPrefix.SkipOriginal); }
private static void SetBadge(HoverData hoverData, Entity targetEntity) { if (targetEntity != null && targetEntity.SubclassIndex == TypeIndex.Character) { hoverData.AddCommand(new BadgeCommand(targetEntity)); } }
public void Hover() { foreach (var targetEntity in GetEntities()) { if (!targetEntity.HasActor()) { continue; } GameObject gameObject = targetEntity.Actor.gameObject; if (_actionData.Ability.Is <AttackAbility>()) { _hoverData.AddCommand(new SilhouetteCommand(gameObject, SilhouetteType.Enemy)); continue; } if (targetEntity.Is <Character>()) { _hoverData.AddCommand(new SilhouetteCommand(gameObject, SilhouetteType.Ally)); continue; } ContainerModule container = targetEntity.GetModule <ContainerModule>(); if (container != null) { HighlightContainer(container); continue; } if (TryHighlightDoor(targetEntity)) { continue; } _hoverData.AddCommand(new SilhouetteCommand(gameObject, SilhouetteType.PointOfInterest)); } }