private static void BoardToolManager_OnSwitchTool(BoardTool obj) { if (obj is CreatureMoveBoardTool) { CreatureBoardAsset selectedCreature = Minis.GetSelected(); draggingPersistentEffect = selectedCreature.GetPersistentEffect(); if (draggingPersistentEffect != null && draggingPersistentEffect.RotationIsLocked) { trackingDraggedMiniForRotationLock = true; } } else { if (draggingPersistentEffect != null && trackingDraggedMiniForRotationLock) { CreatureBoardAsset selectedCreature = Minis.GetSelected(); if (selectedCreature != null) { selectedCreature.SetRotationDegrees(draggingPersistentEffect.LockedRotation); } } draggingPersistentEffect = null; trackingDraggedMiniForRotationLock = false; } }
private static void BoardToolManager_OnSwitchTool(BoardTool obj) { CreatureBoardAsset selectedMini = GetSelected(); creatureBoardAssetEventArgs.SetMini(selectedMini); //Log.Debug($"BoardToolManager_OnSwitchTool - {obj}"); if (obj is DefaultBoardTool) { if (selectedMini != lastSelectedMini) { OnNewMiniSelected(creatureBoardAssetEventArgs); } OnMiniSelected(creatureBoardAssetEventArgs); } lastSelectedMini = selectedMini; }
private void BoardToolManager_OnSwitchTool(BoardTool obj) { Talespire.Log.Indent(); try { if (obj is CreatureMoveBoardTool || obj is CreatureKeyMoveBoardTool) { if (Data.Movement == GroupMovementMode.FollowTheLeader) { CreatureBoardAsset selectedMini = Talespire.Minis.GetSelected(); if (selectedMini == OwnerCreature) { Talespire.Log.Debug($"Owner selected and moving!"); } else { Talespire.Log.Debug($"Owner NOT selected!"); } } moveToolActive = true; // Something is moving! Talespire.Log.Debug($"// Something is moving!"); return; } if (!(obj is DefaultBoardTool)) { return; } if (OwnerCreature != null) { Talespire.Log.Debug($"OwnerCreature != null"); float newAltitude = OwnerCreature.GetFlyingAltitude(); if (newAltitude != lastAltitude) { Talespire.Log.Warning($"Altitude changed from {lastAltitude} to {newAltitude}!"); } lastAltitude = newAltitude; CheckAltitudeAgainSoon(); if (moveToolActive) { RefreshIndicators(); Vector3 newPosition = OwnerCreature.PlacedPosition; Vector3 deltaMove = newPosition - lastGroupPosition; MoveGroup(deltaMove); lastGroupPosition = newPosition; } else { Talespire.Log.Debug($"moveTool is not Active"); } } CreatureBoardAsset selected = Talespire.Minis.GetSelected(); if (selectingLookTarget && selected != null) { selectingLookTarget = false; if (OwnerCreature != null) { OwnerCreature.Creature.Speak($"Now looking at {selected.GetOnlyCreatureName()}."); } Data.Target = selected.CreatureId.ToString(); DataChanged(); } if (selected?.Creature.CreatureId.ToString() != OwnerID) { if (selected == null) { lastCreatureSelected = null; } else { lastCreatureSelected = selected.CreatureId.ToString(); if (Data.Look == LookTowardMode.NearestOutsider) { LookToNearestOutsiders(GetMemberAssets()); } else if (Data.Look == LookTowardMode.NearestMember) { List <CreatureBoardAsset> assets = GetMemberAssets(); if (assets.Contains(selected)) // We just moved a member... { FaceClosest(assets, assets); } } else if (Data.Look == LookTowardMode.Creature && lastCreatureSelected == Data.Target) { List <CreatureBoardAsset> assets = GetMemberAssets(); foreach (CreatureBoardAsset asset in assets) { asset.RotateToFacePosition(selected.PlacedPosition); } } } if (needToClearGroupIndicators) { ClearGroupIndicators(); } } moveToolActive = false; } finally { Talespire.Log.Unindent(); } }