public ProductionTabsLogic(Widget widget, World world) { this.world = world; tabs = widget.Get<ProductionTabsWidget>("PRODUCTION_TABS"); world.ActorAdded += tabs.ActorChanged; world.ActorRemoved += tabs.ActorChanged; Game.BeforeGameStart += UnregisterEvents; var typesContainer = Ui.Root.Get(tabs.TypesContainer); foreach (var i in typesContainer.Children) SetupProductionGroupButton(i as ProductionTypeButtonWidget); }
public void InitPlayerWidgets(World world, Widget playerRoot) { // Real player var playerWidgets = Game.LoadWidget(world, "PLAYER_WIDGETS", playerRoot, new WidgetArgs()); playerWidgets.IsVisible = () => true; var sidebarRoot = playerWidgets.Get("SIDEBAR_BACKGROUND"); BindOrderButton<SellOrderGenerator>(world, sidebarRoot, "SELL_BUTTON", "sell"); BindOrderButton<RepairOrderGenerator>(world, sidebarRoot, "REPAIR_BUTTON", "repair"); var playerResources = world.LocalPlayer.PlayerActor.Trait<PlayerResources>(); sidebarRoot.Get<LabelWidget>("CASH").GetText = () => "${0}".F(playerResources.DisplayCash + playerResources.DisplayOre); queueTabs = playerWidgets.Get<ProductionTabsWidget>("PRODUCTION_TABS"); world.ActorAdded += queueTabs.ActorChanged; world.ActorRemoved += queueTabs.ActorChanged; var queueTypes = sidebarRoot.Get("PRODUCTION_TYPES"); SetupProductionGroupButton(queueTypes.Get<ToggleButtonWidget>("BUILDING"), "Building"); SetupProductionGroupButton(queueTypes.Get<ToggleButtonWidget>("DEFENSE"), "Defense"); SetupProductionGroupButton(queueTypes.Get<ToggleButtonWidget>("INFANTRY"), "Infantry"); SetupProductionGroupButton(queueTypes.Get<ToggleButtonWidget>("VEHICLE"), "Vehicle"); SetupProductionGroupButton(queueTypes.Get<ToggleButtonWidget>("AIRCRAFT"), "Aircraft"); playerWidgets.Get<ButtonWidget>("OPTIONS_BUTTON").OnClick = OptionsClicked; var cheatsButton = playerWidgets.Get<ButtonWidget>("CHEATS_BUTTON"); cheatsButton.OnClick = () => { if (menu != MenuType.None) Ui.CloseWindow(); menu = MenuType.Cheats; Game.OpenWindow("CHEATS_PANEL", new WidgetArgs() {{"onExit", () => menu = MenuType.None }}); }; cheatsButton.IsVisible = () => world.LocalPlayer != null && world.LobbyInfo.GlobalSettings.AllowCheats; var winLossWatcher = playerWidgets.Get<LogicTickerWidget>("WIN_LOSS_WATCHER"); winLossWatcher.OnTick = () => { if (world.LocalPlayer.WinState != WinState.Undefined) Game.RunAfterTick(() => { playerRoot.RemoveChildren(); InitObserverWidgets(world, playerRoot); }); }; }
public ProductionTabsLogic(Widget widget, World world) { this.world = world; tabs = widget.Get <ProductionTabsWidget>("PRODUCTION_TABS"); world.ActorAdded += tabs.ActorChanged; world.ActorRemoved += tabs.ActorChanged; Game.BeforeGameStart += UnregisterEvents; var typesContainer = Ui.Root.Get(tabs.TypesContainer); foreach (var i in typesContainer.Children) { SetupProductionGroupButton(i as ProductionTypeButtonWidget); } }
public ProductionTabsLogic(Widget widget, World world) { this.world = world; tabs = widget.Get <ProductionTabsWidget>("PRODUCTION_TABS"); world.ActorAdded += tabs.ActorChanged; world.ActorRemoved += tabs.ActorChanged; Game.BeforeGameStart += UnregisterEvents; var typesContainer = Ui.Root.Get(tabs.TypesContainer); foreach (var i in typesContainer.Children) { SetupProductionGroupButton(i as ProductionTypeButtonWidget); } var background = Ui.Root.GetOrNull(tabs.BackgroundContainer); if (background != null) { var palette = tabs.Parent.Get <ProductionPaletteWidget>(tabs.PaletteWidget); var icontemplate = background.Get("ICON_TEMPLATE"); Action <int, int> updateBackground = (oldCount, newCount) => { background.RemoveChildren(); for (var i = 0; i < newCount; i++) { var x = i % palette.Columns; var y = i / palette.Columns; var bg = icontemplate.Clone(); bg.Bounds.X = palette.IconSize.X * x; bg.Bounds.Y = palette.IconSize.Y * y; background.AddChild(bg); } }; palette.OnIconCountChanged += updateBackground; // Set the initial palette state updateBackground(0, 0); } }
public void InitPlayerWidgets(World world, Widget playerRoot) { // Real player var playerWidgets = Game.LoadWidget(world, "PLAYER_WIDGETS", playerRoot, new WidgetArgs()); playerWidgets.IsVisible = () => true; var sidebarRoot = playerWidgets.GetWidget("SIDEBAR_BACKGROUND"); var sellButton = sidebarRoot.GetWidget<ToggleButtonWidget>("SELL_BUTTON"); sellButton.OnClick = () => world.ToggleInputMode<SellOrderGenerator>(); sellButton.IsToggled = () => world.OrderGenerator is SellOrderGenerator; var sellIcon = sellButton.GetWidget<ImageWidget>("ICON"); sellIcon.GetImageName = () => world.OrderGenerator is SellOrderGenerator ? "sell-active" : "sell"; var repairButton = sidebarRoot.GetWidget<ToggleButtonWidget>("REPAIR_BUTTON"); repairButton.IsDisabled = () => !RepairOrderGenerator.PlayerIsAllowedToRepair( world ); repairButton.OnClick = () => world.ToggleInputMode<RepairOrderGenerator>(); repairButton.IsToggled = () => world.OrderGenerator is RepairOrderGenerator; var repairIcon = repairButton.GetWidget<ImageWidget>("ICON"); repairIcon.GetImageName = () => repairButton.IsDisabled() ? "repair-disabled" : world.OrderGenerator is RepairOrderGenerator ? "repair-active" : "repair"; var playerResources = world.LocalPlayer.PlayerActor.Trait<PlayerResources>(); sidebarRoot.GetWidget<LabelWidget>("CASH_DISPLAY").GetText = () => "${0}".F(playerResources.DisplayCash + playerResources.DisplayOre); queueTabs = playerWidgets.GetWidget<ProductionTabsWidget>("PRODUCTION_TABS"); world.ActorAdded += queueTabs.ActorChanged; world.ActorRemoved += queueTabs.ActorChanged; var queueTypes = sidebarRoot.GetWidget("PRODUCTION_TYPES"); SetupProductionGroupButton(queueTypes.GetWidget<ToggleButtonWidget>("BUILDING"), "Building"); SetupProductionGroupButton(queueTypes.GetWidget<ToggleButtonWidget>("DEFENSE"), "Defense"); SetupProductionGroupButton(queueTypes.GetWidget<ToggleButtonWidget>("INFANTRY"), "Infantry"); SetupProductionGroupButton(queueTypes.GetWidget<ToggleButtonWidget>("VEHICLE"), "Vehicle"); SetupProductionGroupButton(queueTypes.GetWidget<ToggleButtonWidget>("AIRCRAFT"), "Aircraft"); playerWidgets.GetWidget<ButtonWidget>("OPTIONS_BUTTON").OnClick = OptionsClicked; var cheatsButton = playerWidgets.GetWidget<ButtonWidget>("CHEATS_BUTTON"); cheatsButton.OnClick = () => { if (menu != MenuType.None) Widget.CloseWindow(); menu = MenuType.Cheats; Game.OpenWindow("CHEATS_PANEL", new WidgetArgs() {{"onExit", () => menu = MenuType.None }}); }; cheatsButton.IsVisible = () => world.LocalPlayer != null && world.LobbyInfo.GlobalSettings.AllowCheats; var winLossWatcher = playerWidgets.GetWidget<LogicTickerWidget>("WIN_LOSS_WATCHER"); winLossWatcher.OnTick = () => { if (world.LocalPlayer.WinState != WinState.Undefined) Game.RunAfterTick(() => { playerRoot.RemoveChildren(); InitObserverWidgets(world, playerRoot); }); }; }
public void InitPlayerWidgets(World world, Widget playerRoot) { // Real player var playerWidgets = Game.LoadWidget(world, "PLAYER_WIDGETS", playerRoot, new WidgetArgs()); playerWidgets.IsVisible = () => true; var sidebarRoot = playerWidgets.Get("SIDEBAR_BACKGROUND"); BindOrderButton <SellOrderGenerator>(world, sidebarRoot, "SELL_BUTTON", "sell"); BindOrderButton <RepairOrderGenerator>(world, sidebarRoot, "REPAIR_BUTTON", "repair"); var powerManager = world.LocalPlayer.PlayerActor.Trait <PowerManager>(); var playerResources = world.LocalPlayer.PlayerActor.Trait <PlayerResources>(); sidebarRoot.Get <LabelWidget>("CASH").GetText = () => "${0}".F(playerResources.DisplayCash + playerResources.DisplayOre); queueTabs = playerWidgets.Get <ProductionTabsWidget>("PRODUCTION_TABS"); world.ActorAdded += queueTabs.ActorChanged; world.ActorRemoved += queueTabs.ActorChanged; var queueTypes = sidebarRoot.Get("PRODUCTION_TYPES"); SetupProductionGroupButton(queueTypes.Get <ToggleButtonWidget>("BUILDING"), "Building"); SetupProductionGroupButton(queueTypes.Get <ToggleButtonWidget>("DEFENSE"), "Defense"); SetupProductionGroupButton(queueTypes.Get <ToggleButtonWidget>("INFANTRY"), "Infantry"); SetupProductionGroupButton(queueTypes.Get <ToggleButtonWidget>("VEHICLE"), "Vehicle"); SetupProductionGroupButton(queueTypes.Get <ToggleButtonWidget>("AIRCRAFT"), "Aircraft"); playerWidgets.Get <ButtonWidget>("OPTIONS_BUTTON").OnClick = OptionsClicked; var cheatsButton = playerWidgets.Get <ButtonWidget>("CHEATS_BUTTON"); cheatsButton.OnClick = () => { if (menu != MenuType.None) { Ui.CloseWindow(); } menu = MenuType.Cheats; Game.OpenWindow("CHEATS_PANEL", new WidgetArgs() { { "onExit", () => menu = MenuType.None } }); }; cheatsButton.IsVisible = () => world.LocalPlayer != null && world.LobbyInfo.GlobalSettings.AllowCheats; var winLossWatcher = playerWidgets.Get <LogicTickerWidget>("WIN_LOSS_WATCHER"); winLossWatcher.OnTick = () => { if (world.LocalPlayer.WinState != WinState.Undefined) { Game.RunAfterTick(() => { playerRoot.RemoveChildren(); InitObserverWidgets(world, playerRoot); }); } }; var siloBar = playerWidgets.Get <ResourceBarWidget>("SILOBAR"); siloBar.GetProvided = () => playerResources.OreCapacity; siloBar.GetUsed = () => playerResources.Ore; siloBar.TooltipFormat = "Silo Usage: {0}/{1}"; siloBar.RightIndicator = true; siloBar.GetBarColor = () => { if (playerResources.Ore == playerResources.OreCapacity) { return(Color.Red); } if (playerResources.Ore >= 0.8 * playerResources.OreCapacity) { return(Color.Orange); } return(Color.LimeGreen); }; var powerBar = playerWidgets.Get <ResourceBarWidget>("POWERBAR"); powerBar.GetProvided = () => powerManager.PowerProvided; powerBar.GetUsed = () => powerManager.PowerDrained; powerBar.TooltipFormat = "Power Usage: {0}/{1}"; powerBar.RightIndicator = false; powerBar.GetBarColor = () => { if (powerManager.PowerState == PowerState.Critical) { return(Color.Red); } if (powerManager.PowerState == PowerState.Low) { return(Color.Orange); } return(Color.LimeGreen); }; }