void Update() { //ATTEMPT AT FINITE STATE if (Vector3.Distance(transform.position, target.position) > sightDistance) //if player is out of sight enemy should wander around { print("This is where the AI should wander"); //Wander(); } if (Vector3.Distance(transform.position, target.position) < retreatDistance) //if playertank distance is less than retreat distance then move away from player { transform.position = Vector3.MoveTowards(transform.position, target.position, -speed * Time.deltaTime); } //SHOOTING AT PLAYER if (Vector3.Distance(transform.position, target.transform.position) < sightDistance) //if player is within sight distance, AI fires shells at a certain rate at the players position { //Debug.Log("enemy is within distance"); var relativePos = target.position - transform.position; var rotation = Quaternion.LookRotation(relativePos); transform.rotation = rotation; //looks at player once in sight shotCounter1 -= Time.deltaTime; if (shotCounter1 <= 0) //fires bullet and resets shotcounter if it goes below or equal to 0 { shotCounter1 = timeBetweenShots1; ShellController newShell = Instantiate(shell1, shellStart1.position, shellStart1.rotation) as ShellController; //creates a new shell at the shell start position newShell.speed = shellSpeed1; } } }
public ShellForm(IKernel kernel) { Asserter.AssertIsNotNull(kernel, "kernel"); _kernel = kernel; _applicationService = _kernel.Get<IApplicationService>(); _storageService = _kernel.Get<IStorageService>(); _settingsService = _kernel.Get<ISettingsService>(); _siteService = _kernel.Get<ISiteService>(); _controller = _kernel.Get<ShellController>(); Asserter.AssertIsNotNull(_applicationService, "_applicationService"); Asserter.AssertIsNotNull(_storageService, "_storageService"); Asserter.AssertIsNotNull(_settingsService, "_settingsService"); Asserter.AssertIsNotNull(_siteService, "_siteService"); InitializeComponent(); _siteService.Register(SiteNames.ContentSite, contentPanel); _siteService.Register(SiteNames.NavigationSite, navigationPanel); _siteService.Register(SiteNames.ContentActionsSite, contentActionPanel); SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw, true); }
public ShellForm(IKernel kernel) { Asserter.AssertIsNotNull(kernel, "kernel"); _kernel = kernel; _applicationService = _kernel.Get <IApplicationService>(); _storageService = _kernel.Get <IStorageService>(); _settingsService = _kernel.Get <ISettingsService>(); _siteService = _kernel.Get <ISiteService>(); _controller = _kernel.Get <ShellController>(); Asserter.AssertIsNotNull(_applicationService, "_applicationService"); Asserter.AssertIsNotNull(_storageService, "_storageService"); Asserter.AssertIsNotNull(_settingsService, "_settingsService"); Asserter.AssertIsNotNull(_siteService, "_siteService"); InitializeComponent(); _siteService.Register(SiteNames.ContentSite, contentPanel); _siteService.Register(SiteNames.NavigationSite, navigationPanel); _siteService.Register(SiteNames.ContentActionsSite, contentActionPanel); SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw, true); }
public void shellHit(ShellController shell) { float damage = shell.stats.damage; if (currentStats.health / baseStats.health > Upgrades.fullHpDamage_startHpMin - GameData.upgrades.fullHpDamage_lvl * Upgrades.fullHpDamage_HpMinDecimal) { damage *= Upgrades.fullHpDamage_damageMultiplier * GameData.upgrades.fullHpDamage_lvl; } if (GameData.upgrades.burn_lvl > 0) { if (Random.Range(0, 100) < Upgrades.burn_startChance + Upgrades.burn_plusChance * GameData.upgrades.burn_lvl) { startBurning(); } } if (GameData.upgrades.slow_lvl > 0) { if (Random.Range(0, 100) < GameData.upgrades.slow_getSlowChance()) { setSpeed(currentStats.speed * GameData.upgrades.slow_getSlowAmount()); Debug.Log("SLOW"); } } takeDamage(damage); }
static void Main(string[] args) { ICore core = new Core.Core(); IShellUI ui = new ShellCLI(); ShellController shellController = new ShellController(ui, core); shellController.Ui.Start(); }
public ShellFlyoutRenderer(IShellContext shellContext, Context context) : base(context) { _scrimColor = Color.Default; _shellContext = shellContext; Shell.PropertyChanged += OnShellPropertyChanged; ShellController.AddAppearanceObserver(this, Shell); }
private void FinishRespawn() { transform.DOScale(0.1f, 0.5f).onComplete += FinishRespawnScale; var shellController = Shell.GetComponent <ShellController>(); shellController.SetAttachedToTurtle(DefaultShellPivot, FinishEquipShell); this.shellController = shellController; }
void OnCollisionEnter2D(Collision2D collision) { GameObject explosionInst = Instantiate(shellExplosion, this.transform.position, this.transform.rotation); ShellController shellC = explosionInst.GetComponent <ShellController>(); shellC.playerM = playerM; shellC.Init(BalanceTweaks.GlobalInstance.explosiveGun.shellDamage, 0, 1.1f); }
public ShellFlyoutView(IShellContext shellContext, Context context) : base(context) { _scrimBrush = Brush.Default; _shellContext = shellContext; _flyoutHeight = LP.MatchParent; Shell.PropertyChanged += OnShellPropertyChanged; ShellController.AddAppearanceObserver(this, Shell); }
public override void StartAttack() { //base.StartAttack(); var instanceShell = Instantiate(shell, shellSocket.position, Quaternion.identity); ShellController shellController = instanceShell.GetComponent <ShellController>(); shellController.HitColliderEvent += ContactCollider; }
protected virtual void OnPageSelected(int position) { if (_selecting) { return; } var shellSection = ShellSection; var visibleItems = SectionController.GetItems(); // This mainly happens if all of the items that are part of this shell section // vanish. Android calls `OnPageSelected` with position zero even though the view pager is // empty if (visibleItems.Count >= position) { return; } var shellContent = visibleItems[position]; if (shellContent == shellSection.CurrentItem) { return; } var stack = shellSection.Stack.ToList(); bool result = ShellController.ProposeNavigation(ShellNavigationSource.ShellContentChanged, (ShellItem)shellSection.Parent, shellSection, shellContent, stack, true); if (result) { UpdateCurrentItem(shellContent); } else if (shellSection?.CurrentItem != null) { var currentPosition = visibleItems.IndexOf(shellSection.CurrentItem); _selecting = true; // Android doesn't really appreciate you calling SetCurrentItem inside a OnPageSelected callback. // It wont crash but the way its programmed doesn't really anticipate re-entrancy around that method // and it ends up going to the wrong location. Thus we must invoke. _viewPager.Post(() => { if (currentPosition < _viewPager.ChildCount && _toolbarTracker != null) { _viewPager.SetCurrentItem(currentPosition, false); UpdateCurrentItem(shellSection.CurrentItem); } _selecting = false; }); } }
private void Awake() { if (Instance != null && Instance != this) { Destroy(gameObject); } else { Instance = this; } }
public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath) { int section = indexPath.Section; int row = indexPath.Row; var context = Groups[section][row]; DataTemplate template = ShellController.GetFlyoutItemDataTemplate(context); if (context is IMenuItemController) { if (DefaultMenuItemTemplate != null && _context.Shell.MenuItemTemplate == template) { template = DefaultMenuItemTemplate; } } else { if (DefaultItemTemplate != null && _context.Shell.ItemTemplate == template) { template = DefaultItemTemplate; } } var cellId = ((IDataTemplateController)template.SelectDataTemplate(context, _context.Shell)).IdString; UIContainerCell cell; if (!_cells.TryGetValue(context, out cell)) { var view = (View)template.CreateContent(context, _context.Shell); cell = new UIContainerCell(cellId, view); // Set Parent after binding context so parent binding context doesn't propagate to view cell.BindingContext = context; view.Parent = _context.Shell; } else { var view = _cells[context].View; cell.Disconnect(); cell = new UIContainerCell(cellId, view); cell.BindingContext = context; } cell.SetAccessibilityProperties(context); _cells[context] = cell; cell.TableView = tableView; cell.IndexPath = indexPath; cell.ViewMeasureInvalidated += OnViewMeasureInvalidated; return(cell); }
public override void OnActionReceived(ActionBuffers actionBuffers) { ActionSegment <int> actions = actionBuffers.DiscreteActions; int rotation = actions[0]; int movement = actions[1]; int attack = actions[2]; currentAttackState = (AttackState)attack; currentMovementState = (MovementState)movement; currentRotationState = (RotationState)rotation; switch (currentRotationState) { case RotationState.LEFT: rb.transform.Rotate(Vector3.down, velocityRotateY); break; case RotationState.RIGTH: rb.transform.Rotate(Vector3.up, velocityRotateY); break; } switch (currentMovementState) { case MovementState.FORWARD: rb.velocity = this.transform.forward * velocityMovement; break; case MovementState.BACKWARD: rb.velocity = -this.transform.forward * velocityMovement; break; } if (currentAttackState == AttackState.ATTACK && timeLastBullet >= 1.0f / rateFire) { GameObject shellToSend = null; foreach (GameObject s in shells) { if (!s.activeSelf) { shellToSend = s; } } if (shellToSend != null) { shellToSend.transform.position = this.spawnBullet.position; shellToSend.transform.rotation = this.transform.rotation; ShellController controller = shellToSend.GetComponent <ShellController>(); controller.BoomBoom(healthController); timeLastBullet = 0; } } }
public void FinishThrowAnimation() { var throwDirection = DefaultThrowDirection; throwDirection.x = facingRight ? throwDirection.x : throwDirection.x * -1; shellController.ThrowShell(throwDirection, DefaultThrowForce); shellController = null; Lift(false); shellEquipped = false; Shell.GetComponent <SpriteRenderer>().sortingOrder = -2; SoundManager.Instance.PlaySound("throw"); }
public ShellFlyoutRenderer(IShellContext shellContext, Context context) : base(context) { _scrimBrush = Brush.Default; _shellContext = shellContext; _flyoutHeight = LP.MatchParent; Shell.PropertyChanged += OnShellPropertyChanged; ShellController.AddAppearanceObserver(this, Shell); this.DrawerClosed += OnDrawerClosed; this.DrawerSlide += OnDrawerSlide; this.DrawerOpened += OnDrawerOpened; this.DrawerStateChanged += OnDrawerStateChanged; }
static void Main() { using (var controller = new ShellController()) { try { controller.Run(); } catch (Exception unhandledException) { controller.Log.Error(unhandledException); } } }
public override void OnInspectorGUI() { DrawDefaultInspector(); ShellController shellController = (ShellController)target; if (GUILayout.Button("更新Shell")) { shellController.UpdateShellEditor(); } if (GUILayout.Button("删除Shell")) { shellController.ClearShellEditor(); } }
public ShellItemRenderer(ShellItem item) { Initialize(); ShellItem = item; ShellItem.PropertyChanged += OnShellItemPropertyChanged; if (ShellItem.Items is INotifyCollectionChanged notifyCollectionChanged) { notifyCollectionChanged.CollectionChanged += OnShellItemsCollectionChanged; } ShellController.AddAppearanceObserver(this, ShellItem); UpdateTabsItems(); UpdateCurrentItem(ShellItem.CurrentItem); }
public void ManuallyRegisterShell() { var aggregateCatalog = new AggregateCatalog(); var typeCatalog = new TypeCatalog(typeof (FakeController)); aggregateCatalog.Catalogs.Add(typeCatalog); var assemblyCatalog = new AssemblyCatalog(Assembly.Load("TMShopClient")); aggregateCatalog.Catalogs.Add(assemblyCatalog); var container = new CompositionContainer(aggregateCatalog); var shell = new ShellController(new ShellModel()); container.ComposeExportedValue<IShell>(shell); var controller = container.GetExportedValue<FakeController>(); Assert.AreSame(controller.Shell, shell); }
void Update() { if (isFiring) //if shots are being fired then the shot counter will be counting down { shotCounter -= Time.deltaTime; if (shotCounter <= 0) //fires bullet and resets shotcounter if it goes below or equal to 0 { shotCounter = timeBetweenShots; ShellController newShell = Instantiate(shell, shellStart.position, shellStart.rotation) as ShellController; //creates a new shell at the shell start position newShell.speed = shellSpeed; } } else { shotCounter = 0; } }
void TabLayoutMediator.ITabConfigurationStrategy.OnConfigureTab(TabLayout.Tab tab, int position) { if (_selecting) { return; } tab.SetText(new String(SectionController.GetItems()[position].Title)); // TODO : Find a way to make this cancellable var shellSection = ShellSection; var shellContent = SectionController.GetItems()[position]; if (shellContent == shellSection.CurrentItem) { return; } var stack = shellSection.Stack.ToList(); bool result = ShellController.ProposeNavigation(ShellNavigationSource.ShellContentChanged, (ShellItem)shellSection.Parent, shellSection, shellContent, stack, true); if (result) { UpdateCurrentItem(shellContent); } else if (shellSection?.CurrentItem != null) { var currentPosition = SectionController.GetItems().IndexOf(shellSection.CurrentItem); _selecting = true; // Android doesn't really appreciate you calling SetCurrentItem inside a OnPageSelected callback. // It wont crash but the way its programmed doesn't really anticipate re-entrancy around that method // and it ends up going to the wrong location. Thus we must invoke. Device.BeginInvokeOnMainThread(() => { if (currentPosition < _viewPager.ChildCount && _toolbarTracker != null) { _viewPager.SetCurrentItem(currentPosition, false); UpdateCurrentItem(shellSection.CurrentItem); } _selecting = false; }); } }
private void DoRightGripPressed(object sender, ControllerInteractionEventArgs e) { if (canFire) { GameObject shell = Instantiate(shellTemplate); ShellController shellController = shell.GetComponent <ShellController>(); shellController.barrel = barrel; shellFireAudio.GetComponent <AudioSource>().Play(); canFire = false; StartCoroutine("TurretShellFired", shell); } else { clickAudio.GetComponent <AudioSource>().Play(); } }
public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath) { int section = indexPath.Section; int row = indexPath.Row; var context = Groups[section][row]; DataTemplate template = ShellController.GetFlyoutItemDataTemplate(context); if (context is IMenuItemController) { if (DefaultMenuItemTemplate != null && _context.Shell.MenuItemTemplate == template) { template = DefaultMenuItemTemplate; } } else { if (DefaultItemTemplate != null && _context.Shell.ItemTemplate == template) { template = DefaultItemTemplate; } } var cellId = ((IDataTemplateController)template.SelectDataTemplate(context, _context.Shell)).IdString; var cell = (UIContainerCell)tableView.DequeueReusableCell(cellId); if (cell == null) { var view = (View)template.CreateContent(context, _context.Shell); cell = new UIContainerCell(cellId, view); // Set Parent after binding context so parent binding context doesn't propagate to view cell.BindingContext = context; view.Parent = _context.Shell; } else { cell.BindingContext = context; } cell.SetAccessibilityProperties(context); _views[context] = cell.View; return(cell); }
private void ToggleInstaller_CheckedChanged(object sender, EventArgs e) { switch (ToggleInstaller.Checked) { case true: integration.InstallToolbar(); // Show the deskband ShellController shellController = new ShellController(); shellController.callDeskband(); break; case false: integration.UninstallToolbar(); break; } }
void IShellFlyoutRenderer.AttachFlyout(IShellContext context, UIViewController content) { Context = context; Shell = Context.Shell; Detail = content; Shell.PropertyChanged += OnShellPropertyChanged; PanGestureRecognizer = new UIPanGestureRecognizer(HandlePanGesture); PanGestureRecognizer.ShouldRecognizeSimultaneously += (a, b) => { // This handles tapping outside the open flyout if (a is UIPanGestureRecognizer pr && pr.State == UIGestureRecognizerState.Failed && b is UITapGestureRecognizer && b.State == UIGestureRecognizerState.Ended && IsOpen) { IsOpen = false; LayoutSidebar(true); } return(false); }; PanGestureRecognizer.ShouldReceiveTouch += (sender, touch) => { if (!context.AllowFlyoutGesture || _flyoutBehavior != FlyoutBehavior.Flyout) { return(false); } var view = View; CGPoint loc = touch.LocationInView(View); if (touch.View is UISlider || touch.View is MPVolumeView || IsSwipeView(touch.View) || (loc.X > view.Frame.Width * 0.1 && !IsOpen)) { return(false); } return(true); }; ShellController.AddAppearanceObserver(this, Shell); IsOpen = Shell.FlyoutIsPresented; }
void Update() { if (Vector3.Distance(transform.position, target.transform.position) < sightDistance) //if player is within sight distance, AI fires shells at a certain rate at the players position { //Debug.Log("enemy is within distance"); var relativePos = target.position - transform.position; var rotation = Quaternion.LookRotation(relativePos); transform.rotation = rotation; // looks at the player once it is in sight shotCounter1 -= Time.deltaTime; if (shotCounter1 <= 0) //fires bullet and resets shotcounter if it goes below or equal to 0 { shotCounter1 = timeBetweenShots1; ShellController newShell = Instantiate(shell1, shellStart1.position, shellStart1.rotation) as ShellController; //creates a new shell at the shell start position newShell.speed = shellSpeed1; } } }
protected override void Dispose(bool disposing) { base.Dispose(disposing); if (disposing) { if (!_disposed) { ShellController.RemoveAppearanceObserver(this); _disposed = true; Shell.PropertyChanged -= OnShellPropertyChanged; ((IShellController)Shell).RemoveFlyoutBehaviorObserver(this); Context = null; Shell = null; Detail = null; } } }
/// <summary> /// Interact with nearable object. Can bem the shell, interrupt, item /// </summary> public void Interact() { // Check proximity. foreach (var interactable in interactables) { var scInteractable = interactable.GetComponentInParent <ShellController>(); if (scInteractable) { scInteractable.SetAttachedToTurtle(DefaultShellPivot, FinishEquipShell); this.shellController = scInteractable; } var collectableItem = interactable.GetComponent <CollectableItem>(); if (collectableItem) { inventory.Add(collectableItem); CheckVictory(); } interactable.Interact(); } }
public ShellItemView(ShellItem item, IMauiContext context) { ShellItem = item; MauiContext = context; //Initialize(); _mainLayout = new EBox(NativeParent); _mainLayout.SetLayoutCallback(OnLayout); _mainLayout.Show(); _contentHolder = new EBox(NativeParent); _contentHolder.Show(); _mainLayout.PackEnd(_contentHolder); ShellItem.PropertyChanged += OnShellItemPropertyChanged; if (ShellItem.Items is INotifyCollectionChanged notifyCollectionChanged) { notifyCollectionChanged.CollectionChanged += OnShellItemsCollectionChanged; } ShellController.AddAppearanceObserver(this, ShellItem); UpdateTabsItems(); UpdateCurrentItem(ShellItem.CurrentItem); }
public void Fire() { if (timeAccumulator > weaponTweaks.fireDelaySeconds) { float anglePerShell = weaponTweaks.shotSpread / weaponTweaks.shellsPerShot; float startAngle = this.transform.rotation.eulerAngles.z - (weaponTweaks.shotSpread / 2); float endAngle = startAngle + weaponTweaks.shotSpread; for (int i = 0; i < weaponTweaks.shellsPerShot; i++) { float shellAngle = Random.Range(startAngle, endAngle); GameObject shellInst = Instantiate(weaponTweaks.shellPrefab, shellSpawn.position, Quaternion.Euler(0, 0, shellAngle), playerM.gameObject.transform); shellInst.layer = LAYER_START_INDEX + playerM.playerNum; ShellController shellC = shellInst.GetComponent <ShellController>(); shellC.playerM = playerM; shellC.Init(weaponTweaks.shellDamage, weaponTweaks.shellSpeed, weaponTweaks.shellDestroyTime); } timeAccumulator = 0.0F; } }
public void GetShell(int dmg, float speed, TankSides side) { ShellController shellInstance = Instantiate(shell, tankTransform.position, tankTransform.rotation); shellInstance.Initialize(dmg, speed, side); }