public static void AddComBatBuff(BuffOption buff) { if (!CombatBuffs.ContainsKey(buff.id)) { CombatBuffs.Add(buff.id, buff); } }
public static BuffOption[] getRandomBuff(int count) { List <BuffOption> list = Enumerable.ToList(CommonBuffs.Values); List <BuffOption> returnList = new List <BuffOption>(); while (returnList.Count < 3) { BuffOption item = list[rand.Next(list.Count)]; if (item != null && !returnList.Contains(item)) { returnList.Add(item); } } return(returnList.ToArray()); }
public static bool buffPlayer(BuffOption buff) { List <StardewValley.Buff> Duppiclates = Game1.buffsDisplay.otherBuffs.Where(b => b.source == buff.displayName).ToList(); if (Duppiclates.Count() > 0) { BNC_Core.Logger.Log("Found Duplicates", StardewModdingAPI.LogLevel.Debug); foreach (StardewValley.Buff buffitem in Game1.buffsDisplay.otherBuffs.ToArray()) { if (buffitem.source == buff.displayName) { buff.CombineBuffs(buffitem); Game1.buffsDisplay.otherBuffs.Remove(buffitem); } } } Buff buffselected = new Buff(buff.farming, buff.fishing, buff.mining, 0, 0, buff.foraging, buff.crafting, buff.maxStamina, buff.magneticRadius, buff.speed, buff.defense, buff.attack, buff.duration, buff.displayName, buff.displayName); if (buff.color != Color.White) { buffselected.glow = buff.color; } Game1.buffsDisplay.addOtherBuff(buffselected); if (buff.Equals(CommonBuffs["potato"])) { if (Game1.player.Stamina > Game1.player.MaxStamina) { Game1.player.Stamina = Game1.player.MaxStamina; } } Game1.addHUDMessage(new HUDMessage(buff.shortdesc, buff.isBuff ? 4 : 3)); return(true); }
public static void buffPlayer(BuffOption buff) { Buff buffselected = new Buff(buff.farming, buff.fishing, buff.mining, 0, 0, buff.foraging, buff.crafting, buff.maxStamina, buff.magneticRadius, buff.speed, buff.defense, buff.attack, buff.duration, buff.displayName, buff.displayName); buffselected.source = buff.displayName; if (buff.color != Color.White) { buffselected.glow = buff.color; } Game1.buffsDisplay.addOtherBuff(buffselected); if (buff.Equals(CommonBuffs["potato"])) { if (Game1.player.Stamina > Game1.player.MaxStamina) { Game1.player.Stamina = Game1.player.MaxStamina; } } Game1.addHUDMessage(new HUDMessage(buff.shortdesc, buff.isBuff ? 4 : 3)); }
public static void UpdateDay() { if (BNC_Core.BNCSave.nextBuffDate <= -1) { int[] Min_Max = Config.getBuffMinMax(); BNC_Core.BNCSave.nextBuffDate = setNextBuffDay(Min_Max[0], Min_Max[1]); } if (BNC_Core.BNCSave.nextBuffDate-- == 0) { BuffOption[] buffs = getRandomBuff(3); if (Config.ShowDebug()) { foreach (BuffOption buff in buffs) { BNC_Core.Logger.Log($"buff selecting from {buff.displayName}"); } } if (TwitchIntergration.isConnected()) { TwitchIntergration.StartBuffPoll(buffs); } else { BuffOption selected = buffs[rand.Next(buffs.Count() - 1)]; if (Config.ShowDebug()) { BNC_Core.Logger.Log($"Selected {selected.displayName}"); } buffPlayer(selected); int[] Min_Max = Config.getBuffMinMax(); BNC_Core.BNCSave.nextBuffDate = setNextBuffDay(Min_Max[0], Min_Max[1]); } } }
public static void AddBuffToQueue(BuffOption buff) { queuedBuff.Add(buff); }
public override ActionResponse Handle() { BuffOption buff = new BuffOption(id, Name); //If not Default if (Duration != 1200 && Duration > 0 && Duration < 5000) { buff.setDuration(Duration); } buff.addShortDesc(ShortDesc); if (Attack != 0) { buff.add_attack(Attack); } if (Defense != 0) { buff.add_defense(Defense); } if (Farming != 0) { buff.add_farming(Farming); } if (Foraging != 0) { buff.add_foraging(Foraging); } if (MaxStamina != 0) { buff.add_maxStamina(MaxStamina); } if (Speed != 0) { buff.add_speed(Speed); } if (Luck != 0) { buff.add_luck(Luck); } if (MagneticRadius != 0) { buff.add_magneticRadius(MagneticRadius); } if (Mining != 0) { buff.add_mining(Mining); } if (Glowing == 1) { var prop = typeof(Color).GetProperty(GlowingColor); if (prop != null) { buff.setGlow((Color)prop.GetValue(GlowingColor)); } else { buff.setGlow(Color.LightBlue); } } if (buff == null) { BNC_Core.Logger.Log($"Could not find buff type of: {id}", StardewModdingAPI.LogLevel.Error); return(ActionResponse.Done); } else { BuffManager.AddBuffToQueue(buff); return(ActionResponse.Done); } }