Example #1
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);
            int version = reader.ReadInt();

            _Tribe = (EodonTribe)reader.ReadInt();
        }
Example #2
0
        public EodonTribeRegion(EodonTribe tribe, Rectangle2D[] rec, int maxSpawns)
            : base(tribe.ToString() + " tribe", Map.TerMur, Region.DefaultPriority, rec)
        {
            Tribe = tribe;
            Register();

            MaxSpawns = maxSpawns;
        }
Example #3
0
        public BaseEodonTribesman(AIType ai, EodonTribe type) : base(ai, FightMode.Closest, 10, 1, .2, .4)
        {
            TribeType = type;

            BuildBody();
            BuildEquipment();

            switch (type)
            {
            case EodonTribe.Jukari:
                SetResistance(ResistanceType.Physical, 20, 30);
                SetResistance(ResistanceType.Fire, 100);
                SetResistance(ResistanceType.Cold, 10, 20);
                SetResistance(ResistanceType.Poison, 40, 50);
                SetResistance(ResistanceType.Energy, 40, 50);
                break;

            case EodonTribe.Kurak:
                SetResistance(ResistanceType.Physical, 20, 30);
                SetResistance(ResistanceType.Fire, 10, 20);
                SetResistance(ResistanceType.Cold, 100);
                SetResistance(ResistanceType.Poison, 40, 50);
                SetResistance(ResistanceType.Energy, 40, 50);
                break;

            case EodonTribe.Barrab:
                SetResistance(ResistanceType.Physical, 20, 30);
                SetResistance(ResistanceType.Fire, 40, 50);
                SetResistance(ResistanceType.Cold, 40, 50);
                SetResistance(ResistanceType.Poison, 100);
                SetResistance(ResistanceType.Energy, 10, 20);
                break;

            case EodonTribe.Barako:
                SetResistance(ResistanceType.Physical, 20, 30);
                SetResistance(ResistanceType.Fire, 40, 50);
                SetResistance(ResistanceType.Cold, 40, 50);
                SetResistance(ResistanceType.Poison, 10, 20);
                SetResistance(ResistanceType.Energy, 40, 50);
                break;

            case EodonTribe.Urali:
                SetResistance(ResistanceType.Physical, 20, 30);
                SetResistance(ResistanceType.Fire, 40, 50);
                SetResistance(ResistanceType.Cold, 40, 50);
                SetResistance(ResistanceType.Poison, 10, 20);
                SetResistance(ResistanceType.Energy, 100);
                break;

            case EodonTribe.Sakkhra:
                SetResistance(ResistanceType.Physical, 100);
                SetResistance(ResistanceType.Fire, 40, 50);
                SetResistance(ResistanceType.Cold, 40, 50);
                SetResistance(ResistanceType.Poison, 60, 70);
                SetResistance(ResistanceType.Energy, 40, 50);
                break;
            }
        }
Example #4
0
        public TribeShaman(EodonTribe type) : base(AIType.AI_Mage, type)
        {
            RangeFight = 7;

            PackGold(60, 70);
            PackReg(1, 3);

            Bandage b = new Bandage();

            b.Amount = Utility.RandomMinMax(3, 5);
            PackItem(b);
        }
Example #5
0
        public static int GetTribeID(EodonTribe tribe)
        {
            switch (tribe)
            {
            default:
            case EodonTribe.Jukari: return(0x9D53);

            case EodonTribe.Kurak: return(0x9D55);

            case EodonTribe.Barako: return(0x9D57);

            case EodonTribe.Sakkhra: return(0x9D59);

            case EodonTribe.Barrab: return(0x9D5B);

            case EodonTribe.Urali: return(0x9D5D);
            }
        }
        public void SpawnWave(Allegiance allegiance)
        {
            if (allegiance == Allegiance.Myrmidex)
            {
                int wave = MyrmidexTeam.Count;
                MyrmidexTeam[wave] = new List <BaseCreature>();
                List <BaseCreature> list = MyrmidexTeam[wave];

                for (int i = 0; i < WaveCount; i++)
                {
                    BaseCreature bc;
                    Type         type = _MyrmidexTypes[wave][Utility.Random(_MyrmidexTypes[wave].Length)];

                    if (type.IsSubclassOf(typeof(BaseEodonTribesman)))
                    {
                        bc = Activator.CreateInstance(type, new object[] { EodonTribe.Barrab }) as BaseCreature;
                    }
                    else
                    {
                        bc = Activator.CreateInstance(type) as BaseCreature;
                    }

                    bc.NoLootOnDeath = true;

                    if (bc != null)
                    {
                        for (int j = 0; j < 20; j++)
                        {
                            Point3D p = Map.TerMur.GetRandomSpawnPoint(_MyrmidexSpawnZone);

                            if (Map.TerMur.CanSpawnMobile(p.X, p.Y, p.Z))
                            {
                                bc.MoveToWorld(p, Map.TerMur);
                                list.Add(bc);

                                AssignNavpoints(bc, Allegiance.Myrmidex);
                                break;
                            }
                        }
                    }
                }

                LastMyrmidexWave = DateTime.UtcNow;
            }
            else
            {
                int wave = TribeTeam.Count;
                TribeTeam[wave] = new List <BaseCreature>();
                List <BaseCreature> list = TribeTeam[wave];

                for (int i = 0; i < WaveCount; i++)
                {
                    BaseCreature bc;
                    Type         type = _TribeTypes[wave][Utility.Random(_TribeTypes[wave].Length)];

                    if (type.IsSubclassOf(typeof(BaseEodonTribesman)))
                    {
                        EodonTribe tribe = Utility.RandomList <EodonTribe>(EodonTribe.Jukari, EodonTribe.Kurak, EodonTribe.Barako, EodonTribe.Urali, EodonTribe.Sakkhra);
                        bc = Activator.CreateInstance(type, new object[] { tribe }) as BaseCreature;
                    }
                    else
                    {
                        bc = Activator.CreateInstance(type) as BaseCreature;
                    }

                    bc.NoLootOnDeath = true;

                    if (bc != null)
                    {
                        for (int j = 0; j < 20; j++)
                        {
                            Point3D p = Map.TerMur.GetRandomSpawnPoint(_TribeSpawnZone);

                            if (Map.TerMur.CanSpawnMobile(p.X, p.Y, p.Z))
                            {
                                bc.MoveToWorld(p, Map.TerMur);
                                list.Add(bc);

                                AssignNavpoints(bc, Allegiance.Tribes);
                                break;
                            }
                        }
                    }
                }

                LastTribeWave = DateTime.UtcNow;
            }
        }
Example #7
0
 public TribeChieftan(EodonTribe type) : base(AIType.AI_Melee, type)
 {
 }
Example #8
0
 public TribeWarrior(EodonTribe type) : base(AIType.AI_Melee, type)
 {
 }
Example #9
0
 public TribalBanner(EodonTribe tribe) : base(GetTribeID(tribe))
 {
     _Tribe = tribe;
 }
Example #10
0
 public TribeShaman(EodonTribe type) : base(AIType.AI_Mage, type)
 {
     RangeFight = 7;
 }