Skip to content

Commit

Permalink
Revise Teleport Target (#7531)
Browse files Browse the repository at this point in the history
* Revise teleport target

---------

Co-authored-by: Stephen C. Wills <[email protected]>
  • Loading branch information
kphoenix137 and StephenCWills authored Nov 12, 2024
1 parent 09ba753 commit 228aa7e
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion Source/player.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3154,8 +3154,18 @@ void CheckPlrSpell(bool isShiftHeld, SpellID spellID, SpellType spellType)
LastMouseButtonAction = MouseActionType::SpellPlayerTarget;
NetSendCmdParam5(true, CMD_SPELLPID, PlayerUnderCursor->getId(), static_cast<int8_t>(spellID), static_cast<uint8_t>(spellType), spellLevel, spellFrom);
} else {
Point targetedTile = cursPosition;
if (spellID == SpellID::Teleport && myPlayer.executedSpell.spellId == SpellID::Teleport) {
// Check if the player is attempting to queue Teleport onto a tile that is currently being targeted with Teleport, or a nearby tile
if (cursPosition.WalkingDistance(myPlayer.position.temp) <= 1) {
// Get the relative displacement from the player's current position to the cursor position
WorldTileDisplacement relativeMove = cursPosition - static_cast<Point>(myPlayer.position.tile);
// Target the tile the relative distance away from the player's targeted Teleport tile
targetedTile = myPlayer.position.temp + relativeMove;
}
}
LastMouseButtonAction = MouseActionType::Spell;
NetSendCmdLocParam4(true, CMD_SPELLXY, cursPosition, static_cast<int8_t>(spellID), static_cast<uint8_t>(spellType), spellLevel, spellFrom);
NetSendCmdLocParam4(true, CMD_SPELLXY, targetedTile, static_cast<int8_t>(spellID), static_cast<uint8_t>(spellType), spellLevel, spellFrom);
}
}

Expand Down

0 comments on commit 228aa7e

Please sign in to comment.