public override void Give(Simulation simulation) { short a = simulation.Flags[A_ID], b = simulation.Flags[B_ID]; simulation.Flags[A_ID] = SimulationTool.Operate(a, b, Operation); }
public override void Give(Simulation simulation) { if (!simulation.Flags.TryGetValue(ID, out short a)) { a = 0; } simulation.Flags[ID] = SimulationTool.Modify(a, Value, Modification); }
public override bool Check(Simulation simulation) { if (!simulation.Flags.TryGetValue(ID, out short flag)) { return(Allow_Unset); } return(SimulationTool.Compare(flag, (short)(Value ? 1 : 0), Logic)); }
public override bool Check(Simulation simulation) { if (!simulation.Currencies.TryGetValue(GUID, out uint cur)) { cur = 0; simulation.Currencies[GUID] = 0; } return(SimulationTool.Compare(cur, Value, Logic)); }
public override bool Check(Simulation simulation) { if (!simulation.Flags.TryGetValue(A_ID, out short flagA)) { return(Allow_A_Unset); } if (!simulation.Flags.TryGetValue(B_ID, out short flagB)) { return(Allow_B_Unset); } return(SimulationTool.Compare(flagA, flagB, Logic)); }
public override bool Check(Simulation simulation) { return(SimulationTool.Compare(simulation.Skillset, Value, Logic)); }
public QuestView_Window(NPCCharacter character, Simulation simulation, NPCQuest quest, EMode mode = EMode.PREVIEW) { InitializeComponent(); Quest = quest; switch (mode) { case EMode.PREVIEW: acceptButton.IsEnabled = false; acceptButton.Visibility = Visibility.Collapsed; continueButton.IsEnabled = false; continueButton.Visibility = Visibility.Collapsed; break; case EMode.BEGIN_QUEST: continueButton.IsEnabled = false; continueButton.Visibility = Visibility.Collapsed; break; case EMode.END_QUEST: acceptButton.IsEnabled = false; acceptButton.Visibility = Visibility.Collapsed; break; } formatter.Markup(title, SimulationTool.ReplacePlaceholders(character, simulation, quest.Title)); formatter.Markup(desc, SimulationTool.ReplacePlaceholders(character, simulation, quest.description)); foreach (NPC.Conditions.Condition c in quest.conditions) { string text = c.FormatCondition(simulation); if (text == null) { continue; } Grid g = new Grid(); Border b = new Border() { BorderBrush = App.Current.Resources["AccentColor"] as Brush, BorderThickness = new Thickness(1), CornerRadius = new CornerRadius(4) }; TextBlock tb = new TextBlock(); formatter.Markup(tb, text); Label l = new Label() { Content = tb }; Image i = new Image() { Width = 26, Height = 26, Margin = new Thickness(5) }; g.ColumnDefinitions.Add(new ColumnDefinition() { Width = GridLength.Auto }); g.ColumnDefinitions.Add(new ColumnDefinition()); g.Children.Add(i); g.Children.Add(l); Grid.SetColumn(l, 1); if (c is IUIL_Icon uIL && uIL.UpdateIcon(out var img)) { i.Visibility = Visibility.Visible; i.Source = img; }
public override bool Check(Simulation simulation) { return(SimulationTool.Compare(simulation.GetQuestStatus(ID), Status, Logic)); }
public VendorView_Window(NPCCharacter character, Simulation simulation, NPCVendor vendor) { InitializeComponent(); Vendor = vendor; Simulation = simulation; formatter.Markup(title, SimulationTool.ReplacePlaceholders(character, simulation, vendor.Title)); formatter.Markup(desc, SimulationTool.ReplacePlaceholders(character, simulation, vendor.vendorDescription)); UIElement createElement(VendorItem item) { Button b = new Button() { Margin = new Thickness(2.5), MinHeight = 64, HorizontalContentAlignment = HorizontalAlignment.Stretch, VerticalContentAlignment = VerticalAlignment.Stretch }; Grid g = new Grid(); g.ColumnDefinitions.Add(new ColumnDefinition() { Width = GridLength.Auto }); g.ColumnDefinitions.Add(new ColumnDefinition()); TextBlock tb = new TextBlock(); formatter.Markup(tb, LocalizationManager.Current.Simulation["Vendor"].Translate("Item_Cost", item.cost)); Label l = new Label() { HorizontalAlignment = HorizontalAlignment.Right, VerticalAlignment = VerticalAlignment.Bottom, Content = tb }; string nameKey; switch (item.type) { case ItemType.ITEM: nameKey = "Item_Name"; break; case ItemType.VEHICLE: nameKey = "Vehicle_Name"; break; default: throw new Exception("Invalid ItemType"); } TextBlock tb2 = new TextBlock(); Label l2 = new Label() { HorizontalAlignment = HorizontalAlignment.Left, VerticalAlignment = VerticalAlignment.Top, Content = tb2 }; TextBlock tb3 = new TextBlock() { FontSize = 9 }; Label l3 = new Label() { HorizontalAlignment = HorizontalAlignment.Left, VerticalAlignment = VerticalAlignment.Top, Content = tb3 }; Grid g2 = new Grid(); g2.RowDefinitions.Add(new RowDefinition()); g2.RowDefinitions.Add(new RowDefinition()); g2.RowDefinitions.Add(new RowDefinition()); g2.Children.Add(l); g2.Children.Add(l2); g2.Children.Add(l3); Grid.SetRow(l2, 0); Grid.SetRow(l3, 1); Grid.SetRow(l, 2); g.Children.Add(g2); Grid.SetColumn(g2, 1); if (item.type == ItemType.ITEM && GameAssetManager.TryGetAsset <GameItemAsset>(item.id, out var asset)) { g.Children.Add(new Image() { Source = new BitmapImage(asset.ImagePath), Width = 48, Height = 48, Margin = new Thickness(5) }); formatter.Markup(tb2, asset.name); formatter.Markup(tb3, asset.itemDescription); } else { formatter.Markup(tb2, LocalizationManager.Current.Simulation["Vendor"].Translate(nameKey, item.id)); tb3.Text = string.Empty; } b.Content = g; return(b); } System.Collections.Generic.IEnumerable <VendorItem> buyItems = vendor.BuyItems.Where(d => d.conditions.All(c => c.Check(simulation))); System.Collections.Generic.IEnumerable <VendorItem> sellItems = vendor.SellItems.Where(d => d.conditions.All(c => c.Check(simulation))); if (!vendor.disableSorting) // enable sorting { buyItems = buyItems.OrderBy(v => v.id); sellItems = sellItems.OrderBy(v => v.id); } foreach (VendorItem b in buyItems) { UIElement elem = createElement(b); elem.PreviewMouseLeftButtonDown += (sender, e) => { if (Simulation.Items.Any(d => d.ID == b.id)) { Simulation.Items.Remove(Simulation.Items.First(d => d.ID == b.id)); changeCurrency(b.cost, false); } }; buyingPanel.Children.Add(elem); } foreach (VendorItem s in sellItems) { UIElement elem = createElement(s); elem.PreviewMouseLeftButtonDown += (sender, e) => { if (getCurrency() >= s.cost) { changeCurrency(s.cost, true); switch (s.type) { case ItemType.ITEM: { Simulation.Items.Add(new Simulation.Item() { ID = s.id, Amount = 1, Quality = 100 }); } break; case ItemType.VEHICLE: { MessageBox.Show(LocalizationManager.Current.Simulation["Vendor"].Translate("Vehicle_Spawned", s.id, s.spawnPointID)); } break; } } }; sellingPanel.Children.Add(elem); } if (string.IsNullOrEmpty(vendor.currency)) { isCurrency = false; } else { isCurrency = true; } setupCurrency(); updateCurrency(); }
private string FormatText(string raw) { return(SimulationTool.ReplacePlaceholders(Character, Simulation, raw)); }
public override bool Check(Simulation simulation) { return(SimulationTool.Compare(simulation.Reputation, Value, Logic)); }
public override void Give(Simulation simulation) { simulation.Flags[ID] = SimulationTool.Modify(simulation.Flags[ID], (short)Random.NextInt32(Min_Value, Max_Value + 1), Modification); }
public override bool Check(Simulation simulation) { return(SimulationTool.Compare(simulation.Time, Second, Logic)); }
public VendorView_Window(NPCCharacter character, Simulation simulation, NPCVendor vendor) { InitializeComponent(); Vendor = vendor; Simulation = simulation; formatter.Markup(title, SimulationTool.ReplacePlaceholders(character, simulation, vendor.vendorTitle)); formatter.Markup(desc, SimulationTool.ReplacePlaceholders(character, simulation, vendor.vendorDescription)); UIElement createElement(VendorItem item) { Button b = new Button() { Margin = new Thickness(2.5), Height = 64, HorizontalContentAlignment = HorizontalAlignment.Stretch, VerticalContentAlignment = VerticalAlignment.Stretch }; Grid g = new Grid(); TextBlock tb = new TextBlock(); formatter.Markup(tb, LocalizationManager.Current.Simulation["Vendor"].Translate("Item_Cost", item.cost)); Label l = new Label() { HorizontalAlignment = HorizontalAlignment.Right, VerticalAlignment = VerticalAlignment.Bottom, Content = tb }; string nameKey; switch (item.type) { case ItemType.ITEM: nameKey = "Item_Name"; break; case ItemType.VEHICLE: nameKey = "Vehicle_Name"; break; default: throw new Exception("Invalid ItemType"); } TextBlock tb2 = new TextBlock(); formatter.Markup(tb2, LocalizationManager.Current.Simulation["Vendor"].Translate(nameKey, item.id)); Label l2 = new Label() { HorizontalAlignment = HorizontalAlignment.Left, VerticalAlignment = VerticalAlignment.Top, Content = tb2 }; g.Children.Add(l); g.Children.Add(l2); b.Content = g; return(b); } System.Collections.Generic.IEnumerable <VendorItem> buyItems = vendor.BuyItems.Where(d => d.conditions.All(c => c.Check(simulation))); System.Collections.Generic.IEnumerable <VendorItem> sellItems = vendor.SellItems.Where(d => d.conditions.All(c => c.Check(simulation))); if (!vendor.disableSorting) // enable sorting { buyItems = buyItems.OrderBy(v => v.id); sellItems = sellItems.OrderBy(v => v.id); } foreach (VendorItem b in buyItems) { UIElement elem = createElement(b); elem.PreviewMouseLeftButtonDown += (sender, e) => { if (Simulation.Items.Any(d => d.ID == b.id)) { Simulation.Items.Remove(Simulation.Items.First(d => d.ID == b.id)); changeCurrency(b.cost, false); } }; buyingPanel.Children.Add(elem); } foreach (VendorItem s in sellItems) { UIElement elem = createElement(s); elem.PreviewMouseLeftButtonDown += (sender, e) => { if (getCurrency() >= s.cost) { changeCurrency(s.cost, true); switch (s.type) { case ItemType.ITEM: { Simulation.Items.Add(new Simulation.Item() { ID = s.id, Amount = 1, Quality = 100 }); } break; case ItemType.VEHICLE: { MessageBox.Show(LocalizationManager.Current.Simulation["Vendor"].Translate("Vehicle_Spawned", s.id, s.spawnPointID)); } break; } } }; sellingPanel.Children.Add(elem); } updateCurrency(); }
public override bool Check(Simulation simulation) { return(SimulationTool.Compare(simulation.Experience, Value, Logic)); }
public override bool Check(Simulation simulation) { System.Collections.Generic.List <Simulation.Item> items = simulation.Items.Where(d => d.ID == ID).ToList(); return(SimulationTool.Compare(items.Count, Amount, Logic_Type.Greater_Than_Or_Equal_To)); }
public QuestView_Window(NPCCharacter character, Simulation simulation, NPCQuest quest, EMode mode = EMode.PREVIEW) { InitializeComponent(); Quest = quest; switch (mode) { case EMode.PREVIEW: acceptButton.IsEnabled = false; acceptButton.Visibility = Visibility.Collapsed; continueButton.IsEnabled = false; continueButton.Visibility = Visibility.Collapsed; break; case EMode.BEGIN_QUEST: continueButton.IsEnabled = false; continueButton.Visibility = Visibility.Collapsed; break; case EMode.END_QUEST: acceptButton.IsEnabled = false; acceptButton.Visibility = Visibility.Collapsed; break; } formatter.Markup(title, SimulationTool.ReplacePlaceholders(character, simulation, quest.title)); formatter.Markup(desc, SimulationTool.ReplacePlaceholders(character, simulation, quest.description)); foreach (NPC.Conditions.Condition c in quest.conditions) { string text = c.FormatCondition(simulation); if (text == null) { continue; } Border b = new Border() { BorderBrush = App.Current.Resources["AccentColor"] as Brush, BorderThickness = new Thickness(1), CornerRadius = new CornerRadius(4) }; TextBlock tb = new TextBlock(); formatter.Markup(tb, text); Label l = new Label() { Content = tb }; b.Child = l; goalsPanel.Children.Add(b); } foreach (NPC.Rewards.Reward r in quest.rewards) { string text = r.FormatReward(simulation); if (text == null) { continue; } Border b = new Border() { BorderBrush = App.Current.Resources["AccentColor"] as Brush, BorderThickness = new Thickness(1), CornerRadius = new CornerRadius(4) }; TextBlock tb = new TextBlock(); formatter.Markup(tb, text); Label l = new Label() { Content = tb }; b.Child = l; rewardsPanel.Children.Add(b); } }