// PvP Command execution private static void VSExecute(VSPlayer user, VSCommand command, TSPlayer target) { // Sets command user and target command.User = user; command.Target = target; // Self-use Check & PvP Check if (command.UseSelf == 2 && user.TSPlayer == target) { user.TSPlayer.SendErrorMessage("[PvP] Error: You cannot use this command on yourself!"); return; } if (!PVPCheck(target) && !command.BypassPvp) { user.TSPlayer.SendErrorMessage("[PvP] Error: Target is not hostile!"); return; } // Cooldown Check if (VSConfig.config.Cooldowns && !user.TSPlayer.Group.HasPermission("vs.ignore.cooldown")) { if (command.Counter > 0) { user.TSPlayer.SendErrorMessage(string.Format("[PvP] Error: You must wait {0} seconds before using {1} again!", command.Counter, command.Name)); return; } else { command.Counter = command.Cooldown; } } // Damage Check if (command.Damage != 0) { VSPlayers[target.UserID].DamagePlayer(command.Damage, command, user); } if (command.DamageToSelf != 0) { user.DamagePlayer(command.DamageToSelf, command, user); } // Effect Check if (command.Effect != null) { foreach (Effect eff in command.Effect) { Effect.Event(user, target, eff.Type, eff.Parameter, eff.Parameter2, eff.Who, eff.SetState); } } // Timer Check if (command.Timer.Interval != 1) { command.Timer.Start(); } // Messages Check if (command.MsgAll != null) { Message msg = new Message(command.MsgAll.InitMsg, command.MsgAll.UsePlr1 ? command.User.TSPlayer : null, command.MsgAll.MidMsg, command.MsgAll.UsePlr2 ? command.Target : null, command.MsgAll.EndMsg, command.MsgAll.Color); TSPlayer.All.SendMessage(msg.Text, msg.Color); } if (command.MsgSelf != null) { Message msg = new Message(command.MsgSelf.InitMsg, command.MsgSelf.UsePlr1 ? command.User.TSPlayer : null, command.MsgSelf.MidMsg, command.MsgSelf.UsePlr2 ? command.Target : null, command.MsgSelf.EndMsg, command.MsgSelf.Color); user.TSPlayer.SendMessage(msg.Text, msg.Color); } if (command.MsgPlayer != null) { Message msg = new Message(command.MsgPlayer.InitMsg, command.MsgPlayer.UsePlr1 ? command.User.TSPlayer : null, command.MsgPlayer.MidMsg, command.MsgPlayer.UsePlr2 ? command.Target : null, command.MsgPlayer.EndMsg, command.MsgPlayer.Color); target.SendMessage(msg.Text, msg.Color); } return; }
public void Timer_Wish(object sender, ElapsedEventArgs e) { Message msg = new Message("", Target, " received ", User.TSPlayer, "'s Wish!", Color.RoyalBlue); VSSystem.VSPlayers[Target.UserID].DamagePlayer(-200); TSPlayer.All.SendMessage(msg.Text, msg.Color); Timer.Stop(); }
public void DamagePlayer(double damage, VSCommand cmd, VSPlayer user) { if (damage < 0) { TSPlayer.Heal(VSSystem.Equalize(damage)); } else { if (cmd.Offensive) { if (State.ContainsKey(States.BARRIER)) { Message msg = new Message("Barrier has been disposed!", false, "", false, "", Color.Indigo); RemoveState(States.BARRIER); TSPlayer.SendInfoMessage(msg.Text, msg.Color); return; } if (State.ContainsKey(States.SHIELD)) { damage *= 0.8; } if (State.ContainsKey(States.LOCUS)) { damage *= 0.5; } } if (user.State.ContainsKey(States.BOOST)) { damage *= 1.2; } if (user.State.ContainsKey(States.LOCUS)) { damage *= 1.5; } TSPlayer.DamagePlayer(VSSystem.Equalize(damage, TSPlayer)); } }
public void Timer_Tickle(object sender, ElapsedEventArgs e) { Message msg = new Message("", Target, " is no longer being tickled.", null, "", new Color(243, 112, 234)); TSPlayer.All.SendMessage(msg.Text, msg.Color); Timer.Stop(); }
public void Timer_Rake(object sender, ElapsedEventArgs e) { Message msg = new Message("Your bleeding has stopped.", null, "", null, "", Color.Salmon); User.TSPlayer.SendMessage(msg.Text, msg.Color); Timer.Stop(); }
public void Timer_HWish(object sender, ElapsedEventArgs e) { Message msg = new Message("", Target, " received ", User.TSPlayer, "'s Healing Wish!", Color.SeaGreen); VSSystem.VSPlayers[Target.UserID].DamagePlayer(-(double)Target.FirstMaxHP); Target.TPlayer.ManaEffect(Target.FirstMaxMP); TSPlayer.All.SendMessage(msg.Text, msg.Color); Timer.Stop(); }
public void Timer_FSight(object sender, ElapsedEventArgs e) { Message msg = new Message("You received ", User.TSPlayer, "'s Future Sight!", null, "", Color.MediumPurple); VSSystem.VSPlayers[Target.UserID].DamagePlayer(250, this, User); Target.SendMessage(msg.Text, msg.Color); Timer.Stop(); }
public void Timer_Doom(object sender, ElapsedEventArgs e) { Message msg = new Message("", Target, " received his fated Doom!", null, "", Color.Orchid); VSSystem.VSPlayers[Target.UserID].DamagePlayer(400, this, User); TSPlayer.All.SendMessage(msg.Text, msg.Color); Timer.Stop(); }