Example #1
0
        protected void AddSpawnEntry(NpcCustomEntryId id, int timeToSpawnsecs, int amount, float amountMod,
                                     BrainState brainState = BrainState.DefenceTownEventMove)
        {
            int num1 = 0;
            int num2 = (int)((double)amount * (double)amountMod);

            for (int index1 = 1; index1 <= num2; ++index1)
            {
                int index2 = index1 % this.MovingPaths.Count;
                if (index2 == 0)
                {
                    num1 += 2000;
                }
                NPCEntry entry = NPCMgr.GetEntry((uint)id);
                if (entry.Rank >= CreatureRank.Boss)
                {
                    index2 = Utility.Random(0, this.MovingPaths.Count - 1);
                }
                this.NpcEntries.Add(new NpcSpawnEntry()
                {
                    BrainState        = brainState,
                    TimeToSpawnMillis = timeToSpawnsecs * 1000 + num1,
                    NpcEntry          = entry,
                    MovingPoints      = (List <Vector3>) this.MovingPaths[index2]
                });
            }
        }
Example #2
0
        private static void CreateCustomEntry(NPCId npcId, NpcCustomEntryId customEntryId, float healthMod,
                                              float otherStatsMod, int maxLevel, float speedMod,
                                              NpcCustomEntries.NpcCustomEntrySettings npcCustomEntrySettings, bool isAggressive = true)
        {
            NPCEntry entry = NPCMgr.GetEntry(npcId).Clone <NPCEntry>();

            entry.SetLevel(maxLevel - 5);
            if (npcCustomEntrySettings.Health.HasValue)
            {
                entry.SetHealth((int)((double)npcCustomEntrySettings.Health.Value * (double)healthMod));
            }
            if (npcCustomEntrySettings.PDef.HasValue)
            {
                entry.Resistances[0] = (int)((double)npcCustomEntrySettings.PDef.Value * (double)otherStatsMod);
            }
            if (npcCustomEntrySettings.MDef.HasValue)
            {
                entry.Resistances[1] = (int)((double)npcCustomEntrySettings.MDef.Value * (double)otherStatsMod);
            }
            if (npcCustomEntrySettings.Damage.HasValue)
            {
                entry.MinDamage = (float)npcCustomEntrySettings.Damage.Value * 0.9f * otherStatsMod;
                entry.MaxDamage = (float)npcCustomEntrySettings.Damage.Value * 1.1f * otherStatsMod;
            }

            if (npcCustomEntrySettings.Speed.HasValue)
            {
                entry.RunSpeed  = npcCustomEntrySettings.Speed.Value * speedMod;
                entry.WalkSpeed = npcCustomEntrySettings.Speed.Value * speedMod;
            }

            entry.IsAgressive = isAggressive;
            NPCMgr.AddEntry((uint)customEntryId, entry);
            entry.NPCId = npcId;
        }
Example #3
0
        private static void CreateCustomEntry(NPCId npcId, NpcCustomEntryId customEntryId, float healthMod, float otherStatsMod, int maxLevel, float speedMod, NpcCustomEntrySettings npcCustomEntrySettings, bool isAggressive = true)
        {
            var entry = NPCMgr.GetEntry(npcId).Clone();

            entry.SetLevel(maxLevel - 5);
            if (npcCustomEntrySettings.Health != null)
            {
                entry.SetHealth((int)(npcCustomEntrySettings.Health.Value * healthMod));
            }
            if (npcCustomEntrySettings.PDef != null)
            {
                entry.Resistances[(int)DamageSchool.Physical] = (int)(npcCustomEntrySettings.PDef.Value * otherStatsMod);
            }
            if (npcCustomEntrySettings.MDef != null)
            {
                entry.Resistances[(int)DamageSchool.Magical] = (int)(npcCustomEntrySettings.MDef.Value * otherStatsMod);
            }
            if (npcCustomEntrySettings.Damage != null)
            {
                entry.MinDamage = npcCustomEntrySettings.Damage.Value * 0.9f * otherStatsMod;
                entry.MaxDamage = npcCustomEntrySettings.Damage.Value * 1.1f * otherStatsMod;
            }
            if (npcCustomEntrySettings.Speed != null)
            {
                entry.RunSpeed  = npcCustomEntrySettings.Speed.Value * speedMod;
                entry.WalkSpeed = npcCustomEntrySettings.Speed.Value * speedMod;
            }
            entry.IsAgressive = isAggressive;
            NPCMgr.AddEntry((uint)customEntryId, entry);
            entry.NPCId = npcId;
        }
Example #4
0
        protected void AddSpawnEntry(NpcCustomEntryId id, int timeToSpawnsecs, int amount, float amountMod, BrainState brainState = BrainState.DefenceTownEventMove)
        {
            var additionalTime = 0;
            var amountToSpawn  = (int)(amount * amountMod);

            for (int i = 1; i <= amountToSpawn; i++)
            {
                var index = i % MovingPaths.Count;
                if (index == 0)
                {
                    additionalTime += 2000;
                }

                var npcEntry = NPCMgr.GetEntry((uint)id);
                if (npcEntry.Rank >= CreatureRank.Boss)
                {
                    index = Util.Utility.Random(0, MovingPaths.Count - 1);
                }
                var entry = new NpcSpawnEntry {
                    BrainState = brainState, TimeToSpawnMillis = timeToSpawnsecs * 1000 + additionalTime, NpcEntry = npcEntry, MovingPoints = MovingPaths[index]
                };
                NpcEntries.Add(entry);
            }
        }