Skip to content

Commit 1c5fa82

Browse files
authored
fix: Fixes all summon spells so they use summoned variation of monster (#2106)
1 parent de12f8c commit 1c5fa82

16 files changed

+263
-153
lines changed

Diff for: Projects/UOContent/Mobiles/Monsters/Elemental/Magic/AirElemental.cs

-4
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,9 @@ public AirElemental() : base(AIType.AI_Mage)
4040
Karma = -4500;
4141

4242
VirtualArmor = 40;
43-
ControlSlots = 2;
4443
}
4544

4645
public override string CorpseName => "an air elemental corpse";
47-
public override double DispelDifficulty => 117.5;
48-
public override double DispelFocus => 45.0;
49-
5046
public override string DefaultName => "an air elemental";
5147

5248
public override bool BleedImmune => true;

Diff for: Projects/UOContent/Mobiles/Monsters/Elemental/Magic/FireElemental.cs

+1-4
Original file line numberDiff line numberDiff line change
@@ -39,20 +39,17 @@ public FireElemental() : base(AIType.AI_Mage)
3939
Karma = -4500;
4040

4141
VirtualArmor = 40;
42-
ControlSlots = 4;
4342

4443
PackItem(new SulfurousAsh(3));
4544

4645
AddItem(new LightSource());
4746
}
4847

4948
public override string CorpseName => "a fire elemental corpse";
50-
public override double DispelDifficulty => 117.5;
51-
public override double DispelFocus => 45.0;
52-
5349
public override string DefaultName => "a fire elemental";
5450

5551
public override bool BleedImmune => true;
52+
5653
public override int TreasureMapLevel => 2;
5754

5855
public override void GenerateLoot()

Diff for: Projects/UOContent/Mobiles/Monsters/Elemental/Magic/WaterElemental.cs

+1-4
Original file line numberDiff line numberDiff line change
@@ -38,16 +38,13 @@ public WaterElemental() : base(AIType.AI_Mage)
3838
Karma = -4500;
3939

4040
VirtualArmor = 40;
41-
ControlSlots = 3;
41+
4242
CanSwim = true;
4343

4444
PackItem(new BlackPearl(3));
4545
}
4646

4747
public override string CorpseName => "a water elemental corpse";
48-
public override double DispelDifficulty => 117.5;
49-
public override double DispelFocus => 45.0;
50-
5148
public override string DefaultName => "a water elemental";
5249

5350
public override bool BleedImmune => true;

Diff for: Projects/UOContent/Mobiles/Monsters/Elemental/Melee/EarthElemental.cs

-4
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ public EarthElemental() : base(AIType.AI_Melee)
3636
Karma = -3500;
3737

3838
VirtualArmor = 34;
39-
ControlSlots = 2;
4039

4140
PackItem(new FertileDirt(Utility.RandomMinMax(1, 4)));
4241
PackItem(new MandrakeRoot());
@@ -47,9 +46,6 @@ public EarthElemental() : base(AIType.AI_Melee)
4746
}
4847

4948
public override string CorpseName => "an earth elemental corpse";
50-
public override double DispelDifficulty => 117.5;
51-
public override double DispelFocus => 45.0;
52-
5349
public override string DefaultName => "an earth elemental";
5450

5551
public override bool BleedImmune => true;

Diff for: Projects/UOContent/Mobiles/Monsters/Humanoid/Magic/Daemon.cs

+4-3
Original file line numberDiff line numberDiff line change
@@ -40,20 +40,21 @@ public Daemon() : base(AIType.AI_Mage)
4040
Karma = -15000;
4141

4242
VirtualArmor = 58;
43-
ControlSlots = Core.SE ? 4 : 5;
4443
}
4544

4645
public override string CorpseName => "a daemon corpse";
47-
public override double DispelDifficulty => 125.0;
48-
public override double DispelFocus => 45.0;
4946

5047
public override Faction FactionAllegiance => Shadowlords.Instance;
5148
public override Ethic EthicAllegiance => Ethic.Evil;
5249

5350
public override bool CanRummageCorpses => true;
51+
5452
public override Poison PoisonImmune => Poison.Regular;
53+
5554
public override int TreasureMapLevel => 4;
55+
5656
public override int Meat => 1;
57+
5758
public override bool CanFly => true;
5859

5960
public override void GenerateLoot()

Diff for: Projects/UOContent/Mobiles/Monsters/Misc/Melee/BladeSpirits.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,14 @@ public BladeSpirits() : base(AIType.AI_Melee)
4444
}
4545

4646
public override string CorpseName => "a blade spirit corpse";
47+
public override string DefaultName => "a blade spirit";
48+
4749
public override bool DeleteCorpseOnDeath => Core.AOS;
4850
public override bool IsHouseSummonable => true;
4951

5052
public override double DispelDifficulty => 0.0;
5153
public override double DispelFocus => 20.0;
5254

53-
public override string DefaultName => "a blade spirit";
54-
5555
public override bool BleedImmune => true;
5656
public override Poison PoisonImmune => Poison.Lethal;
5757

Diff for: Projects/UOContent/Mobiles/Monsters/Summons/SummonedAirElemental.cs

+55-20
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using System;
12
using ModernUO.Serialization;
23

34
namespace Server.Mobiles
@@ -12,39 +13,73 @@ public SummonedAirElemental() : base(AIType.AI_Mage)
1213
Hue = 0x4001;
1314
BaseSoundID = 655;
1415

15-
SetStr(200);
16-
SetDex(200);
17-
SetInt(100);
16+
if (Core.AOS)
17+
{
18+
SetStr(200);
19+
SetDex(200);
20+
SetInt(100);
21+
22+
SetHits(150);
23+
SetStam(50);
24+
25+
SetDamage(6, 9);
26+
27+
SetDamageType(ResistanceType.Physical, 50);
28+
SetDamageType(ResistanceType.Energy, 50);
1829

19-
SetHits(150);
20-
SetStam(50);
30+
SetResistance(ResistanceType.Physical, 40, 50);
31+
SetResistance(ResistanceType.Fire, 30, 40);
32+
SetResistance(ResistanceType.Cold, 35, 45);
33+
SetResistance(ResistanceType.Poison, 50, 60);
34+
SetResistance(ResistanceType.Energy, 70, 80);
35+
36+
SetSkill(SkillName.Meditation, 90.0);
37+
SetSkill(SkillName.EvalInt, 70.0);
38+
SetSkill(SkillName.Magery, 70.0);
39+
SetSkill(SkillName.MagicResist, 60.0);
40+
SetSkill(SkillName.Tactics, 100.0);
41+
SetSkill(SkillName.Wrestling, 80.0);
42+
}
43+
else
44+
{
45+
SetStr(126, 155);
46+
SetDex(166, 185);
47+
SetInt(101, 125);
2148

22-
SetDamage(6, 9);
49+
SetHits(76, 93);
2350

24-
SetDamageType(ResistanceType.Physical, 50);
25-
SetDamageType(ResistanceType.Energy, 50);
51+
SetDamage(8, 10);
2652

27-
SetResistance(ResistanceType.Physical, 40, 50);
28-
SetResistance(ResistanceType.Fire, 30, 40);
29-
SetResistance(ResistanceType.Cold, 35, 45);
30-
SetResistance(ResistanceType.Poison, 50, 60);
31-
SetResistance(ResistanceType.Energy, 70, 80);
53+
SetDamageType(ResistanceType.Physical, 20);
54+
SetDamageType(ResistanceType.Cold, 40);
55+
SetDamageType(ResistanceType.Energy, 40);
3256

33-
SetSkill(SkillName.Meditation, 90.0);
34-
SetSkill(SkillName.EvalInt, 70.0);
35-
SetSkill(SkillName.Magery, 70.0);
36-
SetSkill(SkillName.MagicResist, 60.0);
37-
SetSkill(SkillName.Tactics, 100.0);
38-
SetSkill(SkillName.Wrestling, 80.0);
57+
SetResistance(ResistanceType.Physical, 35, 45);
58+
SetResistance(ResistanceType.Fire, 15, 25);
59+
SetResistance(ResistanceType.Cold, 10, 20);
60+
SetResistance(ResistanceType.Poison, 10, 20);
61+
SetResistance(ResistanceType.Energy, 25, 35);
62+
63+
SetSkill(SkillName.EvalInt, 60.1, 75.0);
64+
SetSkill(SkillName.Magery, 60.1, 75.0);
65+
SetSkill(SkillName.MagicResist, 60.1, 75.0);
66+
SetSkill(SkillName.Tactics, 60.1, 80.0);
67+
SetSkill(SkillName.Wrestling, 60.1, 80.0);
68+
}
3969

4070
VirtualArmor = 40;
4171
ControlSlots = 2;
4272
}
4373

74+
public override bool DeleteCorpseOnDeath => Summoned;
75+
4476
public override string CorpseName => "an air elemental corpse";
77+
public override string DefaultName => "an air elemental";
78+
79+
public override bool BleedImmune => true;
80+
4581
public override double DispelDifficulty => 117.5;
4682
public override double DispelFocus => 45.0;
47-
public override string DefaultName => "an air elemental";
4883

4984
[AfterDeserialization]
5085
private void AfterDeserialization()

Diff for: Projects/UOContent/Mobiles/Monsters/Summons/SummonedDaemon.cs

+49-19
Original file line numberDiff line numberDiff line change
@@ -12,37 +12,67 @@ public SummonedDaemon() : base(AIType.AI_Mage)
1212
Body = Core.AOS ? 10 : 9;
1313
BaseSoundID = 357;
1414

15-
SetStr(200);
16-
SetDex(110);
17-
SetInt(150);
15+
if (Core.AOS)
16+
{
17+
SetStr(200);
18+
SetDex(110);
19+
SetInt(150);
1820

19-
SetDamage(14, 21);
21+
SetDamage(14, 21);
2022

21-
SetDamageType(ResistanceType.Physical, 0);
22-
SetDamageType(ResistanceType.Poison, 100);
23+
SetDamageType(ResistanceType.Physical, 0);
24+
SetDamageType(ResistanceType.Poison, 100);
2325

24-
SetResistance(ResistanceType.Physical, 45, 55);
25-
SetResistance(ResistanceType.Fire, 50, 60);
26-
SetResistance(ResistanceType.Cold, 20, 30);
27-
SetResistance(ResistanceType.Poison, 70, 80);
28-
SetResistance(ResistanceType.Energy, 40, 50);
26+
SetResistance(ResistanceType.Physical, 45, 55);
27+
SetResistance(ResistanceType.Fire, 50, 60);
28+
SetResistance(ResistanceType.Cold, 20, 30);
29+
SetResistance(ResistanceType.Poison, 70, 80);
30+
SetResistance(ResistanceType.Energy, 40, 50);
2931

30-
SetSkill(SkillName.EvalInt, 90.1, 100.0);
31-
SetSkill(SkillName.Meditation, 90.1, 100.0);
32-
SetSkill(SkillName.Magery, 90.1, 100.0);
33-
SetSkill(SkillName.MagicResist, 90.1, 100.0);
34-
SetSkill(SkillName.Tactics, 100.0);
35-
SetSkill(SkillName.Wrestling, 98.1, 99.0);
32+
SetSkill(SkillName.EvalInt, 90.1, 100.0);
33+
SetSkill(SkillName.Meditation, 90.1, 100.0);
34+
SetSkill(SkillName.Magery, 90.1, 100.0);
35+
SetSkill(SkillName.MagicResist, 90.1, 100.0);
36+
SetSkill(SkillName.Tactics, 100.0);
37+
SetSkill(SkillName.Wrestling, 98.1, 99.0);
38+
}
39+
else
40+
{
41+
SetStr(476, 505);
42+
SetDex(76, 95);
43+
SetInt(301, 325);
44+
45+
SetHits(286, 303);
46+
47+
SetDamage(7, 14);
48+
49+
SetDamageType(ResistanceType.Physical, 100);
50+
51+
SetResistance(ResistanceType.Physical, 45, 60);
52+
SetResistance(ResistanceType.Fire, 50, 60);
53+
SetResistance(ResistanceType.Cold, 30, 40);
54+
SetResistance(ResistanceType.Poison, 20, 30);
55+
SetResistance(ResistanceType.Energy, 30, 40);
56+
57+
SetSkill(SkillName.EvalInt, 70.1, 80.0);
58+
SetSkill(SkillName.Magery, 70.1, 80.0);
59+
SetSkill(SkillName.MagicResist, 85.1, 95.0);
60+
SetSkill(SkillName.Tactics, 70.1, 80.0);
61+
SetSkill(SkillName.Wrestling, 60.1, 80.0);
62+
}
3663

3764
VirtualArmor = 58;
65+
3866
ControlSlots = Core.SE ? 4 : 5;
3967
}
40-
68+
69+
public override bool DeleteCorpseOnDeath => Summoned;
4170
public override string CorpseName => "a daemon corpse";
71+
4272
public override double DispelDifficulty => 125.0;
4373
public override double DispelFocus => 45.0;
4474

45-
public override Poison PoisonImmune => Poison.Regular; // TODO: Immune to poison?
75+
public override Poison PoisonImmune => Poison.Regular;
4676
public override bool CanFly => true;
4777
}
4878
}

Diff for: Projects/UOContent/Mobiles/Monsters/Summons/SummonedEarthElemental.cs

+45-15
Original file line numberDiff line numberDiff line change
@@ -11,33 +11,63 @@ public SummonedEarthElemental() : base(AIType.AI_Melee)
1111
Body = 14;
1212
BaseSoundID = 268;
1313

14-
SetStr(200);
15-
SetDex(70);
16-
SetInt(70);
14+
if (Core.AOS)
15+
{
16+
SetStr(200);
17+
SetDex(70);
18+
SetInt(70);
1719

18-
SetHits(180);
20+
SetHits(180);
1921

20-
SetDamage(14, 21);
22+
SetDamage(14, 21);
2123

22-
SetDamageType(ResistanceType.Physical, 100);
24+
SetDamageType(ResistanceType.Physical, 100);
2325

24-
SetResistance(ResistanceType.Physical, 65, 75);
25-
SetResistance(ResistanceType.Fire, 40, 50);
26-
SetResistance(ResistanceType.Cold, 40, 50);
27-
SetResistance(ResistanceType.Poison, 40, 50);
28-
SetResistance(ResistanceType.Energy, 40, 50);
26+
SetResistance(ResistanceType.Physical, 65, 75);
27+
SetResistance(ResistanceType.Fire, 40, 50);
28+
SetResistance(ResistanceType.Cold, 40, 50);
29+
SetResistance(ResistanceType.Poison, 40, 50);
30+
SetResistance(ResistanceType.Energy, 40, 50);
2931

30-
SetSkill(SkillName.MagicResist, 65.0);
31-
SetSkill(SkillName.Tactics, 100.0);
32-
SetSkill(SkillName.Wrestling, 90.0);
32+
SetSkill(SkillName.MagicResist, 65.0);
33+
SetSkill(SkillName.Tactics, 100.0);
34+
SetSkill(SkillName.Wrestling, 90.0);
35+
}
36+
else
37+
{
38+
SetStr(126, 155);
39+
SetDex(66, 85);
40+
SetInt(71, 92);
41+
42+
SetHits(76, 93);
43+
44+
SetDamage(9, 16);
45+
46+
SetDamageType(ResistanceType.Physical, 100);
47+
48+
SetResistance(ResistanceType.Physical, 30, 35);
49+
SetResistance(ResistanceType.Fire, 10, 20);
50+
SetResistance(ResistanceType.Cold, 10, 20);
51+
SetResistance(ResistanceType.Poison, 15, 25);
52+
SetResistance(ResistanceType.Energy, 15, 25);
53+
54+
SetSkill(SkillName.MagicResist, 50.1, 95.0);
55+
SetSkill(SkillName.Tactics, 60.1, 100.0);
56+
SetSkill(SkillName.Wrestling, 60.1, 100.0);
57+
}
3358

3459
VirtualArmor = 34;
3560
ControlSlots = 2;
3661
}
3762

63+
public override bool DeleteCorpseOnDeath => Summoned;
64+
3865
public override string CorpseName => "an earth elemental corpse";
66+
public override string DefaultName => "an earth elemental";
67+
68+
public override bool BleedImmune => true;
69+
3970
public override double DispelDifficulty => 117.5;
4071
public override double DispelFocus => 45.0;
41-
public override string DefaultName => "an earth elemental";
4272
}
4373
}

0 commit comments

Comments
 (0)