private static void SetRequirement(string gearName, int numberRequired, Action_WhiteoutGearRequirements instance, string journalDisplayName = null) { var itemRequirements = instance.requiredItemsList.value; var displayNames = instance.requiredItemsHeaderList; //var itemRequirement = itemRequirements.FirstOrDefault(i => i.name == gearName); var itemRequirement = FirstRequirementWithSameName(itemRequirements, gearName); if (itemRequirement != null) { if (numberRequired == 0) { var index = itemRequirements.IndexOf(itemRequirement); itemRequirements.RemoveAt(index); displayNames.RemoveAt(index); } else { itemRequirement.amount = numberRequired; } } else { if (numberRequired == 0) { return; } // TODO: Condition required? var newItemRequirement = new InventoryItemRequirement(gearName, numberRequired, false, null, null); itemRequirements.Add(newItemRequirement); displayNames.Add(journalDisplayName); } }
public override void Notify(DOLEvent e, object sender, EventArgs args) { base.Notify(e, sender, args); GamePlayer player = sender as GamePlayer; if (player == null) { return; } AbstractQuest quest = player.IsDoingQuest(typeof(BonesToBlades)); if (quest == null) { return; } if (Step > 0 && e == GameLivingEvent.EnemyKilled) { EnemyKilledEventArgs gArgs = (EnemyKilledEventArgs)args; for (int i = 0; i < mobTypes.Length; i++) { if (gArgs.Target.Name.IndexOf(mobTypes[i]) >= 0) { InventoryItemRequirement requirement = new InventoryItemRequirement(null, armBone, 2, eComparator.Less); if (requirement.Check(e, player, args)) { GiveItemAction action = new GiveItemAction(null, armBone, null); action.Perform(e, sender, args); } if (!requirement.Check(e, player, args)) { if (quest.Step == 1) { quest.Step = 2; } } return; } } } }
public override void Notify(DOLEvent e, object sender, EventArgs args) { base.Notify(e, sender, args); GamePlayer player = sender as GamePlayer; if (player == null) return; AbstractQuest quest = player.IsDoingQuest(typeof(BonesToBlades)); if (quest == null) return; if (Step > 0 && e == GameLivingEvent.EnemyKilled) { EnemyKilledEventArgs gArgs = (EnemyKilledEventArgs)args; for (int i = 0; i < mobTypes.Length; i++) { if (gArgs.Target.Name.IndexOf(mobTypes[i]) >= 0) { InventoryItemRequirement requirement = new InventoryItemRequirement(null, armBone, 2, eComparator.Less); if (requirement.Check(e, player, args)) { GiveItemAction action = new GiveItemAction(null, armBone, null); action.Perform(e, sender, args); } if (!requirement.Check(e, player, args)) { if (quest.Step == 1) { quest.Step = 2; } } return; } } } }