// 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); }