예제 #1
0
        public void FinishSequence(Mobile cible)
        {
            Owner.Animate(17, 7, 1, true, false, 0);

            //SortNubiaHelper.MakeEffect( Owner, cible, this, true, mustExplose );
            if (!(cible is NubiaCreature))
            {
                return;
            }

            NubiaCreature creat = cible as NubiaCreature;

            if (creat.Hits < Math.Max(8, (creat.HitsMax / 5)))
            {
                SortNubiaHelper.makeBigSmoke(creat.Location, creat.Map);
                RuneVie rune = new RuneVie();
                rune.creature = NubiaHelper.CopyCreature(creat);
                rune.MoveToWorld(creat.Location, creat.Map);
                creat.Delete();
            }
            else
            {
                Owner.SendMessage("La créature n'est pas assez affaibli");
            }

            EndSortNubia();             //important ;)
        }
예제 #2
0
        public static void Configure()
        {
            string        space       = "Server.Mobiles.Dons";
            List <string> donsClasses = NubiaHelper.getAllClasses(space);

            Console.ForegroundColor = ConsoleColor.Yellow;
            foreach (string clstr in donsClasses)
            {
                Type cltype = Type.GetType(space + "." + clstr);
                // Console.WriteLine("Type: " + cltype);
                if (cltype != null)
                {
                    if (cltype.IsSubclassOf(typeof(BaseDon)) && !cltype.IsAbstract)
                    {
                        try
                        {
                            BaseDon don = (BaseDon)cltype.GetConstructor(Type.EmptyTypes).Invoke(new object[0]);
                            Console.WriteLine("- Don: " + don.Name + " (DonEnum." + don.DType.ToString() + ")");
                            DonBank.Add(don.DType.ToString().ToLower(), don);
                            don = null;
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex.Message);
                        }
                    }
                }
            }
            Console.WriteLine("## {0} dons au total", DonBank.Count);
            Console.WriteLine("");
            Console.ForegroundColor = ConsoleColor.White;
        }
예제 #3
0
        public override void OnResponse(NetState sender, RelayInfo info)
        {
            Mobile      f    = sender.Mobile;
            NubiaPlayer from = f as NubiaPlayer;

            if (info.ButtonID >= 100 && info.ButtonID < 200)               //Jutsu Cast
            {
                from.Magie.executeSort(info.ButtonID - 100);
            }
            if (info.ButtonID >= 200 && info.ButtonID < 300)
            {
                from.CloseGump(typeof(SortInfoGump));
                from.SendGump(new SortInfoGump(m_owner.Magie.getSort(info.ButtonID - 200)));
            }
            if (info.ButtonID >= 300 && info.ButtonID < 500)
            {
                from.CloseGump(typeof(SortInfoGump));
                from.SendGump(new PropertiesGump(from, m_owner.Magie.getSort(info.ButtonID - 300)));
            }
            if (info.ButtonID >= 500)              //Extraire un parchemin
            {
                from.CloseGump(typeof(SortInfoGump));
                try
                {
                    SortNubia jutsu = (SortNubia)NubiaHelper.CopyItem(m_owner.Magie.getSort(info.ButtonID - 500));
                    jutsu.MoveToWorld(from.Location, from.Map);
                    from.SendMessage("Copy faite");
                }
                catch { from.SendMessage("Copy impossible!"); }
                //from.SendGump(  new PropertiesGump( from, from.getJutsu(info.ButtonID-300) ) );
            }
        }
예제 #4
0
        public static void ScanItems()
        {
            Console.WriteLine(".");
            Console.ForegroundColor = ConsoleColor.Magenta;
            Console.WriteLine("## Scans craftable item ##");
            string        space   = "Server.Items";
            List <string> classes = NubiaHelper.getAllClasses(space);

            foreach (string clstr in classes)
            {
                // Console.WriteLine(" - "+clstr);
                Type cltype = Type.GetType(space + "." + clstr);
                // Console.WriteLine("Type: " + cltype);
                if (cltype != null)
                {
                    /*   Type[] interfaces = cltype.GetInterfaces();
                     * for (int i = 0; i < interfaces.Length; i++)
                     * {
                     *     Console.WriteLine("interface: "+interfaces[i]);
                     * }
                     * if (cltype.GetInterface(typeof(IEntity).ToString()) != null)
                     * {
                     *     Console.WriteLine(" Match IEntity: " + clstr);
                     * }*/
                    if (cltype.GetInterface(typeof(INubiaCraftable).ToString()) != null)
                    {
                        Console.WriteLine("- INubiaCraftable: " + clstr);
                    }
                }
            }
            Console.ResetColor();
        }
예제 #5
0
        //STATIC PART
        public static void Configure()
        {
            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("## Réputation configuration ##");
            FactionsBank = new Dictionary <FactionEnum, BaseFaction>();
            string        space   = "Server.Mobiles";
            List <string> classes = NubiaHelper.getAllClasses(space);

            foreach (string clstr in classes)
            {
                // Console.WriteLine(" - "+clstr);
                Type cltype = Type.GetType(space + "." + clstr);
                // Console.WriteLine("Type: " + cltype);
                if (cltype != null)
                {
                    if (cltype.IsSubclassOf(typeof(BaseFaction)))
                    {
                        try
                        {
                            BaseFaction fac = (BaseFaction)cltype.GetConstructor(Type.EmptyTypes).Invoke(new object[0]);
                            FactionsBank.Add(fac.Faction, fac);
                            Console.WriteLine("- Faction: " + fac.Name + " (FactionEnum." + fac.Faction.ToString() + ")");
                            fac = null;
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine(ex.Message);
                        }
                    }
                }
            }
            Console.ResetColor();
        }
예제 #6
0
        public void FinishSequence(Mobile cible)
        {
            Owner.Animate(17, 7, 1, true, false, 0);
            double time = (int)(Owner.Niveau / 3) * (Maitrise / 5.0);

            time *= getRatio();

            SortNubiaHelper.makeBigSmoke(Owner.Location, Owner.Map);

            //SAVES
            m_saveItems = new ArrayList();
            m_copyItems = new ArrayList();

            /*private int m_hair = 0;
             * private int m_beard = 0;*/
            m_hair    = Owner.HairItemID;
            m_beard   = Owner.FacialHairItemID;
            m_hue     = Owner.Hue;
            m_hairHue = Owner.HairHue;
            m_body    = Owner.BodyValue;
            m_name    = Owner.Name;

            for (int i = 0; i < 24; i++)
            {
                Item it = Owner.FindItemOnLayer((Layer)i) as Item;
                if (it != null && !(it is Backpack))
                {
                    m_saveItems.Add(it);
                    try{ Owner.Backpack.AddItem(it); }
                    catch {}
                }
            }


            //Clone
            for (int c = 0; c < 24; c++)
            {
                Item it = NubiaHelper.CopyItem(cible.FindItemOnLayer((Layer)c) as Item);
                if (it != null && !(it is Backpack))
                {
                    m_copyItems.Add(it);
                    Owner.EquipItem(it);
                    it.Movable = false;
                }
            }
            Owner.Name             = cible.Name;
            Owner.BodyValue        = cible.BodyValue;
            Owner.HueMod           = cible.Hue;
            Owner.HairItemID       = cible.HairItemID;
            Owner.HairHue          = cible.HairHue;
            Owner.FacialHairItemID = cible.FacialHairItemID;
            Owner.FacialHairHue    = cible.FacialHairHue;

            m_timer = new InternalTimer(this, time);
            Owner.SendMessage("Vous garderez cette apparence pour {0} secondes", ((int)time).ToString());
            m_timer.Start();
            return;
        }
예제 #7
0
        public GardeMoff()
            : base(AIType.AI_Melee, FightMode.Closest, 15, 2, 0.1, 0.2)
        {
            SpeechHue = Utility.RandomDyedHue();
            Title     = "(Garde d'Edgar Moff)";
            Hue       = Utility.RandomList(new int[] { 1025, 1032, 1049, 1057, 1878 });

            if (this.Female = Utility.RandomBool())
            {
                Body = 401;
                Name = NameList.RandomName("female");
            }
            else
            {
                Body = 400;
                Name = NameList.RandomName("male");
            }


            AddItem(new Boots(Utility.RandomNeutralHue()));

            AddItem(new ChainLegs());
            AddItem(new ChainChest());
            AddItem(new PlateArms());
            AddItem(new PlateGloves());
            AddItem(new PlateGorget());
            AddItem(new Helmet());


            AddItem(new Cloak(2121));
            AddItem(new BodySash(2121));

            switch (Utility.Random(4))
            {
            case 0: AddItem(new Spear()); break;

            case 1: AddItem(new Halberd()); break;

            case 2: AddItem(new DoubleBladedStaff()); break;

            case 3: AddItem(new Bardiche()); break;
            }

            mMonsterHits = Utility.RandomMinMax(150, 200);

            NiveauCreature = 8;
            AddCompetence(CompType.Detection, 3);
            AddCompetence(CompType.PerceptionAuditive, 3);
            AddCompetence(CompType.DeplacementSilencieux, 3);
            AddCompetence(CompType.PerceptionAuditive, 3);
            AddCompetence(CompType.Survie, 1);


            //Utility.AssignRandomHair( this );
            NubiaHelper.RandomHair(this);

            Faction = FactionEnum.EdgarMoff;
        }
예제 #8
0
 public override void OnDoubleClick(Mobile f)
 {
     if (f is NubiaPlayer)
     {
         SortNubia cop = (SortNubia)NubiaHelper.CopyItem(this);
         ((NubiaPlayer)f).Magie.addSort(cop);
         f.SendMessage("Sort {0} assimilé", Name);
         Delete();
     }
 }
예제 #9
0
        public override bool Cast()
        {
            if (!base.Cast())
            {
                return(false);
            }

            double time = (int)(Owner.Niveau) * (Maitrise / 10.0);

            time *= getRatio();

            if (m_toClone == null)
            {
                return(false);
            }

            if (m_invoc != null)
            {
                m_invoc.Delete();
                m_invoc = null;
            }

            NubiaCreature m = NubiaHelper.CopyCreature(m_toClone);

            m_invoc = m;

            m_invoc.Summoned      = true;
            m_invoc.ControlMaster = Owner;
            m_invoc.ControlOrder  = OrderType.Guard;
            m_invoc.Controlled    = true;

            m.MoveToWorld(Owner.Location, Owner.Map);

            Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z + 4), m.Map, 0x3728, 13);
            Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z), m.Map, 0x3728, 13);
            Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z - 4), m.Map, 0x3728, 13);
            Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z + 4), m.Map, 0x3728, 13);
            Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z), m.Map, 0x3728, 13);
            Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z - 4), m.Map, 0x3728, 13);

            Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y + 1, m.Z + 11), m.Map, 0x3728, 13);
            Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y + 1, m.Z + 7), m.Map, 0x3728, 13);
            Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y + 1, m.Z + 3), m.Map, 0x3728, 13);
            Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y + 1, m.Z - 1), m.Map, 0x3728, 13);

            Owner.PlaySound(0x228);



            m_timer = new InternalTimer(this, time);
            m_timer.Start();
            return(true);
        }
예제 #10
0
        public override void OnResponse(NetState sender, RelayInfo info)
        {
            Mobile      f    = sender.Mobile;
            NubiaPlayer from = f as NubiaPlayer;

            if (info.ButtonID == 6)            //refus
            {
                m_maitre.SendMessage("Votre élève refuse votre proposition d'apprentissage");
                m_eleve.SendMessage("Vous refusez l'apprentissage");
                return;
            }
            if (info.ButtonID >= 10)            //Choix
            {
                SortNubia newSortNubia;
                newSortNubia         = (SortNubia)NubiaHelper.CopyItem(m_owner);
                newSortNubia.energie = (SortEnergie)m_cp[info.ButtonID - 10];
                //	newSortNubia.skill = KonohaCompHelper.getSkillFromCat(newSortNubia.categorie);
                if (!newSortNubia.canCast(m_eleve, false))
                {
                    m_eleve.SendMessage("Vous n'arrivez pas à adapter ces connaissances pour ce SortNubia");
                    m_eleve.SendGump(new  enseignementSortChoixComp(m_owner, m_maitre, m_eleve, m_cp));
                }
                else
                {
                    m_eleve.SendMessage("Vous arrivez à adapter ces connaissances pour ce SortNubia !");
                    m_maitre.SendMessage("Votre élève s'en sort plutôt bien et adapte votre technique");
                    if (newSortNubia.couleur == MagieColor.Chakra && (newSortNubia.energie != SortEnergie.Mental && newSortNubia.energie != SortEnergie.Terre))
                    {
                        newSortNubia.couleur = MagieColor.Connaissance;
                    }
                    newSortNubia.Maitrise = 0.0;
                    newSortNubia.Owner    = m_eleve;

                    if (newSortNubia is SortNubiaTransformation)
                    {
                        m_eleve.Target = new InternalTransformationTarget((SortNubiaTransformation)newSortNubia, m_maitre, m_eleve);
                    }
                    else
                    {
                        if (!newSortNubia.isUnique)
                        {
                            m_eleve.SendGump(new enseignementSortPerso(newSortNubia, m_maitre, m_eleve));
                        }
                        else
                        {
                            from.SendMessage("Nouveau SortNubia '" + newSortNubia.Nom + "' appris. Félicitation !");
                            from.SendGump(new SortCreationConfirm(m_eleve, newSortNubia, false));
                        }
                    }
                }
                return;
            }
        }
예제 #11
0
 protected override void OnTarget(Mobile from, object o)
 {
     if (o is RuneVie)
     {
         RuneVie rune = o as RuneVie;
         if (rune.creature == null)
         {
             player.SendMessage("Cette rune est vide");
         }
         else
         {
             m_Owner.toClone = NubiaHelper.CopyCreature(rune.creature);
             //	m_Owner.competence = rune.creature.competenceLie;
         }
         player.CloseGump(typeof(SortCreationGump));
         player.SendGump(new SortCreationGump(player, m_Owner));
     }
 }
예제 #12
0
        public int CheckForOpportuniteResult(NubiaMobile agressor) //Attention, agressor peut être null
        {
            if (!agressor.getCanDoOpportunite())
            {
                return(0);
            }

            //Backstab !
            if (NubiaHelper.LookAt(agressor, this) &&
                (NubiaHelper.GetDirectionFrom((int)Direction) == NubiaHelper.GetDirectionFrom((int)agressor.Direction) ||
                 agressor.Hidden))
            {
                ExposeToOpportunite();
            }
            if (CheckForOpportunite() && agressor != null)
            {
                /*1d20 + Bonus Reflexes + Modificateur dexterité
                 *  contre
                 *  1d20 + Bonus Reflexes + Modificateur dexterité - 8 */
                int rollDef = Utility.RandomMinMax(1, 20);
                int rollAgr = Utility.RandomMinMax(1, 20);

                if (agressor.Weapon is BaseRanged)
                {
                    rollAgr -= 10;
                }

                int difference = (rollAgr + agressor.getBonusReflexe() + (int)DndHelper.GetCaracMod(agressor, DndStat.Dexterite))
                                 -
                                 (rollDef + getBonusReflexe() + (int)DndHelper.GetCaracMod(this, DndStat.Dexterite) - 8);

                agressor.mLastOpportuniteAction = DateTime.Now;
                if (difference <= 0)
                {
                    agressor.SendMessage("Vous ratez une attaque d'opportunité");
                }

                return(difference);
            }
            else
            {
                return(0);
            }
        }
예제 #13
0
        public static void roule_OnCommand(CommandEventArgs e)
        {
            NubiaMobile p = e.Mobile as NubiaMobile;

            if (p.Competences[CompType.Acrobaties].getMaitrise() < 1)
            {
                p.SendMessage("Vous devez avoir au moin 1 en acrobatie");
            }
            else
            {
                if (p.Combatant == null)
                {
                    p.SendMessage("vous n'avez pas de combatant");
                }
                else
                {
                    p.Emote("*roulé boulé*");
                    p.SetLocation(NubiaHelper.getRandomPointAround(p.Combatant.Location, p.Map), true);
                }
            }
        }
예제 #14
0
        public Brigand() : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.25, 0.4)
        {
            SpeechHue = Utility.RandomDyedHue();
            Title     = "le brigand";
            Hue       = Utility.RandomList(new int[] { 1025, 1032, 1049, 1057, 1878 });

            if (this.Female = Utility.RandomBool())
            {
                Body = 401;
                Name = NameList.RandomName("female");
                AddItem(new Skirt(Utility.RandomNeutralHue()));
            }
            else
            {
                Body = 400;
                Name = NameList.RandomName("male");
                AddItem(new ShortPants(Utility.RandomNeutralHue()));
            }

            if (Utility.RandomDouble() > .8)
            {
                int hueOrc             = Utility.RandomList(new int[] { 1450, 1451, 1452, 2420, 1441, 1442, 1443, 1444, 1025, 1032, 1049, 1057, 1878 });
                TNRaceSkinHalforc skin = new TNRaceSkinHalforc(hueOrc);
                this.Hue     = hueOrc;
                skin.Movable = false;
                AddItem(skin);
            }

            AddItem(new Boots(Utility.RandomNeutralHue()));
            if (Utility.RandomBool())
            {
                AddItem(new Shirt());
            }
            else
            {
                AddItem(new LeatherChest());
            }

            AddItem(new Bandana());

            switch (Utility.Random(7))
            {
            case 0: AddItem(new Longsword()); break;

            case 1: AddItem(new Cutlass()); break;

            case 2: AddItem(new Broadsword()); break;

            case 3: AddItem(new Axe()); break;

            case 4: AddItem(new Club()); break;

            case 5: AddItem(new Dagger()); break;

            case 6: AddItem(new Spear()); break;
            }

            NiveauCreature = 7;

            AddCompetence(CompType.Detection, 3);
            AddCompetence(CompType.PerceptionAuditive, 3);
            AddCompetence(CompType.DeplacementSilencieux, 3);
            AddCompetence(CompType.PerceptionAuditive, 3);
            AddCompetence(CompType.Survie, 1);
            //Utility.AssignRandomHair( this );
            NubiaHelper.RandomHair(this);

            VirtualArmor = 3;
        }
예제 #15
0
        public MonstreBrigandEcarlate()
            : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.1, 0.4)
        {
            SpeechHue = Utility.RandomDyedHue();
            Title     = " de la main écarlate";
            Hue       = Utility.RandomList(new int[] { 1025, 1032, 1049, 1057, 1878 });

            if (this.Female = Utility.RandomBool())
            {
                Body = 401;
                Name = NameList.RandomName("female");
                AddItem(new Skirt(Utility.RandomNeutralHue()));
            }
            else
            {
                Body = 400;
                Name = NameList.RandomName("male");
                AddItem(new ShortPants(Utility.RandomNeutralHue()));
            }

            if (Utility.RandomDouble() > .8)
            {
                int hueOrc             = Utility.RandomList(new int[] { 1450, 1451, 1452, 2420, 1441, 1442, 1443, 1444, 1025, 1032, 1049, 1057, 1878 });
                TNRaceSkinHalforc skin = new TNRaceSkinHalforc(hueOrc);
                this.Hue     = hueOrc;
                skin.Movable = false;
                AddItem(skin);
            }

            AddItem(new Boots(Utility.RandomNeutralHue()));
            if (Utility.RandomBool())
            {
                AddItem(new StuddedChest());
            }
            else
            {
                AddItem(new RingmailChest());
            }

            AddItem(new RingmailLegs());
            AddItem(new RingmailArms());
            AddItem(new RingmailGloves());
            AddItem(new PlateGorget());

            if (Utility.RandomBool())
            {
                AddItem(new SkullCap(2118));
            }
            else
            {
                AddItem(new Bandana(2118));
            }

            AddItem(new BodySash(2118));

            switch (Utility.Random(7))
            {
            case 0: AddItem(new Longsword()); break;

            case 1: AddItem(new Cutlass()); break;

            case 2: AddItem(new Broadsword()); break;

            case 3: AddItem(new Axe()); break;

            case 4: AddItem(new Club()); break;

            case 5: AddItem(new Dagger()); break;

            case 6: AddItem(new Spear()); break;
            }

            if (FindItemOnLayer(Layer.OneHanded) != null)
            {
                if (FindItemOnLayer(Layer.OneHanded) is BaseSword && Utility.RandomBool())
                {
                    AddItem(new WoodenShield());
                }
            }

            NiveauCreature = Utility.RandomMinMax(6, 8);
            Faction        = FactionEnum.MainEcarlate;

            AddCompetence(CompType.Detection, 3);
            AddCompetence(CompType.PerceptionAuditive, 3);
            AddCompetence(CompType.DeplacementSilencieux, 3);
            AddCompetence(CompType.PerceptionAuditive, 3);
            AddCompetence(CompType.Survie, 1);
            //Utility.AssignRandomHair( this );
            NubiaHelper.RandomHair(this);

            VirtualArmor = 3;
        }
        public override bool Cast()
        {
            if (!base.Cast())
            {
                return(false);
            }

            double time = (int)(Owner.Niveau) * (Maitrise / 2.0);

            time *= getRatio();

            if (m_toClone == null)
            {
                return(false);
            }

            if (!Owner.makeTransfo(this))
            {
                Owner.SendMessage("Vous êtes déjà sous l'effet d'une transformation");
                return(true);
            }

            NubiaPlayer m = Owner as NubiaPlayer;

            Owner.BodyValue = m_toClone.BodyValue;
            Owner.HueMod    = m_toClone.Hue;
            m_nom           = Owner.Name;
            if (m_toClone.Name != "noname")
            {
                Owner.NameMod = m_toClone.Name;
            }

            Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z + 4), m.Map, 0x3728, 13);
            Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z), m.Map, 0x3728, 13);
            Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z - 4), m.Map, 0x3728, 13);
            Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z + 4), m.Map, 0x3728, 13);
            Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z), m.Map, 0x3728, 13);
            Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z - 4), m.Map, 0x3728, 13);

            Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y + 1, m.Z + 11), m.Map, 0x3728, 13);
            Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y + 1, m.Z + 7), m.Map, 0x3728, 13);
            Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y + 1, m.Z + 3), m.Map, 0x3728, 13);
            Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y + 1, m.Z - 1), m.Map, 0x3728, 13);

            m.PlaySound(0x228);

            m_listItem = new ArrayList();

            for (int i = 0; i < m_toClone.Items.Count; i++)
            {
                Item item = NubiaHelper.CopyItem(m_toClone.Items[i]);
                Owner.AddItem(item);
                item.Movable = false;
                m_listItem.Add(item);
            }

            int level = m_toClone.Niveau;// KonohaSkillHelper.getCreatureNiveau(m_toClone);

            m_bonusStr = (int)((level * 2) * TransfoHelper.getModusStr(energie));
            m_bonusDex = (int)((level * 2) * TransfoHelper.getModusDex(energie));
            m_bonusInt = (int)((level * 2) * TransfoHelper.getModusInt(energie));

            m_bonusStr = (int)(m_bonusStr * getRatio());
            m_bonusDex = (int)(m_bonusDex * getRatio());
            m_bonusInt = (int)(m_bonusInt * getRatio());

            m_bonusSkill  = (level * 2);
            m_bonusSkill *= getRatio();

            Owner.Str += m_bonusStr;
            Owner.Dex += m_bonusDex;
            Owner.Int += m_bonusInt;

/*SkillName[] sk = TransfoHelper.getSkillBonus(competence);
 *                      for(int i = 0; i < sk.Length; i++)
 *                      {
 *                              Owner.Skills[sk[i]].Cap += m_bonusSkill;
 *                              Owner.Skills[sk[i]].Base += m_bonusSkill;
 *                      }*/
            m_timer = new InternalTimer(this, time);
            m_timer.Start();
            return(true);
        }