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, 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; } }