// ====================================================================================================== // private void leftClickCheck() { if (!Input.GetMouseButtonDown(0)) { return; } // select unselect pocket with item in it if (State == MouseState.CAN_SELECT_OR_UNSELECT_SOCKET) { bool isItemAlreadySelected = (Party.Instance.SelectedMember.SelectedPocketItem == ItemInPocketUnderMouse); Party.Instance.SelectedMember.SelectedPocketItem = isItemAlreadySelected ? null : ItemInPocketUnderMouse; return; // should return to prevent losing the selection of the selected item } // melee attack if (State == MouseState.CAN_MELEE_HIT) { Party.Instance.SelectedMember.MeleeAttack(CreatureUnderMouse); } // ranged attack if (State == MouseState.CAN_RANGED_HIT) { Party.Instance.SelectedMember.RangedAttack(CreatureUnderMouse); } // walk if (State == MouseState.CAN_WALK || State == MouseState.CAN_WALK_NORTH || State == MouseState.CAN_WALK_SOUTH || State == MouseState.CAN_WALK_WEST || State == MouseState.CAN_WALK_EAST || State == MouseState.CAN_PICKUP || State == MouseState.CAN_USE_STAIRS || State == MouseState.CAN_WALK_VILLAGE || State == MouseState.CAN_WALK_TO_KILL) { DungeonTurnManager.Instance.PartyTargetPosition = DungeonTileUnderMouse.Position; } // potion drink if (State == MouseState.CAN_DRINK) { Party.Instance.SelectedMember.ConsumeItemFromPocket(ItemInPocketUnderMouse); } // activate scroll from pocket (when no need for target) if (State == MouseState.CAN_CAST_FROM_POCKET) { (ItemInPocketUnderMouse as Scroll).Activate(); } Scroll selectedScroll = (Party.Instance.SelectedMember.SelectedPocketItem as Scroll); // activate scroll on dungeon tile if (State == MouseState.CAN_CAST_ON_DUNGEON_TILE) { selectedScroll.TargetDungeonTile = DungeonTileUnderMouse; selectedScroll.Activate(); } // activate scroll on creature if (State == MouseState.CAN_CAST_ON_CREATURE) { selectedScroll.TargetDungeonTile = DungeonTileUnderMouse; selectedScroll.TargetCreature = CreatureUnderMouse; selectedScroll.Activate(); } // activate scroll on party member if (State == MouseState.CAN_CAST_ON_PORTRAIT) { selectedScroll.TargetCreature = PortraitUnderMouse.Creature; selectedScroll.Activate(); } // throw ammo if (State == MouseState.CAN_THROW) { GameObject projectilePrefab = Party.Instance.SelectedMember.SelectedPocketItem.Projectile; ProjectileManager.Instance.ShootProjectile(projectilePrefab, Party.Instance.transform.position, CreatureUnderMouse, 1, 6); // TODO: define throwing ammo damage } // no matter what, after click - lose the selection Party.Instance.SelectedMember.SelectedPocketItem = null; }