Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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
        }