public override void Damage(Mobile m) { base.Damage(m); if (m.Alive) { Item item = m.FindItemOnLayer(Layer.OuterTorso); if (item is GMRobe) { AOS.Damage(m, 0, 0, 0, 0, 0, 0); } else { // Random Encounter 1 if (Utility.RandomDouble() < 0.005) { if (m.Map == Map.Ilshenar) { int x1 = m.X + 5; int y1 = m.Y + 5; int z1 = Map.Ilshenar.GetAverageZ(x1, y1); if (Map.Ilshenar.CanSpawnMobile(x1, y1, z1)) { BaseCreature encountera; switch (Utility.Random(4)) { default: case 0: encountera = new Betrayer(); break; case 1: encountera = new Golem(); break; case 2: encountera = new GolemController(); break; case 3: encountera = new Juggernaut(); break; } encountera.MoveToWorld(new Point3D(x1, y1, z1), Map.Ilshenar); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(10.0), new TimerStateCallback(DeleteEncounterA), encountera); } } } // Random Encounter 2 if (Utility.RandomDouble() < 0.005) { if (m.Map == Map.Ilshenar) { int x2 = m.X - 5; int y2 = m.Y - 5; int z2 = Map.Ilshenar.GetAverageZ(x2, y2); if (Map.Ilshenar.CanSpawnMobile(x2, y2, z2)) { BaseCreature encountera; switch (Utility.Random(4)) { default: case 0: encountera = new Betrayer(); break; case 1: encountera = new Golem(); break; case 2: encountera = new GolemController(); break; case 3: encountera = new Juggernaut(); break; } encountera.MoveToWorld(new Point3D(x2, y2, z2), Map.Ilshenar); AOS.Damage(m, 0, 0, 0, 0, 0, 0); Timer.DelayCall(TimeSpan.FromMinutes(10.0), new TimerStateCallback(DeleteEncounterA), encountera); } } } } } }
// OnStateExit is called when a transition ends and the state machine finishes evaluating this state override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { GolemController xd = animator.GetComponent <GolemController>(); xd.staggered = false; }