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);
                            }
                        }
                    }
                }
            }
        }
示例#2
0
    // 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;
    }