Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ SetMount()

void Terraria.Mount.SetMount ( int m,
Player mountedPlayer,
bool faceLeft = false )
inline

Definition at line 5258 of file Mount.cs.

5259 {
5260 if (_type == m || m <= -1 || m >= MountID.Count || (m == 5 && mountedPlayer.wet))
5261 {
5262 return;
5263 }
5264 if (_active)
5265 {
5266 mountedPlayer.ClearBuff(_data.buff);
5267 if (Cart)
5268 {
5269 mountedPlayer.ClearBuff(_data.extraBuff);
5270 mountedPlayer.cartFlip = false;
5271 mountedPlayer.lastBoost = Vector2.Zero;
5272 }
5273 mountedPlayer.fullRotation = 0f;
5274 mountedPlayer.fullRotationOrigin = Vector2.Zero;
5275 _mountSpecificData = null;
5276 }
5277 else
5278 {
5279 _active = true;
5280 }
5281 _flyTime = 0;
5282 _type = m;
5283 _data = mounts[m];
5285 if (Cart && !faceLeft && !Directional)
5286 {
5287 mountedPlayer.AddBuff(_data.extraBuff, 3600);
5288 _flipDraw = true;
5289 }
5290 else
5291 {
5292 mountedPlayer.AddBuff(_data.buff, 3600);
5293 _flipDraw = false;
5294 }
5295 if (_type == 44)
5296 {
5297 mountedPlayer.velocity *= 0.2f;
5298 mountedPlayer.dash = 0;
5299 mountedPlayer.dashType = 0;
5300 mountedPlayer.dashDelay = 0;
5301 mountedPlayer.dashTime = 0;
5302 }
5303 if (_type == 9 && _abilityCooldown < 20)
5304 {
5305 _abilityCooldown = 20;
5306 }
5307 if (_type == 46 && _abilityCooldown < 40)
5308 {
5309 _abilityCooldown = 40;
5310 }
5311 mountedPlayer.position.Y += mountedPlayer.height;
5312 for (int i = 0; i < mountedPlayer.shadowPos.Length; i++)
5313 {
5314 mountedPlayer.shadowPos[i].Y += mountedPlayer.height;
5315 }
5316 mountedPlayer.height = 42 + _data.heightBoost;
5317 mountedPlayer.position.Y -= mountedPlayer.height;
5318 for (int j = 0; j < mountedPlayer.shadowPos.Length; j++)
5319 {
5320 mountedPlayer.shadowPos[j].Y -= mountedPlayer.height;
5321 }
5322 mountedPlayer.ResetAdvancedShadows();
5323 if (_type == 7 || _type == 8)
5324 {
5325 mountedPlayer.fullRotationOrigin = new Vector2(mountedPlayer.width / 2, mountedPlayer.height / 2);
5326 }
5327 if (_type == 8)
5328 {
5329 _mountSpecificData = new DrillMountData();
5330 }
5331 if (_type == 35)
5332 {
5333 _mountSpecificData = new ExtraFrameMountData();
5334 }
5336 if (mountedPlayer.whoAmI == Main.myPlayer)
5337 {
5338 NetMessage.SendData(13, -1, -1, null, mountedPlayer.whoAmI);
5339 }
5340 }
static int Count
Definition MountID.cs:124
int _abilityCooldown
Definition Mount.cs:317
bool _flipDraw
Definition Mount.cs:291
bool _active
Definition Mount.cs:331
MountData _data
Definition Mount.cs:287
void DoSpawnDust(Player mountedPlayer, bool isDismounting)
Definition Mount.cs:5342
bool Directional
Definition Mount.cs:495
object _mountSpecificData
Definition Mount.cs:329
static MountData[] mounts
Definition Mount.cs:259
float _fatigueMax
Definition Mount.cs:311

References Terraria.Mount._abilityCooldown, Terraria.Mount._active, Terraria.Mount._data, Terraria.Mount._fatigueMax, Terraria.Mount._flipDraw, Terraria.Mount._flyTime, Terraria.Mount._mountSpecificData, Terraria.Mount._type, Terraria.Mount.MountData.buff, Terraria.Mount.Cart, Terraria.ID.MountID.Count, Terraria.Mount.Directional, Terraria.Mount.DoSpawnDust(), Terraria.Mount.MountData.extraBuff, Terraria.Mount.MountData.fatigueMax, Terraria.Mount.MountData.heightBoost, Terraria.Mount.mounts, Terraria.Main.myPlayer, Terraria.NetMessage.SendData(), Microsoft.Xna.Framework.Graphics.Vector2, and Microsoft.Xna.Framework.Vector2.Zero.

Referenced by Terraria.Player.QuickMount().