public void YeetOutside(SlimeType type) { PlayerUnitSelectable selectable = unitHandler.GetSelectable(type); selectable.UnitController.di.camera.CameraSegment = unitController.di.camera.CameraSegment; selectable.GetYeeted(unitController.di.yeetModule); selectable.SetActive(); }
public void OnSlimeMerge(SlimeType typeToMerge) { if (typeToMerge == SlimeType.King) { throw new Exception("Cannot merge slime type king"); } if (assemblySelectable.IsActive) { if (assemblySelectable.Stats.HasType(typeToMerge)) { // double collision call (controller & otherController) return; } PlayerUnitSelectable selectableToMerge = selectables.Get(typeToMerge); bool selectAssembly = selectableToMerge.IsSelected; selectableToMerge.SetInactiveAndDeselect(); assemblySelectable.MergeInside(typeToMerge); assemblySelectable.SetActive(); if (selectAssembly) { assemblySelectable.Select(); } } else { PlayerUnitSelectable selectableToMerge = selectables.Get(typeToMerge); bool selectAssembly = selectableToMerge.IsSelected; selectableToMerge.SetInactiveAndDeselect(); PlayerUnitSelectable kingSelectable = selectables.Get(SlimeType.King); selectAssembly = selectAssembly || kingSelectable.IsSelected; kingSelectable.SetInactiveAndDeselect(); assemblySelectable.MergeInside(typeToMerge); assemblySelectable.SetActive(); if (selectAssembly) { assemblySelectable.Select(); } } AudioSingleton.PlaySound(AudioSingleton.Instance.clips.merge); OnMergeChange(); }