public override SkillResults Start(MabiCreature creature, MabiSkill skill) { creature.Activate(CreatureConditionD.SpreadWings); Send.SpreadWings(creature, true); return SkillResults.Okay; }
public override SkillResults Start(MabiCreature creature, MabiSkill skill) { creature.Activate(CreatureConditionB.Transparent); Send.StatusEffectUpdate(creature); return SkillResults.Okay; }
public override SkillResults Start(MabiCreature creature, MabiSkill skill) { creature.Activate(CreatureConditionB.Demigod); creature.StopMove(); // Spawn eruption { var pos = creature.GetPosition(); var targets = WorldManager.Instance.GetAttackableCreaturesInRange(creature, EruptionRadius); var cap = new CombatActionPack(creature, skill.Id); var aAction = new AttackerAction(CombatActionType.SpecialHit, creature, skill.Id, SkillHelper.GetAreaTargetID(creature.Region, pos.X, pos.Y)); aAction.Options |= AttackerOptions.KnockBackHit1 | AttackerOptions.UseEffect; cap.Add(aAction); foreach (var target in targets) { target.StopMove(); // Officials use CM skill id. var tAction = new TargetAction(CombatActionType.TakeHit, target, creature, skill.Id); tAction.StunTime = EruptionStun; tAction.Delay = 1000; // Supposedly it's magic damage tAction.Damage = creature.GetMagicDamage(null, EruptionDamage); target.TakeDamage(tAction.Damage); tAction.OldPosition = CombatHelper.KnockBack(target, creature, EruptionKnockBack); if (target.IsDead) tAction.Options |= TargetOptions.FinishingKnockDown; cap.Add(tAction); } WorldManager.Instance.HandleCombatActionPack(cap); } Send.EffectDelayed(Effect.AwakeningOfLight1, 800, creature); Send.EffectDelayed(Effect.AwakeningOfLight2, 800, creature); Send.UseMotion(creature, 67, 3, false, false); creature.StatRegens.Add(creature.Temp.DemiHpRegen = new MabiStatRegen(Stat.Life, skill.RankInfo.Var3, creature.LifeMax)); creature.StatRegens.Add(creature.Temp.DemiMpRegen = new MabiStatRegen(Stat.Mana, skill.RankInfo.Var4, creature.ManaMax)); creature.StatRegens.Add(creature.Temp.DemiStmRegen = new MabiStatRegen(Stat.Stamina, skill.RankInfo.Var5, creature.StaminaMax)); WorldManager.Instance.CreatureStatsUpdate(creature); return SkillResults.Okay; }