public static bool DrawInMenu_Prefix(CombinedRing __instance, SpriteBatch spriteBatch, Vector2 location, float scaleSize, float transparency, float layerDepth, StackDrawType drawStackNumber, Color color, bool drawShadow) { try { if (__instance.combinedRings.Count >= 2) { // Always use base rings as the sprites to draw. The first pair that are combined on the left hand side get used as the sprite. if (__instance.combinedRings[0] is CombinedRing) { __instance.combinedRings[0].drawInMenu(spriteBatch, location, scaleSize, transparency, layerDepth, drawStackNumber, color, drawShadow); return(false); // don't run original logic } else if (__instance.combinedRings[1] is CombinedRing) { __instance.combinedRings[1].drawInMenu(spriteBatch, location, scaleSize, transparency, layerDepth, drawStackNumber, color, drawShadow); return(false); // don't run original logic } } return(true); // run original logic } catch (Exception ex) { ModMonitor.Log($"Failed in {nameof(DrawInMenu_Prefix)}:\n{ex}", LogLevel.Error); return(true); // run original logic } }
public static void LoadDisplayFields_Postfix(CombinedRing __instance) { try { if (GetCombinedRingTotal(__instance) >= 8) { string description = "Many Rings forged into one:\n\n"; foreach (KeyValuePair <string, int> entry in GetCombinedRings(__instance)) { description += String.Format("{1}x {0}\n", entry.Key, entry.Value); } ModMonitor.Log($"Combined Ring description is {description}", LogLevel.Trace); __instance.description = description.Trim(); } } catch (Exception ex) { ModMonitor.Log($"Failed in {nameof(LoadDisplayFields_Postfix)}:\n{ex}", LogLevel.Error); } }
public CombinedRingSpriteInfo(CombinedRing ring) : base(Game1.objectSpriteSheet, Game1.getSourceRectForStandardTileSheet(Game1.objectSpriteSheet, ring.indexInTileSheet.Value, SObject.spriteSheetTileSize, SObject.spriteSheetTileSize)) { Ring = ring; }