Example #1
0
 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;
 }
Example #2
0
        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;
        }