private void UltimateEnhancer(MapObject target, UserMagic magic, out bool cast) { cast = false; if (target == null || !target.IsFriendlyTarget(this)) return; UserItem item = GetAmulet(1); if (item == null) return; long expiretime = GetAttackPower(MinSC, MaxSC) * 2 + (magic.Level + 1) * 10; int value = MaxSC >= 5 ? Math.Min(8, MaxSC / 5) : 1; switch (target.Race) { case ObjectType.Monster: case ObjectType.Player: //Only targets if (target.IsFriendlyTarget(this)) { target.AddBuff(new Buff { Type = BuffType.UltimateEnhancer, Caster = this, ExpireTime = Envir.Time + expiretime * 1000, Values = new int[] { value } }); target.OperateTime = 0; LevelMagic(magic); ConsumeItem(item, 1); cast = true; } break; } }
private void EnergyShield(MapObject target, UserMagic magic, out bool cast) { cast = false; if (!target.IsFriendlyTarget(this)) target = this; //offical is only party target int duration = 30 + 50 * magic.Level; int power = GetAttackPower(magic.GetPower(MinSC), magic.GetPower(MaxSC) + 1); int chance = 9 - (Luck / 3 + magic.Level); int[] values = { chance < 2 ? 2 : chance, power }; switch (target.Race) { case ObjectType.Player: //Only targets if (target.IsFriendlyTarget(this)) { target.AddBuff(new Buff { Type = BuffType.EnergyShield, Caster = this, ExpireTime = Envir.Time + duration * 1000, Visible = true, Values = values }); target.OperateTime = 0; LevelMagic(magic); cast = true; } break; } }