Ejemplo n.º 1
0
        // Function from file: spellbook.dm
        public override void recoil(dynamic user = null)
        {
            Obj_Effect_ProcHolder_Spell_Targeted_MindTransfer swapper = null;

            base.recoil((object)(user));

            if (GlobalVars.dead_mob_list.Contains(this.stored_swap))
            {
                this.stored_swap = null;
            }

            if (!Lang13.Bool(this.stored_swap))
            {
                this.stored_swap = user;
                user.WriteMsg("<span class='warning'>For a moment you feel like you don't even know who you are anymore.</span>");
                return;
            }

            if (this.stored_swap == user)
            {
                user.WriteMsg("<span class='notice'>You stare at the book some more, but there doesn't seem to be anything else to learn...</span>");
                return;
            }
            swapper = new Obj_Effect_ProcHolder_Spell_Targeted_MindTransfer();
            swapper.cast(user, this.stored_swap, 1);
            this.stored_swap.WriteMsg("<span class='warning'>You're suddenly somewhere else... and someone else?!</span>");
            user.WriteMsg("<span class='warning'>Suddenly you're staring at " + this + " again... where are you, who are you?!</span>");
            this.stored_swap = null;
            return;
        }
        // Function from file: shuffle.dm
        public override bool start(  )
        {
            ByTable mobs = null;
            Mob_Living_Carbon_Human H = null;
            Obj_Effect_ProcHolder_Spell_Targeted_MindTransfer swapper = null;
            dynamic H2 = null;
            Mob_Living_Carbon_Human  H3    = null;
            EffectSystem_SmokeSpread smoke = null;

            mobs = new ByTable();

            foreach (dynamic _a in Lang13.Enumerate(GlobalVars.living_mob_list, typeof(Mob_Living_Carbon_Human)))
            {
                H = _a;


                if (!(H.stat != 0) || !(H.mind != null) || GlobalVars.ticker.mode.wizards.Contains(H.mind) || GlobalVars.ticker.mode.apprentices.Contains(H.mind))
                {
                    continue;
                }
                mobs.Add(H);
            }

            if (!(mobs != null))
            {
                return(false);
            }
            GlobalFuncs.shuffle(mobs);
            swapper = new Obj_Effect_ProcHolder_Spell_Targeted_MindTransfer();

            while (mobs.len > 1)
            {
                H2 = Rand13.PickFromTable(mobs);
                mobs.Remove(H2);
                swapper.cast(new ByTable(new object [] { H2 }), mobs[mobs.len], 1);
                mobs.Remove(mobs[mobs.len]);
            }

            foreach (dynamic _b in Lang13.Enumerate(GlobalVars.living_mob_list, typeof(Mob_Living_Carbon_Human)))
            {
                H3 = _b;

                smoke = new EffectSystem_SmokeSpread();
                smoke.set_up(0, H3.loc);
                smoke.start();
            }
            return(false);
        }