private static bool Blastenheimer5000Used(GameObject go, Character user) { var cast = user.SpellCast; cast.Start(CannonPrepId); user.IncMechanicCount(SpellMechanic.Rooted); switch (go.EntryId) { case (uint)Blastenheimer5000ElwynnId: { user.TeleportTo(ElwynnTelePosition, ElwynnTeleOrientation); } break; case (uint)Blastenheimer5000TerokkarId: { user.TeleportTo(TerokkarTelePosition, TerokkarTeleOrientation); } break; case (uint)Blastenheimer5000MulgoreId: { user.TeleportTo(MulgoreTelePosition, MulgoreTeleOrientation); } break; default: { user.DecMechanicCount(SpellMechanic.Rooted); return false; } } go.PlaySound(8476); user.CallDelayed(2000, obj => FireCannon(user)); return true; }
private static bool Blastenheimer5000Used(GameObject go, Character user) { var cast = user.SpellCast; var target = go.GetNearbyGO(CannonTarget, 1000); if(target != null) { var dist = go.GetDistance(target); } switch (go.EntryId) { case (uint)Blastenheimer5000ElwynnId: { cast.Start(CannonPrepId); user.StandState = StandState.Sit; user.IncMechanicCount(SpellMechanic.Rooted); var facing = target != null ? go.GetAngleTowards(target) : ElwynnTeleOrientation; user.TeleportTo(ElwynnTelePosition, facing); } break; case (uint)Blastenheimer5000TerokkarId: { cast.Start(CannonPrepId); user.StandState = StandState.Sit; user.IncMechanicCount(SpellMechanic.Rooted); var facing = target != null ? go.GetAngleTowards(target) : TerokkarTeleOrientation; user.TeleportTo(TerokkarTelePosition, facing); } break; case (uint)Blastenheimer5000MulgoreId: { cast.Start(CannonPrepMulgore); user.StandState = StandState.Sit; user.IncMechanicCount(SpellMechanic.Rooted); var facing = target != null ? go.GetAngleTowards(target) : MulgoreTeleOrientation; user.TeleportTo(MulgoreTelePosition, facing); } break; default: { user.DecMechanicCount(SpellMechanic.Rooted); return false; } } go.PlaySound(8476); user.CallDelayed(2000, obj => FireCannon(user)); return true; }