public Savage() : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4) { Name = NameList.RandomName( "savage" ); if ( Female = Utility.RandomBool() ) Body = 184; else Body = 183; SetStr( 96, 115 ); SetDex( 86, 105 ); SetInt( 51, 65 ); SetDamage( 23, 27 ); SetDamageType( ResistanceType.Physical, 100 ); SetSkill( SkillName.Fencing, 60.0, 82.5 ); SetSkill( SkillName.Macing, 60.0, 82.5 ); SetSkill( SkillName.Poisoning, 60.0, 82.5 ); SetSkill( SkillName.MagicResist, 57.5, 80.0 ); SetSkill( SkillName.Swords, 60.0, 82.5 ); SetSkill( SkillName.Tactics, 60.0, 82.5 ); Fame = 1000; Karma = -1000; PackItem( new Bandage( Utility.RandomMinMax( 1, 15 ) ) ); if ( Female && 0.1 > Utility.RandomDouble() ) PackItem( new TribalBerry() ); else if ( !Female && 0.1 > Utility.RandomDouble() ) PackItem( new BolaBall() ); AddItem( new Spear() ); AddItem( new BoneArms() ); AddItem( new BoneLegs() ); if ( 0.5 > Utility.RandomDouble() ) { BaseHat item = new SavageMask(); BaseRunicTool.ApplyAttributesTo(item, Utility.RandomMinMax(0, 5), 20, 100); AddItem( item ); } else if ( 0.1 > Utility.RandomDouble() ) AddItem( new OrcishKinMask() ); }
public override void InitOutfit() { WipeLayers(); Item hair = new LongHair(); hair.Hue = 0x47E; hair.Layer = Layer.Hair; hair.Movable = false; AddItem(hair); Item Necklace = new GoldNecklace(); Necklace.LootType = LootType.Newbied; Necklace.Hue = 2006; // basilisk hue AddItem(Necklace); // NEVER drop one of these! - (never runs out of poison) BasilisksFang fang = new BasilisksFang(); fang.Quality = WeaponQuality.Exceptional; fang.LootType = LootType.Newbied; if (Utility.RandomBool()) fang.Poison = Poison.Regular; else fang.Poison = Poison.Lesser; fang.PoisonCharges = 30; fang.Movable = false; AddItem(fang); AddItem( new BoneArms() ); AddItem( new BoneLegs() ); // all savages wear a mask, but won't drop this one // see OnBeforeDeath for the mask they do drop SavageMask mask = new SavageMask(); mask.LootType = LootType.Newbied; AddItem( mask ); }
public static Item RandomIOB() { switch (Utility.Random(7)) { case 0: // Undead - GUL { if (Utility.RandomBool()) return new BloodDrenchedBandana(); else { BodySash sash = new BodySash(); sash.Hue = 0x66C; sash.IOBAlignment = IOBAlignment.Council; sash.Name = "blood drenched sash"; sash.Dyable = false; sash.Scissorable = false; return sash; } } case 1: // Undead - UND { Sandals sandals = new Sandals(); if (Utility.RandomBool()) sandals.Hue = 0x66C; else sandals.Hue = 0x1; sandals.IOBAlignment = IOBAlignment.Undead; sandals.Name = "sandals of the walking dead"; sandals.Dyable = false; sandals.Scissorable = false; return sandals; } case 2: // Orcish { if (Utility.RandomBool()) { // green mask (brute color) if (Utility.RandomBool()) return new OrcishKinMask(); else { // old style mask (orc colored) OrcishKinMask mask = new OrcishKinMask(); mask.Hue = 0; return mask; } } else { return new OrcishKinHelm(); } } case 3: //Savage { if (Utility.RandomBool()) { if (Utility.RandomBool()) { BearMask mask = new BearMask(); mask.IOBAlignment = IOBAlignment.Savage; mask.Name = "bear mask of savage kin"; mask.Dyable = false; return mask; } else { DeerMask mask = new DeerMask(); mask.IOBAlignment = IOBAlignment.Savage; mask.Name = "deer mask of savage kin"; mask.Dyable = false; return mask; } } else { SavageMask mask = new SavageMask(); mask.IOBAlignment = IOBAlignment.Savage; mask.Name = "tribal mask of savage kin"; mask.Dyable = false; return mask; } } case 4: // Pirates { if (Utility.RandomBool()) { if (Utility.RandomBool()) { SkullCap skullcap = new SkullCap(); skullcap.IOBAlignment = IOBAlignment.Pirate; skullcap.Name = "a pirate skullcap"; skullcap.Hue = 0x66C; skullcap.Dyable = false; skullcap.Scissorable = false; return skullcap; } else { Boots boots = new Boots(); boots.IOBAlignment = IOBAlignment.Pirate; boots.Name = "pirate kin boots"; boots.Hue = 0x66c; boots.Dyable = false; boots.Scissorable = false; return boots; } } else { return new PirateHat(); } } case 5: // Brigands { if (Utility.RandomBool()) { return new BrigandKinBandana(); } else { return new BrigandKinBoots(); } } case 6: // Good { switch ( Utility.Random( 4 )) { case 0: Boots boots = new Boots(0x5E4); boots.IOBAlignment = IOBAlignment.Good; boots.Name = "Britannian Militia"; boots.Dyable = false; return boots; case 1: Cloak cloak = new Cloak(Utility.RandomSpecialVioletHue()); cloak.IOBAlignment = IOBAlignment.Good; cloak.Name = "Britannian Militia"; cloak.Dyable = false; cloak.Scissorable = false; return cloak; case 2: Surcoat surcoat = new Surcoat(Utility.RandomSpecialVioletHue()); surcoat.IOBAlignment = IOBAlignment.Good; surcoat.Name = "Britannian Militia"; surcoat.Dyable = false; surcoat.Scissorable = false; return surcoat; case 3: BodySash bodySash = new BodySash(Utility.RandomSpecialRedHue()); bodySash.IOBAlignment = IOBAlignment.Good; bodySash.Name = "Britannian Militia"; bodySash.Dyable = false; bodySash.Scissorable = false; return bodySash; } break; } } return null; }
/// <summary> /// This is the function gives weaponry to players. /// </summary> private static void ArmPlayer(CTFPlayerGameData pgd) { Mobile m = pgd.Mob; if (!m.Alive) m.Resurrect(); for (int i = m.Items.Count - 1; i >= 0; --i) { Item item = (Item)m.Items[i]; if (item.Layer == Layer.OuterTorso) { item.Delete(); break; } } List<Item> armthis = new List<Item>(); if(GiveRobe) armthis.Add(new CTFRobe(pgd.Team)); Item rankedCloth = null; CTFTeam team = pgd.Team; // 21 Ranks switch (CTFData.GetRank(m)) { default: case 0: rankedCloth = new JesterHat(team.Hue); break; case 1: rankedCloth = new TallStrawHat(team.Hue); break; case 2: rankedCloth = new FloppyHat(team.Hue); break; case 3: rankedCloth = new WideBrimHat(team.Hue); break; case 4: rankedCloth = new Cap(team.Hue); break; case 5: rankedCloth = new SkullCap(team.Hue); break; case 6: rankedCloth = new FlowerGarland(team.Hue); break; case 7: rankedCloth = new StrawHat(team.Hue); break; case 8: rankedCloth = new FeatheredHat(team.Hue); break; case 9: rankedCloth = new TricorneHat(team.Hue); break; case 10: rankedCloth = new TribalMask(team.Hue); break; case 11: rankedCloth = new HornedTribalMask(team.Hue); break; case 12: rankedCloth = new BearMask(team.Hue); break; case 13: rankedCloth = new DeerMask(team.Hue); break; case 14: rankedCloth = new OrcishKinMask(team.Hue); break; case 15: rankedCloth = new SavageMask(team.Hue); break; case 16: rankedCloth = new WizardsHat(team.Hue); break; case 17: rankedCloth = new Bandana(team.Hue); break; case 18: rankedCloth = new ClothNinjaHood(team.Hue); break; case 19: rankedCloth = new Kasa(team.Hue); break; case 20: rankedCloth = new BoneHelm(); rankedCloth.Hue = team.Hue; ((BaseArmor)rankedCloth).ArmorAttributes.MageArmor = 1; break; } if (rankedCloth != null) { rankedCloth.Movable = false; armthis.Add(rankedCloth); } //Alchemy removed by Blady /* if (m.Skills[SkillName.Alchemy].Value >= (m_MinSupplySkill + 15)) //80 Alchemy req - by Blady { for (int i = 0; i < 6; i++) //Amount reduced to 6 by Blady - used to be 10 { armthis.Add(new ExplosionPotion()); armthis.Add(new GreaterHealPotion()); armthis.Add(new GreaterCurePotion()); armthis.Add(new GreaterAgilityPotion()); armthis.Add(new RefreshPotion()); armthis.Add(new GreaterStrengthPotion()); } } */ if (m.Skills[SkillName.Chivalry].Value >= m_MinSupplySkill) { BookOfChivalry book = new BookOfChivalry(); book.Content = 1023;//all spells armthis.Add(book); } if (m.Skills[SkillName.Necromancy].Value >= m_MinSupplySkill) { NecromancerSpellbook book = new NecromancerSpellbook(); book.Content = 0x1FFFF; armthis.Add(book); } if (m.Skills[SkillName.Magery].Value >= m_MinSupplySkill) { GnarledStaff gs = new GnarledStaff(); gs.Attributes.SpellChanneling = 1; gs.WeaponAttributes.MageWeapon = 20; armthis.Add(gs); Spellbook book = new Spellbook(); book.Content = ulong.MaxValue; armthis.Add(book); } if (m.Skills[SkillName.Healing].Value >= m_MinSupplySkill) armthis.Add(new Bandage(1000)); if (m.Skills[SkillName.Fencing].Value >= m_MinSupplySkill) { Spear sp = new Spear(); sp.Attributes.SpellChanneling = 1; armthis.Add(sp); ShortSpear ssp = new ShortSpear(); ssp.Attributes.SpellChanneling = 1; armthis.Add(ssp); WarFork wf = new WarFork(); wf.Attributes.SpellChanneling = 1; armthis.Add(wf); Kryss k = new Kryss(); k.Attributes.SpellChanneling = 1; armthis.Add(k); } if (m.Skills[SkillName.Swords].Value >= m_MinSupplySkill) { if (m.Skills[SkillName.Lumberjacking].Value >= m_MinSupplySkill) { ExecutionersAxe ea = new ExecutionersAxe(); ea.Attributes.SpellChanneling = 1; armthis.Add(ea); } Katana k = new Katana(); k.Attributes.SpellChanneling = 1; armthis.Add(k); Longsword ls = new Longsword(); ls.Attributes.SpellChanneling = 1; armthis.Add(ls); Cleaver c = new Cleaver(); c.Attributes.SpellChanneling = 1; armthis.Add(c); BoneHarvester bh = new BoneHarvester(); bh.Attributes.SpellChanneling = 1; armthis.Add(bh); } if (m.Skills[SkillName.Macing].Value >= m_MinSupplySkill) { WarAxe wa = new WarAxe(); wa.Attributes.SpellChanneling = 1; armthis.Add(wa); HammerPick hp = new HammerPick(); hp.Attributes.SpellChanneling = 1; armthis.Add(hp); QuarterStaff qs = new QuarterStaff(); qs.Attributes.SpellChanneling = 1; armthis.Add(qs); } if (m.Skills[SkillName.Archery].Value >= m_MinSupplySkill) { Bow b = new Bow(); b.Attributes.SpellChanneling = 1; armthis.Add(b); Crossbow xb = new Crossbow(); xb.Attributes.SpellChanneling = 1; armthis.Add(xb); CompositeBow cb = new CompositeBow(); cb.Attributes.SpellChanneling = 1; armthis.Add(cb); armthis.Add(new Arrow(150)); armthis.Add(new Bolt(150)); } if (m.Skills[SkillName.Poisoning].Value >= m_MinSupplySkill) { for (int i = 0; i < 2; i++) armthis.Add(new GreaterPoisonPotion()); } if (m.Skills[SkillName.Parry].Value >= m_MinSupplySkill) { MetalKiteShield ks = new MetalKiteShield(); ks.Attributes.SpellChanneling = 1; armthis.Add(ks); } SunnySystem.ArmPlayer(m, armthis); }
public AidonCopy():base( AIType.AI_Mage, FightMode.Closest, 10, 1, 0.15, 0.2 ) { Body = 400; Hue = 0x3F6; Name = "Aidon the Archwizard"; Kills = 10; ShortTermMurders = 10; SetStr( 356, 396 ); SetDex( 125, 135 ); SetInt( 830, 953 ); SetDamage( 15, 20 ); SetSkill( SkillName.Wrestling, 91.3, 97.8 ); SetSkill( SkillName.Tactics, 91.5, 97.0 ); SetSkill( SkillName.MagicResist, 140.6, 156.8); SetSkill( SkillName.Magery, 96.7, 99.8 ); SetSkill( SkillName.EvalInt, 75.1, 80.1 ); SetSkill( SkillName.Meditation, 61.1, 68.1 ); Fame = 17500; Karma = -17500; VirtualArmor = 15; Item Robe = new Robe(); Robe.Hue=2112; EquipItem( Robe ); Item SavageMask = new SavageMask(); SavageMask.Movable=false; SavageMask.Hue=1175; EquipItem( SavageMask ); Item Sandals = new Sandals(); Sandals.Movable=false; Sandals.Hue=1175; EquipItem( Sandals ); Item GoldRing = new GoldRing(); GoldRing.Movable=false; GoldRing.Hue=1360; EquipItem( GoldRing ); Item hair = new Item( 0x203B); hair.Hue = 1072; hair.Layer = Layer.Hair; AddItem( hair ); Item beard = new Item( 0x203E); beard.Hue = 1072; beard.Layer = Layer.FacialHair; AddItem( beard ); switch ( Utility.Random( 10 ) ) { case 0: PackItem( new GreaterAgilityPotion() ); break; case 1: PackItem( new GreaterExplosionPotion() ); break; case 2: PackItem( new GreaterCurePotion() ); break; case 3: PackItem( new GreaterHealPotion() ); break; case 4: PackItem( new NightSightPotion() ); break; case 5: PackItem( new GreaterPoisonPotion() ); break; case 6: PackItem( new TotalRefreshPotion() ); break; case 7: PackItem( new GreaterStrengthPotion() ); break; } switch ( Utility.Random( 20 ) ) { case 0: PackWeapon( 2, 5 ); break; case 1: PackArmor( 2, 5 ); break; } switch ( Utility.Random( 10 ) ) { case 0: PackWeapon( 0, 5 ); break; case 1: PackArmor( 0, 5 ); break; } switch ( Utility.Random( 5 ) ) { case 0: PackWeapon( 0, 5 ); break; case 1: PackArmor( 0, 5 ); break; } switch ( Utility.Random( 2 ) ) { case 0: PackWeapon( 0, 5 ); break; case 1: PackArmor( 0, 5 ); break; } switch ( Utility.Random( 5 ) ) { case 0: PackReg( 11 ); break; case 1: PackScroll( 4, 8 ); break; case 2: PackScroll( 6, 7 ); break; case 3: PackReg( 12 ); break; case 4: PackReg( 10 ); break; } PackGold( 500, 1000 ); }
public override void InitOutfit() { WipeLayers(); AddItem( new Spear() ); AddItem( new BoneArms() ); AddItem( new BoneLegs() ); // all savages wear a mask, but won't drop this one // see OnBeforeDeath for the mask they do drop SavageMask mask = new SavageMask(); mask.LootType = LootType.Newbied; AddItem( mask ); }
public Aidon():base( AIType.AI_Mage, FightMode.Weakest, 10, 1, 0.15, 0.2 ) { Body = 400; Hue = 0x3F6; SpeechHue= 1175; Name = "Aidon the Archwizard"; Kills = 10; ShortTermMurders = 10; SetStr( 356, 396 ); SetDex( 125, 135 ); SetInt( 830, 953 ); SetDamage( 15, 20 ); SetSkill( SkillName.Wrestling, 91.3, 97.8 ); SetSkill( SkillName.Tactics, 91.5, 97.0 ); SetSkill( SkillName.MagicResist, 140.6, 156.8); SetSkill( SkillName.Magery, 96.7, 99.8 ); SetSkill( SkillName.EvalInt, 75.1, 80.1 ); SetSkill( SkillName.Meditation, 61.1, 68.1 ); Fame = 17500; Karma = -17500; VirtualArmor = 15; Item Robe = new Robe(); Robe.Hue=2112; EquipItem( Robe ); Item SavageMask = new SavageMask(); SavageMask.Movable=false; SavageMask.Hue=1175; EquipItem( SavageMask ); Item Sandals = new Sandals(); Sandals.Movable=false; Sandals.Hue=1175; EquipItem( Sandals ); Item GoldRing = new GoldRing(); GoldRing.Movable=false; GoldRing.Hue=1360; EquipItem( GoldRing ); Item hair = new Item( 0x203B); hair.Hue = 1072; hair.Layer = Layer.Hair; AddItem( hair ); Item beard = new Item( 0x203E); beard.Hue = 1072; beard.Layer = Layer.FacialHair; AddItem( beard ); switch ( Utility.Random( 10 ) ) { case 0: PackReg( 39 ); break; case 1: PackReg( 33 ); break; case 2: PackReg( 36 ); break; case 3: PackReg( 36 ); break; } PackGold( 800, 1200 ); switch ( Utility.Random( 25 ) ) { case 0: PackWeapon( 4, 5 ); break; case 1: PackArmor( 4, 5 ); break; } switch ( Utility.Random( 5 ) ) { case 0: PackWeapon( 0, 5 ); break; case 1: PackArmor( 0, 5 ); break; } switch ( Utility.Random( 10 ) ) { case 0: PackWeapon( 0, 5 ); break; case 1: PackArmor( 0, 5 ); break; } switch ( Utility.Random( 15 ) ) { case 0: PackWeapon( 1, 5 ); break; case 1: PackArmor( 1, 5 ); break; } }