private static void ProcessSkillTEST(Player player, Mooege.Core.GS.Map.World world, SecondaryAnimationPowerMessage message) { switch (message.PowerSNO) { case Skills.Skills.Wizard.Utility.Archon: world.AddEffect(new FXEffect { Actor = player, EffectID = 162301, DurationInTicks = (60 * 15) }); break; } }
private static void ProcessSkillTEST(Player player, Mooege.Core.GS.Map.World world, TargetMessage message) { Vector3D targetPosition = message.Field2.Position; Mooege.Core.GS.Actors.Actor target = null; if (message.TargetID != 0xFFFFFFFF) { target = world.GetActorByDynamicId(message.TargetID); if (target != null) { targetPosition = target.Position; if (target is Mooege.Core.GS.Actors.Monster) { (target as Mooege.Core.GS.Actors.Monster).Die(); } } } switch (message.PowerSNO) { case Skills.Skills.Wizard.Offensive.Hydra: world.AddEffect(new FXEffect { Actor = player, EffectID = 81103, DurationInTicks = (60 * 9), Position = targetPosition, NeedsActor = true }); // needs to lower to groud world.AddEffect(new HydraFXEffect { Actor = player, EffectID = 80745, DurationInTicks = (60 * 9), Position = targetPosition, AttackOffset = 0 }); world.AddEffect(new HydraFXEffect { Actor = player, EffectID = 80757, DurationInTicks = (60 * 9), Position = targetPosition, AttackOffset = (6 * 4) }); world.AddEffect(new HydraFXEffect { Actor = player, EffectID = 80758, DurationInTicks = (60 * 9), Position = targetPosition, AttackOffset = (6 * 8) }); break; } }
private static void ProcessSkillMonk(Player player, Mooege.Core.GS.Map.World world, SecondaryAnimationPowerMessage message) { int effectID = 0; switch (message.PowerSNO) { case Skills.Skills.Monk.Mantras.MantraOfEvasion: world.AddEffect(new FXEffect { Actor = player, EffectID = 143964, }); world.AddEffect(new FXEffect { Actor = player, DurationInTicks = (60 * 120), EffectID = 99694, Attached = true }); // 60 ticks/s * 120 = 120s break; case Skills.Skills.Monk.Mantras.MantraOfHealing: world.AddEffect(new FXEffect { Actor = player, EffectID = 99948, }); world.AddEffect(new FXEffect { Actor = player, DurationInTicks = (60 * 120), EffectID = 140190, Attached = true }); // 60 ticks/s * 120 = 120s break; case Skills.Skills.Monk.Mantras.MantraOfConviction: world.AddEffect(new FXEffect { Actor = player, EffectID = 95955, }); world.AddEffect(new FXEffect { Actor = player, DurationInTicks = (60 * 120), EffectID = 146990, Attached = true }); // 60 ticks/s * 120 = 120s break; case Skills.Skills.Monk.Mantras.MantraOfRetribution: world.AddEffect(new FXEffect { Actor = player, EffectID = 142974, }); world.AddEffect(new FXEffect { Actor = player, DurationInTicks = (60 * 120), EffectID = 142987, Attached = true }); // 60 ticks/s * 120 = 120s break; case Skills.Skills.Monk.SpiritSpenders.LethalDecoy: effectID = (player.Properties.Gender == 0) ? 99241 : 208435; world.AddEffect(new FXEffect { Actor = player, DurationInTicks = (60 * 5), EffectID = effectID, NeedsActor = true }); // 60 ticks/s * 5 = 5s break; case Skills.Skills.Monk.SpiritSpenders.BreathOfHeaven: world.AddEffect(new FXEffect { Actor = player, EffectID = 101174, }); /* * move to effect Actor.Attributes[GameAttribute.Resource_Cur, player.ResourceID] -= 75f; GameAttributeMap atm = new GameAttributeMap(); atm[GameAttribute.Resource_Cur, player.ResourceID] = Actor.Attributes[GameAttribute.Resource_Cur, player.ResourceID]; atm.SendMessage(client, player.DynamicID); * */ break; case Skills.Skills.Monk.SpiritSpenders.InnerSanctuary: world.AddEffect(new FXEffect { Actor = player, DurationInTicks = (60 * 8), EffectID = 98557, NeedsActor = true }); break; case Skills.Skills.Monk.SpiritSpenders.Serenity: world.AddEffect(new FXEffect { Actor = player, EffectID = 123156, }); world.AddEffect(new FXEffect { Actor = player, EffectID = 142890, }); world.AddEffect(new FXEffect { Actor = player, EffectID = 143230, DurationInTicks = (60 * 3) }); break; case Skills.Skills.Monk.SpiritSpenders.MysticAlly: effectID = (player.Properties.Gender == 0) ? 169904 : 123885; world.AddEffect(new FXEffect { Actor = player, DurationInTicks = -1, EffectID = effectID, NeedsActor = true }); // until is destroyed break; case Skills.Skills.Monk.SpiritSpenders.BlindingFlash: world.AddEffect(new FXEffect { Actor = player, EffectID = 2588 }); break; } }
private static void ProcessSkillMonk(Player player, Mooege.Core.GS.Map.World world, TargetMessage message) { Vector3D targetPosition = message.Field2.Position; Mooege.Core.GS.Actors.Actor target = null; if (message.TargetID != 0xFFFFFFFF) { target = world.GetActorByDynamicId(message.TargetID); if (target != null) { targetPosition = target.Position; } } int startingTick = world.Game.TickCounter; int effectID = 0; int masterEffectID = 0; /* // broken ticking if (message.Field6 != null) { startingTick = message.Field6.Field1; } */ switch (message.PowerSNO) { case Skills.Skills.Monk.SpiritGenerator.FistsOfThunder: effectID = 143570; // cast masterEffectID = 96176; // projectile switch (message.Field5) { case 0: startingTick += (int)(6 * 3 / player.Attributes[GameAttribute.Attacks_Per_Second_Total]); break; case 1: effectID = 143561;//143569; // cast masterEffectID = 96176;//96177; startingTick += (int)(6 * 2 / player.Attributes[GameAttribute.Attacks_Per_Second_Total]); break; case 2: effectID = 143566; // cast masterEffectID = 96178; startingTick += (int)(6 * 5 / player.Attributes[GameAttribute.Attacks_Per_Second_Total]); break; } world.AddEffect(new FXEffect { Actor = player, EffectID = effectID, StartingTick = (message.Field5 == 2) ? startingTick - (int)(6 * 5 / player.Attributes[GameAttribute.Attacks_Per_Second_Total]) : startingTick }); world.AddEffect(new AttackEffect { Actor = player, EffectID = masterEffectID, StartingTick = startingTick, DamageTypeOverride = 2 }); break; case Skills.Skills.Monk.SpiritGenerator.ExplodingPalm: effectID = 142471; masterEffectID = 143841; switch (message.Field5) { case 0: startingTick += (int)(6 / player.Attributes[GameAttribute.Attacks_Per_Second_Total]); break; case 1: startingTick += (int)(6 * 2 / player.Attributes[GameAttribute.Attacks_Per_Second_Total]); break; case 2: effectID = 142473; masterEffectID = 143473; startingTick += (int)(6 * 4 / player.Attributes[GameAttribute.Attacks_Per_Second_Total]); break; } world.AddEffect(new FXEffect { Actor = player, EffectID = effectID, StartingTick = startingTick }); world.AddEffect(new AttackEffect { Actor = player, EffectID = masterEffectID, StartingTick = startingTick }); break; case Skills.Skills.Monk.SpiritGenerator.DeadlyReach: masterEffectID = 140870; switch (message.Field5) { case 0: startingTick += (int)(6 * 2 / player.Attributes[GameAttribute.Attacks_Per_Second_Total]); break; case 1: masterEffectID = 140871; startingTick += (int)(6 * 2/ player.Attributes[GameAttribute.Attacks_Per_Second_Total]); break; case 2: masterEffectID = 140872; startingTick += (int)(6 * 5 / player.Attributes[GameAttribute.Attacks_Per_Second_Total]); break; } world.AddEffect(new AttackEffect { Actor = player, EffectID = masterEffectID, StartingTick = startingTick }); break; case Skills.Skills.Monk.SpiritGenerator.CripplingWave: effectID = 152353; startingTick += (int)(6 * 2 / player.Attributes[GameAttribute.Attacks_Per_Second_Total]); switch (message.Field5) { case 0: break; case 1: effectID = 147912; break; case 2: effectID = 147929; break; } world.AddEffect(new AttackEffect { Actor = player, EffectID = effectID, StartingTick = startingTick }); break; case Skills.Skills.Monk.SpiritGenerator.SweepingWind: effectID = 196981; startingTick += (int)(6 / player.Attributes[GameAttribute.Attacks_Per_Second_Total]); switch (message.Field5) { case 0: break; case 1: effectID = 196983; break; case 2: effectID = 196984; break; } world.AddEffect(new AttackEffect { Actor = player, EffectID = effectID, StartingTick = startingTick}); break; case Skills.Skills.Monk.SpiritGenerator.WayOfTheHundredFists: effectID = 2612;//(player.Properties.Gender == 0) ? 2612 : ???; masterEffectID = 137345;//(player.Properties.Gender == 0) ? 137345 ; ???; switch (message.Field5) { case 0: startingTick += (int)(6 * 3 / player.Attributes[GameAttribute.Attacks_Per_Second_Total]); break; case 1: startingTick += (int)(6 / player.Attributes[GameAttribute.Attacks_Per_Second_Total]); effectID = 98412;//(player.Properties.Gender == 0) ? 98412 : ???; masterEffectID = 137346;//(player.Properties.Gender == 0) ? 137346 : ???; break; case 2: startingTick += (int)(6 * 2 / player.Attributes[GameAttribute.Attacks_Per_Second_Total]); masterEffectID = 137347;//(player.Properties.Gender == 0) ? 137347 : ???; effectID = 98416;//(player.Properties.Gender == 0) ? 98416 : ???; break; } world.AddEffect(new AttackEffect { Actor = player, EffectID = masterEffectID, StartingTick = startingTick }); world.AddEffect(new FXEffect { Actor = player, EffectID = effectID, StartingTick = startingTick }); break; case Skills.Skills.Monk.SpiritSpenders.DashingStrike: world.AddEffect(new FXEffect { Actor = player, EffectID = 192085, DurationInTicks = 6, }); world.AddEffect(new FXEffect { Actor = player, EffectID = 111132, DurationInTicks = 6, Position = targetPosition, Angle = ActorUtils.GetFacingAngle(player.Position, targetPosition) }); break; case Skills.Skills.Monk.SpiritSpenders.LashingTailKick: world.AddEffect(new FXEffect { Actor = player, EffectID = 143782 }); break; case Skills.Skills.Monk.SpiritSpenders.WaveOfLight: world.AddEffect(new FXEffect { Actor = player, EffectID = 145011, }); world.AddEffect(new FXEffect { Actor = player, EffectID = 144079, StartingTick = startingTick + 6}); break; case Skills.Skills.Monk.SpiritSpenders.SevenSidedStrike: // TODO: find targets for effects, now targetting self // 98886 ? effectID = 98826; startingTick += 12; world.AddEffect(new FXEffect { Actor = player, EffectID = effectID, StartingTick = startingTick }); effectID = 98831; startingTick += 12; world.AddEffect(new FXEffect { Actor = player, EffectID = effectID, StartingTick = startingTick }); effectID = 98842; startingTick += 12; world.AddEffect(new FXEffect { Actor = player, EffectID = effectID, StartingTick = startingTick }); break; case Skills.Skills.Monk.SpiritSpenders.TempestRush: break; } }