public static string Apply(object[] parameters) { Actor actor = (Actor)parameters[0]; Effects.ZoneEffect.ZoneEffectTemplate affected = (Effects.ZoneEffect.ZoneEffectTemplate)parameters[1]; //Actor sacrifiedSummon = parameters[2] as Actor; string criteria = (string)parameters[3]; mysql.spells spell = (mysql.spells)parameters[4]; Actor.effects effect = (Actor.effects)parameters[5]; bool cd = (bool)parameters[6]; /////////////////////////////////////////////////////////// //Battle _battle = Battle.Battles.Find(f => f.IdBattle == spellCaster.idBattle); Misc.Criteria.Handlers.Icriteria ci = Misc.Criteria.Handlers.translation.translate(criteria); object[] parameters1 = new object[1]; parameters1[0] = criteria; int value = Convert.ToInt32(ci.Apply(parameters1)); // un evenement dois être créer pour gérer tous seul si le max pdv a été franchie grace au variable d'accessibilité get, set affected.AffectedActor.originalPm += value; affected.AffectedActor.currentPm += value; string buffer = affected.AffectedActor.Pseudo + ":" + value + ":" + affected.AffectedActor.originalPm + ":pm"; //// ajout du sort dans la liste des envoutements visibles pour les joueurs concernés if (actor.BuffsList.Exists(f => f.SortID == spell.spellID && !f.system)) { // sort trouvé Actor.Buff piEnv = actor.BuffsList.Find(f => f.SortID == spell.spellID && !f.system); piEnv.playerRoxed.Add("null"); } else { // ajout du sort dans les envoutements Actor.Buff piEnv1 = new Actor.Buff { SortID = spell.spellID, title = spell.spellName, Debuffable = true, VisibleToPlayers = true, relanceInterval = spell.relanceInterval, BuffState = Enums.Buff.State.Fin, relanceParTour = spell.relanceParTour, system = false, Duration = effect.duration, Cd = cd, Player = actor.Pseudo }; piEnv1.playerRoxed.Add("null"); piEnv1.Bonus.originalPm = value; actor.BuffsList.Add(piEnv1); } return(buffer); }
public static void Apply(object[] parameters) { Actor spellCaster = parameters[0] as Actor; List <Effects.ZoneEffect.ZoneEffectTemplate> affectedPlayers = parameters[1] as List <Effects.ZoneEffect.ZoneEffectTemplate>; int spellID = (int)parameters[2]; Actor.effects effect = parameters[3] as Actor.effects; bool cd = Convert.ToBoolean(parameters[4]); Point spellPos = parameters[5] as Point; Actor.SpellsInformations infos_sorts = spellCaster.sorts.Find(f => f.SpellId == spellID); mysql.spells spell_Template = (DataBase.DataTables.spells as List <mysql.spells>).Find(f => f.spellID == spellID && f.level == infos_sorts.Level); Battle _battle = Battle.Battles.Find(f => f.IdBattle == spellCaster.idBattle); //// ajout du sort dans la liste des envoutements systeme if (spellCaster.BuffsList.Exists(f => f.SortID == spellID && f.system)) { // sort trouvé Actor.Buff piEnv = spellCaster.BuffsList.Find(f => f.SortID == spellID && f.system); piEnv.playerRoxed.Add("null"); } else { // ajout du sort dans les envoutements Actor.Buff piEnv1 = new Actor.Buff(); piEnv1.SortID = spellID; piEnv1.title = spell_Template.spellName; piEnv1.Debuffable = false; piEnv1.VisibleToPlayers = false; piEnv1.playerRoxed.Add("null"); // pas la paine d'ajouter le nom d'un adversaire vus que le sort tap en zone, et na pas l'option relanceParJoueur piEnv1.relanceInterval = spell_Template.relanceInterval; piEnv1.BuffState = Enums.Buff.State.Fin; piEnv1.relanceParTour = spell_Template.relanceParTour; piEnv1.system = true; piEnv1.Cd = cd; piEnv1.Player = spellCaster.Pseudo; spellCaster.BuffsList.Add(piEnv1); } }
public static void Apply(object[] parameters) { Actor spellCaster = parameters[0] as Actor; List <Effects.ZoneEffect.ZoneEffectTemplate> affectedPlayers = parameters[1] as List <Effects.ZoneEffect.ZoneEffectTemplate>; int spellID = (int)parameters[2]; Actor.effects effect = parameters[3] as Actor.effects; bool cd = Convert.ToBoolean(parameters[4]); Point spellPos = parameters[5] as Point; Actor.SpellsInformations infos_sorts = spellCaster.sorts.Find(f => f.SpellId == spellID); mysql.spells spell_Template = (DataBase.DataTables.spells as List <mysql.spells>).Find(f => f.spellID == spellID && f.level == infos_sorts.Level); Battle _battle = Battle.Battles.Find(f => f.IdBattle == spellCaster.idBattle); #region inscription dans les envoutements //// ajout du sort dans la liste des envoutements systeme "non debufable" if (spellCaster.BuffsList.Exists(f => f.SortID == spellID && f.system)) { // sort trouvé Actor.Buff piEnv = spellCaster.BuffsList.Find(f => f.SortID == spellID && f.system); foreach (Effects.ZoneEffect.ZoneEffectTemplate affectedPlayerTemplate in affectedPlayers) { if (affectedPlayerTemplate.AffectedActor != null) { piEnv.playerRoxed.Add(affectedPlayerTemplate.AffectedActor.Pseudo); } else { piEnv.playerRoxed.Add("null"); } } } else { // ajout du sort dans les envoutements Actor.Buff piEnv1 = new Actor.Buff(); piEnv1.SortID = spellID; piEnv1.title = spell_Template.spellName; piEnv1.Debuffable = false; piEnv1.VisibleToPlayers = false; if (affectedPlayers.Count > 0) { foreach (Effects.ZoneEffect.ZoneEffectTemplate affectedPlayerTemplate in affectedPlayers) { if (affectedPlayerTemplate.AffectedActor != null) { piEnv1.playerRoxed.Add(affectedPlayerTemplate.AffectedActor.Pseudo); } else { piEnv1.playerRoxed.Add("null"); } } } else { piEnv1.playerRoxed.Add("null"); } piEnv1.relanceInterval = spell_Template.relanceInterval; piEnv1.BuffState = Enums.Buff.State.Fin; piEnv1.relanceParTour = spell_Template.relanceParTour; piEnv1.system = true; piEnv1.Cd = cd; piEnv1.Player = spellCaster.Pseudo; spellCaster.BuffsList.Add(piEnv1); } #endregion }